./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 26d01a9c 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-?-26d01a9 [2023-02-18 08:55:43,914 INFO L177 SettingsManager]: Resetting all preferences to default values... [2023-02-18 08:55:43,915 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2023-02-18 08:55:43,944 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2023-02-18 08:55:43,944 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2023-02-18 08:55:43,947 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2023-02-18 08:55:43,948 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2023-02-18 08:55:43,950 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2023-02-18 08:55:43,951 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2023-02-18 08:55:43,954 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2023-02-18 08:55:43,955 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2023-02-18 08:55:43,956 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2023-02-18 08:55:43,957 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2023-02-18 08:55:43,959 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2023-02-18 08:55:43,960 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2023-02-18 08:55:43,961 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2023-02-18 08:55:43,962 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2023-02-18 08:55:43,963 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2023-02-18 08:55:43,964 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2023-02-18 08:55:43,967 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2023-02-18 08:55:43,968 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2023-02-18 08:55:43,969 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2023-02-18 08:55:43,970 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2023-02-18 08:55:43,970 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2023-02-18 08:55:43,976 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2023-02-18 08:55:43,976 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2023-02-18 08:55:43,976 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2023-02-18 08:55:43,977 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2023-02-18 08:55:43,977 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2023-02-18 08:55:43,978 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2023-02-18 08:55:43,978 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2023-02-18 08:55:43,978 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2023-02-18 08:55:43,979 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2023-02-18 08:55:43,980 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2023-02-18 08:55:43,980 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2023-02-18 08:55:43,980 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2023-02-18 08:55:43,981 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2023-02-18 08:55:43,981 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2023-02-18 08:55:43,981 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2023-02-18 08:55:43,982 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2023-02-18 08:55:43,983 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2023-02-18 08:55:43,983 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Termination-64bit-Automizer_Default.epf [2023-02-18 08:55:44,015 INFO L113 SettingsManager]: Loading preferences was successful [2023-02-18 08:55:44,015 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2023-02-18 08:55:44,016 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2023-02-18 08:55:44,016 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2023-02-18 08:55:44,017 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2023-02-18 08:55:44,017 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2023-02-18 08:55:44,017 INFO L138 SettingsManager]: * Use SBE=true [2023-02-18 08:55:44,017 INFO L136 SettingsManager]: Preferences of BuchiAutomizer differ from their defaults: [2023-02-18 08:55:44,017 INFO L138 SettingsManager]: * NCSB implementation=INTSET_LAZY3 [2023-02-18 08:55:44,018 INFO L138 SettingsManager]: * Use old map elimination=false [2023-02-18 08:55:44,018 INFO L138 SettingsManager]: * Use external solver (rank synthesis)=false [2023-02-18 08:55:44,018 INFO L138 SettingsManager]: * Use only trivial implications for array writes=true [2023-02-18 08:55:44,018 INFO L138 SettingsManager]: * Rank analysis=LINEAR_WITH_GUESSES [2023-02-18 08:55:44,019 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2023-02-18 08:55:44,019 INFO L138 SettingsManager]: * Check unreachability of error function in SV-COMP mode=false [2023-02-18 08:55:44,019 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2023-02-18 08:55:44,019 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2023-02-18 08:55:44,019 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=ASSUME [2023-02-18 08:55:44,019 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=ASSUME [2023-02-18 08:55:44,019 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=ASSUME [2023-02-18 08:55:44,020 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2023-02-18 08:55:44,020 INFO L138 SettingsManager]: * Assume nondeterminstic values are in range=false [2023-02-18 08:55:44,020 INFO L138 SettingsManager]: * Use constant arrays=true [2023-02-18 08:55:44,020 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=ASSUME [2023-02-18 08:55:44,020 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2023-02-18 08:55:44,020 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2023-02-18 08:55:44,021 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2023-02-18 08:55:44,021 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2023-02-18 08:55:44,022 INFO L136 SettingsManager]: Preferences of IcfgTransformer differ from their defaults: [2023-02-18 08:55:44,022 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-18 08:55:44,196 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2023-02-18 08:55:44,215 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2023-02-18 08:55:44,217 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2023-02-18 08:55:44,218 INFO L271 PluginConnector]: Initializing CDTParser... [2023-02-18 08:55:44,218 INFO L275 PluginConnector]: CDTParser initialized [2023-02-18 08:55:44,219 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-18 08:55:45,148 INFO L500 CDTParser]: Created temporary CDT project at NULL [2023-02-18 08:55:45,289 INFO L351 CDTParser]: Found 1 translation units. [2023-02-18 08:55:45,289 INFO L172 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/termination-numeric/Binomial.c [2023-02-18 08:55:45,294 INFO L394 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/db608ae69/f920e591c6474c3b9c8d12225a931704/FLAGaab7f3048 [2023-02-18 08:55:45,305 INFO L402 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/db608ae69/f920e591c6474c3b9c8d12225a931704 [2023-02-18 08:55:45,306 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2023-02-18 08:55:45,307 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2023-02-18 08:55:45,308 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2023-02-18 08:55:45,308 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2023-02-18 08:55:45,310 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2023-02-18 08:55:45,311 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 18.02 08:55:45" (1/1) ... [2023-02-18 08:55:45,311 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@5173687e and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.02 08:55:45, skipping insertion in model container [2023-02-18 08:55:45,311 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 18.02 08:55:45" (1/1) ... [2023-02-18 08:55:45,316 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2023-02-18 08:55:45,328 INFO L178 MainTranslator]: Built tables and reachable declarations [2023-02-18 08:55:45,423 INFO L210 PostProcessor]: Analyzing one entry point: main [2023-02-18 08:55:45,429 INFO L203 MainTranslator]: Completed pre-run [2023-02-18 08:55:45,437 INFO L210 PostProcessor]: Analyzing one entry point: main [2023-02-18 08:55:45,445 INFO L208 MainTranslator]: Completed translation [2023-02-18 08:55:45,446 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.02 08:55:45 WrapperNode [2023-02-18 08:55:45,446 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2023-02-18 08:55:45,448 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2023-02-18 08:55:45,448 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2023-02-18 08:55:45,448 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2023-02-18 08:55:45,453 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.02 08:55:45" (1/1) ... [2023-02-18 08:55:45,459 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.02 08:55:45" (1/1) ... [2023-02-18 08:55:45,475 INFO L138 Inliner]: procedures = 6, calls = 8, calls flagged for inlining = 4, calls inlined = 4, statements flattened = 55 [2023-02-18 08:55:45,475 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2023-02-18 08:55:45,476 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2023-02-18 08:55:45,476 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2023-02-18 08:55:45,476 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2023-02-18 08:55:45,481 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.02 08:55:45" (1/1) ... [2023-02-18 08:55:45,481 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.02 08:55:45" (1/1) ... [2023-02-18 08:55:45,483 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.02 08:55:45" (1/1) ... [2023-02-18 08:55:45,484 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.02 08:55:45" (1/1) ... [2023-02-18 08:55:45,488 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.02 08:55:45" (1/1) ... [2023-02-18 08:55:45,491 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.02 08:55:45" (1/1) ... [2023-02-18 08:55:45,494 INFO L185 PluginConnector]: Executing the observer LTLStepAnnotator from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.02 08:55:45" (1/1) ... [2023-02-18 08:55:45,494 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.02 08:55:45" (1/1) ... [2023-02-18 08:55:45,496 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2023-02-18 08:55:45,497 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2023-02-18 08:55:45,497 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2023-02-18 08:55:45,498 INFO L275 PluginConnector]: RCFGBuilder initialized [2023-02-18 08:55:45,498 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.02 08:55:45" (1/1) ... [2023-02-18 08:55:45,502 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:45,509 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:45,527 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-18 08:55:45,535 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-18 08:55:45,560 INFO L130 BoogieDeclarations]: Found specification of procedure fact [2023-02-18 08:55:45,560 INFO L138 BoogieDeclarations]: Found implementation of procedure fact [2023-02-18 08:55:45,560 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2023-02-18 08:55:45,561 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2023-02-18 08:55:45,603 INFO L235 CfgBuilder]: Building ICFG [2023-02-18 08:55:45,604 INFO L261 CfgBuilder]: Building CFG for each procedure with an implementation [2023-02-18 08:55:45,740 INFO L276 CfgBuilder]: Performing block encoding [2023-02-18 08:55:45,744 INFO L295 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2023-02-18 08:55:45,745 INFO L300 CfgBuilder]: Removed 2 assume(true) statements. [2023-02-18 08:55:45,746 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 18.02 08:55:45 BoogieIcfgContainer [2023-02-18 08:55:45,746 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2023-02-18 08:55:45,747 INFO L113 PluginConnector]: ------------------------BuchiAutomizer---------------------------- [2023-02-18 08:55:45,747 INFO L271 PluginConnector]: Initializing BuchiAutomizer... [2023-02-18 08:55:45,749 INFO L275 PluginConnector]: BuchiAutomizer initialized [2023-02-18 08:55:45,750 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2023-02-18 08:55:45,750 INFO L185 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "CDTParser AST 18.02 08:55:45" (1/3) ... [2023-02-18 08:55:45,751 INFO L205 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@5a653212 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 18.02 08:55:45, skipping insertion in model container [2023-02-18 08:55:45,751 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2023-02-18 08:55:45,751 INFO L185 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 18.02 08:55:45" (2/3) ... [2023-02-18 08:55:45,751 INFO L205 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@5a653212 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 18.02 08:55:45, skipping insertion in model container [2023-02-18 08:55:45,751 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2023-02-18 08:55:45,751 INFO L185 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 18.02 08:55:45" (3/3) ... [2023-02-18 08:55:45,752 INFO L332 chiAutomizerObserver]: Analyzing ICFG Binomial.c [2023-02-18 08:55:45,820 INFO L303 stractBuchiCegarLoop]: Interprodecural is true [2023-02-18 08:55:45,820 INFO L304 stractBuchiCegarLoop]: Hoare is false [2023-02-18 08:55:45,820 INFO L305 stractBuchiCegarLoop]: Compute interpolants for ForwardPredicates [2023-02-18 08:55:45,820 INFO L306 stractBuchiCegarLoop]: Backedges is STRAIGHT_LINE [2023-02-18 08:55:45,821 INFO L307 stractBuchiCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2023-02-18 08:55:45,821 INFO L308 stractBuchiCegarLoop]: Difference is false [2023-02-18 08:55:45,821 INFO L309 stractBuchiCegarLoop]: Minimize is MINIMIZE_SEVPA [2023-02-18 08:55:45,821 INFO L313 stractBuchiCegarLoop]: ======== Iteration 0 == of CEGAR loop == BuchiAutomatonCegarLoop ======== [2023-02-18 08:55:45,824 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-18 08:55:45,849 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 18 [2023-02-18 08:55:45,849 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:45,849 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:45,852 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1] [2023-02-18 08:55:45,852 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2023-02-18 08:55:45,853 INFO L335 stractBuchiCegarLoop]: ======== Iteration 1 ============ [2023-02-18 08:55:45,853 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-18 08:55:45,855 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 18 [2023-02-18 08:55:45,855 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:45,855 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:45,855 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1] [2023-02-18 08:55:45,855 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2023-02-18 08:55:45,860 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-18 08:55:45,860 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-18 08:55:45,864 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:45,864 INFO L85 PathProgramCache]: Analyzing trace with hash 1171944, now seen corresponding path program 1 times [2023-02-18 08:55:45,869 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:45,870 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [791292384] [2023-02-18 08:55:45,870 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:45,870 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:45,927 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:45,928 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:55:45,938 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:45,958 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:55:45,973 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:45,973 INFO L85 PathProgramCache]: Analyzing trace with hash 57812, now seen corresponding path program 1 times [2023-02-18 08:55:45,973 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:45,973 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2077229350] [2023-02-18 08:55:45,974 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:45,974 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:45,989 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:45,990 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:55:45,996 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:45,999 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:55:46,000 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:46,001 INFO L85 PathProgramCache]: Analyzing trace with hash 553673357, now seen corresponding path program 1 times [2023-02-18 08:55:46,001 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:46,001 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [174740304] [2023-02-18 08:55:46,001 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:46,001 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:46,011 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:46,062 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-18 08:55:46,063 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:46,063 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [174740304] [2023-02-18 08:55:46,064 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [174740304] provided 1 perfect and 0 imperfect interpolant sequences [2023-02-18 08:55:46,064 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2023-02-18 08:55:46,064 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2023-02-18 08:55:46,064 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2146270450] [2023-02-18 08:55:46,065 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2023-02-18 08:55:46,080 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:55:46,080 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:55:46,080 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:55:46,080 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:55:46,081 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-18 08:55:46,081 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:46,081 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:55:46,081 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:55:46,081 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration1_Loop [2023-02-18 08:55:46,081 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:55:46,082 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:55:46,092 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-18 08:55:46,097 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-18 08:55:46,106 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:55:46,106 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-18 08:55:46,108 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:46,108 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:46,111 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-18 08:55:46,116 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-18 08:55:46,119 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:46,119 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:46,139 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:46,140 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-18 08:55:46,142 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (2)] Ended with exit code 0 [2023-02-18 08:55:46,146 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:46,146 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:46,147 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-18 08:55:46,149 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-18 08:55:46,150 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:46,150 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:46,172 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-18 08:55:46,173 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:46,173 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:46,174 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-18 08:55:46,176 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-18 08:55:46,177 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-18 08:55:46,177 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:46,299 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-18 08:55:46,302 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (4)] Forceful destruction successful, exit code 0 [2023-02-18 08:55:46,303 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:55:46,303 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:55:46,303 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:55:46,303 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:55:46,303 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-18 08:55:46,303 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:46,303 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:55:46,303 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:55:46,303 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration1_Loop [2023-02-18 08:55:46,304 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:55:46,304 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:55:46,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-18 08:55:46,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-18 08:55:46,308 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:55:46,311 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-18 08:55:46,312 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:46,312 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:46,313 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-18 08:55:46,315 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-18 08:55:46,317 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-18 08:55:46,323 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:46,323 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:46,324 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:46,324 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:46,324 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:46,325 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:46,325 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:46,341 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:55:46,347 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-18 08:55:46,347 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:46,347 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:46,348 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-18 08:55:46,349 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-18 08:55:46,352 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-18 08:55:46,357 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:46,358 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:46,358 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:46,358 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:46,358 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:46,359 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:46,359 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:46,378 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-18 08:55:46,390 INFO L443 ModelExtractionUtils]: Simplification made 4 calls to the SMT solver. [2023-02-18 08:55:46,390 INFO L444 ModelExtractionUtils]: 1 out of 5 variables were initially zero. Simplification set additionally 2 variables to zero. [2023-02-18 08:55:46,391 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:46,391 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:46,393 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-18 08:55:46,394 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-18 08:55:46,396 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-18 08:55:46,397 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-18 08:55:46,397 INFO L513 LassoAnalysis]: Proved termination. [2023-02-18 08:55:46,397 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-18 08:55:46,402 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-18 08:55:46,404 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-18 08:55:46,433 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:46,440 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:46,441 INFO L263 TraceCheckSpWp]: Trace formula consists of 12 conjuncts, 2 conjunts are in the unsatisfiable core [2023-02-18 08:55:46,442 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:46,451 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:46,452 WARN L261 TraceCheckSpWp]: Trace formula consists of 8 conjuncts, 6 conjunts are in the unsatisfiable core [2023-02-18 08:55:46,453 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:46,480 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-18 08:55:46,500 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-18 08:55:46,502 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-18 08:55:46,566 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-18 08:55:46,568 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-18 08:55:46,571 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-18 08:55:46,572 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 54 transitions. [2023-02-18 08:55:46,572 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 54 transitions. Stem has 4 letters. Loop has 3 letters. [2023-02-18 08:55:46,573 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:46,573 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 54 transitions. Stem has 7 letters. Loop has 3 letters. [2023-02-18 08:55:46,573 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:46,573 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 54 transitions. Stem has 4 letters. Loop has 6 letters. [2023-02-18 08:55:46,574 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:46,574 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 73 states and 106 transitions. [2023-02-18 08:55:46,577 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 18 [2023-02-18 08:55:46,581 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 73 states to 33 states and 48 transitions. [2023-02-18 08:55:46,582 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 29 [2023-02-18 08:55:46,582 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 30 [2023-02-18 08:55:46,582 INFO L73 IsDeterministic]: Start isDeterministic. Operand 33 states and 48 transitions. [2023-02-18 08:55:46,583 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:46,583 INFO L218 hiAutomatonCegarLoop]: Abstraction has 33 states and 48 transitions. [2023-02-18 08:55:46,592 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 33 states and 48 transitions. [2023-02-18 08:55:46,599 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 33 to 30. [2023-02-18 08:55:46,600 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-18 08:55:46,600 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 42 transitions. [2023-02-18 08:55:46,601 INFO L240 hiAutomatonCegarLoop]: Abstraction has 30 states and 42 transitions. [2023-02-18 08:55:46,601 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:55:46,602 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2023-02-18 08:55:46,603 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2023-02-18 08:55:46,603 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-18 08:55:46,667 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:55:46,667 INFO L93 Difference]: Finished difference Result 29 states and 38 transitions. [2023-02-18 08:55:46,668 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 29 states and 38 transitions. [2023-02-18 08:55:46,669 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 19 [2023-02-18 08:55:46,671 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 29 states to 28 states and 37 transitions. [2023-02-18 08:55:46,672 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 28 [2023-02-18 08:55:46,672 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 28 [2023-02-18 08:55:46,672 INFO L73 IsDeterministic]: Start isDeterministic. Operand 28 states and 37 transitions. [2023-02-18 08:55:46,673 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2023-02-18 08:55:46,673 INFO L218 hiAutomatonCegarLoop]: Abstraction has 28 states and 37 transitions. [2023-02-18 08:55:46,673 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 28 states and 37 transitions. [2023-02-18 08:55:46,675 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 28 to 26. [2023-02-18 08:55:46,676 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-18 08:55:46,677 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 35 transitions. [2023-02-18 08:55:46,677 INFO L240 hiAutomatonCegarLoop]: Abstraction has 26 states and 35 transitions. [2023-02-18 08:55:46,678 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2023-02-18 08:55:46,679 INFO L428 stractBuchiCegarLoop]: Abstraction has 26 states and 35 transitions. [2023-02-18 08:55:46,679 INFO L335 stractBuchiCegarLoop]: ======== Iteration 2 ============ [2023-02-18 08:55:46,679 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 26 states and 35 transitions. [2023-02-18 08:55:46,680 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 19 [2023-02-18 08:55:46,682 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:46,682 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:46,683 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1] [2023-02-18 08:55:46,683 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-18 08:55:46,683 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-18 08:55:46,684 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-18 08:55:46,684 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:46,685 INFO L85 PathProgramCache]: Analyzing trace with hash 1171944, now seen corresponding path program 2 times [2023-02-18 08:55:46,685 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:46,685 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [431842103] [2023-02-18 08:55:46,686 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:46,686 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:46,690 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:46,692 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:55:46,694 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:46,697 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:55:46,699 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:46,699 INFO L85 PathProgramCache]: Analyzing trace with hash 1284911041, now seen corresponding path program 1 times [2023-02-18 08:55:46,699 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:46,701 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [810223134] [2023-02-18 08:55:46,702 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:46,702 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:46,720 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:46,720 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [47968631] [2023-02-18 08:55:46,720 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:46,721 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:46,721 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:46,722 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-18 08:55:46,726 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-18 08:55:46,756 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:46,756 INFO L263 TraceCheckSpWp]: Trace formula consists of 59 conjuncts, 8 conjunts are in the unsatisfiable core [2023-02-18 08:55:46,758 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:46,778 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-18 08:55:46,778 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2023-02-18 08:55:46,779 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:46,779 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [810223134] [2023-02-18 08:55:46,779 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:46,779 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [47968631] [2023-02-18 08:55:46,779 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [47968631] provided 1 perfect and 0 imperfect interpolant sequences [2023-02-18 08:55:46,779 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2023-02-18 08:55:46,780 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2023-02-18 08:55:46,780 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [515479583] [2023-02-18 08:55:46,780 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2023-02-18 08:55:46,780 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:55:46,780 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:55:46,781 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2023-02-18 08:55:46,781 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2023-02-18 08:55:46,781 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-18 08:55:46,825 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:55:46,825 INFO L93 Difference]: Finished difference Result 34 states and 50 transitions. [2023-02-18 08:55:46,825 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 34 states and 50 transitions. [2023-02-18 08:55:46,826 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 25 [2023-02-18 08:55:46,827 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 34 states to 34 states and 50 transitions. [2023-02-18 08:55:46,827 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 34 [2023-02-18 08:55:46,827 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 34 [2023-02-18 08:55:46,828 INFO L73 IsDeterministic]: Start isDeterministic. Operand 34 states and 50 transitions. [2023-02-18 08:55:46,828 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2023-02-18 08:55:46,828 INFO L218 hiAutomatonCegarLoop]: Abstraction has 34 states and 50 transitions. [2023-02-18 08:55:46,828 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 34 states and 50 transitions. [2023-02-18 08:55:46,830 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 34 to 28. [2023-02-18 08:55:46,831 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-18 08:55:46,831 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 28 states to 28 states and 42 transitions. [2023-02-18 08:55:46,831 INFO L240 hiAutomatonCegarLoop]: Abstraction has 28 states and 42 transitions. [2023-02-18 08:55:46,831 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2023-02-18 08:55:46,832 INFO L428 stractBuchiCegarLoop]: Abstraction has 28 states and 42 transitions. [2023-02-18 08:55:46,832 INFO L335 stractBuchiCegarLoop]: ======== Iteration 3 ============ [2023-02-18 08:55:46,832 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 28 states and 42 transitions. [2023-02-18 08:55:46,833 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 19 [2023-02-18 08:55:46,833 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:46,841 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:46,857 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1] [2023-02-18 08:55:46,857 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-18 08:55:46,857 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-18 08:55:46,857 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-18 08:55:46,857 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-18 08:55:46,858 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:46,858 INFO L85 PathProgramCache]: Analyzing trace with hash 1171944, now seen corresponding path program 3 times [2023-02-18 08:55:46,859 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:46,859 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1772368461] [2023-02-18 08:55:46,859 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:46,859 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:46,868 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:46,871 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:55:46,873 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:46,875 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:55:46,876 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:46,876 INFO L85 PathProgramCache]: Analyzing trace with hash -1183838151, now seen corresponding path program 1 times [2023-02-18 08:55:46,876 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:46,876 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [812484464] [2023-02-18 08:55:46,876 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:46,876 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:46,887 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:46,887 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1893389249] [2023-02-18 08:55:46,887 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:46,887 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:46,887 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:46,895 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-18 08:55:46,895 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-18 08:55:46,927 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:46,927 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:55:46,936 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:46,946 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:55:46,946 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:46,947 INFO L85 PathProgramCache]: Analyzing trace with hash 2107943858, now seen corresponding path program 1 times [2023-02-18 08:55:46,949 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:46,949 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [713157874] [2023-02-18 08:55:46,949 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:46,949 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:46,965 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:46,980 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:46,981 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [713157874] [2023-02-18 08:55:46,981 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: Unsupported non-linear arithmetic [2023-02-18 08:55:46,981 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1390058532] [2023-02-18 08:55:46,981 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:46,981 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:46,981 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:46,986 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-18 08:55:46,987 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-18 08:55:47,020 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:47,021 INFO L263 TraceCheckSpWp]: Trace formula consists of 81 conjuncts, 3 conjunts are in the unsatisfiable core [2023-02-18 08:55:47,022 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:47,040 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-18 08:55:47,040 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2023-02-18 08:55:47,040 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1390058532] provided 1 perfect and 0 imperfect interpolant sequences [2023-02-18 08:55:47,040 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2023-02-18 08:55:47,040 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2023-02-18 08:55:47,040 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1329775160] [2023-02-18 08:55:47,040 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2023-02-18 08:55:47,063 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:55:47,063 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:55:47,063 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:55:47,063 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:55:47,063 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-18 08:55:47,063 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:47,063 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:55:47,063 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:55:47,063 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration3_Loop [2023-02-18 08:55:47,063 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:55:47,063 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:55:47,066 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-18 08:55:47,066 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-18 08:55:47,069 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-18 08:55:47,070 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-18 08:55:47,070 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-18 08:55:47,071 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-18 08:55:47,071 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-18 08:55:47,075 WARN L137 XnfTransformerHelper]: expecting exponential blowup for input size 11 [2023-02-18 08:55:47,114 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:55:47,115 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-18 08:55:47,115 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:47,115 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:47,118 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-18 08:55:47,118 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-18 08:55:47,120 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:47,120 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:47,141 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:47,141 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-18 08:55:47,148 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-18 08:55:47,148 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:47,149 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:47,150 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-18 08:55:47,151 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-18 08:55:47,156 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:47,156 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:47,238 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (12)] Ended with exit code 0 [2023-02-18 08:55:47,238 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:47,238 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:47,239 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-18 08:55:47,241 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-18 08:55:47,243 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-18 08:55:47,243 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:47,424 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-18 08:55:47,428 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-18 08:55:47,428 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:55:47,428 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:55:47,428 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:55:47,428 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:55:47,428 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-18 08:55:47,429 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:47,429 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:55:47,429 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:55:47,429 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration3_Loop [2023-02-18 08:55:47,429 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:55:47,429 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:55:47,430 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-18 08:55:47,431 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-18 08:55:47,432 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-18 08:55:47,433 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-18 08:55:47,433 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-18 08:55:47,434 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-18 08:55:47,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-18 08:55:47,445 WARN L137 XnfTransformerHelper]: expecting exponential blowup for input size 11 [2023-02-18 08:55:47,464 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:55:47,465 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-18 08:55:47,465 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:47,465 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:47,480 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-18 08:55:47,481 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-18 08:55:47,482 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-18 08:55:47,488 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:47,488 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:47,488 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:47,488 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:47,488 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:47,489 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:47,489 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:47,508 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:55:47,511 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-18 08:55:47,512 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:47,512 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:47,513 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-18 08:55:47,515 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-18 08:55:47,516 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-18 08:55:47,522 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:47,522 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:47,522 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:47,522 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:47,522 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:47,523 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:47,523 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:47,538 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:55:47,543 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-18 08:55:47,544 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:47,544 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:47,545 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-18 08:55:47,547 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-18 08:55:47,548 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-18 08:55:47,554 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:47,554 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:47,554 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:47,554 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:47,554 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:47,555 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:47,555 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:47,570 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:55:47,575 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-18 08:55:47,575 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:47,576 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:47,577 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-18 08:55:47,579 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-18 08:55:47,581 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-18 08:55:47,587 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:47,587 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:47,587 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:47,587 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:47,587 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:47,588 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:47,588 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:47,603 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:55:47,608 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-18 08:55:47,608 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:47,609 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:47,621 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-18 08:55:47,625 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-18 08:55:47,626 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-18 08:55:47,632 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:47,632 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:47,632 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:47,632 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:47,632 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:47,633 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:47,633 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:47,648 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:55:47,653 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-18 08:55:47,654 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:47,654 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:47,655 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-18 08:55:47,657 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-18 08:55:47,660 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-18 08:55:47,666 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:47,666 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:47,666 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:47,666 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:47,666 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:47,667 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:47,667 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:47,676 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:55:47,689 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-18 08:55:47,689 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:47,689 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:47,690 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-18 08:55:47,696 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-18 08:55:47,697 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-18 08:55:47,703 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:47,703 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:47,703 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:47,703 INFO L204 nArgumentSynthesizer]: 44 loop disjuncts [2023-02-18 08:55:47,703 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:47,875 INFO L401 nArgumentSynthesizer]: We have 88 Motzkin's Theorem applications. [2023-02-18 08:55:47,875 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:48,014 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-18 08:55:48,062 INFO L443 ModelExtractionUtils]: Simplification made 2 calls to the SMT solver. [2023-02-18 08:55:48,063 INFO L444 ModelExtractionUtils]: 8 out of 10 variables were initially zero. Simplification set additionally 0 variables to zero. [2023-02-18 08:55:48,063 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:48,063 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:48,066 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-18 08:55:48,066 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-18 08:55:48,068 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-18 08:55:48,068 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-18 08:55:48,068 INFO L513 LassoAnalysis]: Proved termination. [2023-02-18 08:55:48,068 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-18 08:55:48,077 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-18 08:55:48,077 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-18 08:55:48,085 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:48,090 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:48,090 INFO L263 TraceCheckSpWp]: Trace formula consists of 12 conjuncts, 2 conjunts are in the unsatisfiable core [2023-02-18 08:55:48,091 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:48,119 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:48,120 INFO L263 TraceCheckSpWp]: Trace formula consists of 183 conjuncts, 13 conjunts are in the unsatisfiable core [2023-02-18 08:55:48,121 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:48,162 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-18 08:55:48,162 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-18 08:55:48,163 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-18 08:55:48,319 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-18 08:55:48,320 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-18 08:55:48,321 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-18 08:55:48,321 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 78 transitions. [2023-02-18 08:55:48,321 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 7 states and 78 transitions. Stem has 4 letters. Loop has 29 letters. [2023-02-18 08:55:48,322 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:48,322 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 7 states and 78 transitions. Stem has 33 letters. Loop has 29 letters. [2023-02-18 08:55:48,323 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:48,323 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 7 states and 78 transitions. Stem has 4 letters. Loop has 58 letters. [2023-02-18 08:55:48,323 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:48,323 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 173 states and 260 transitions. [2023-02-18 08:55:48,327 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 40 [2023-02-18 08:55:48,330 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 173 states to 172 states and 259 transitions. [2023-02-18 08:55:48,330 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 87 [2023-02-18 08:55:48,330 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 88 [2023-02-18 08:55:48,330 INFO L73 IsDeterministic]: Start isDeterministic. Operand 172 states and 259 transitions. [2023-02-18 08:55:48,331 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:48,331 INFO L218 hiAutomatonCegarLoop]: Abstraction has 172 states and 259 transitions. [2023-02-18 08:55:48,331 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 172 states and 259 transitions. [2023-02-18 08:55:48,342 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 172 to 151. [2023-02-18 08:55:48,342 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-18 08:55:48,344 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 151 states to 151 states and 226 transitions. [2023-02-18 08:55:48,344 INFO L240 hiAutomatonCegarLoop]: Abstraction has 151 states and 226 transitions. [2023-02-18 08:55:48,344 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:55:48,344 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2023-02-18 08:55:48,344 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2023-02-18 08:55:48,345 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-18 08:55:48,366 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:55:48,367 INFO L93 Difference]: Finished difference Result 91 states and 128 transitions. [2023-02-18 08:55:48,367 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 91 states and 128 transitions. [2023-02-18 08:55:48,368 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 26 [2023-02-18 08:55:48,369 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 91 states to 48 states and 66 transitions. [2023-02-18 08:55:48,369 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 48 [2023-02-18 08:55:48,369 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 48 [2023-02-18 08:55:48,369 INFO L73 IsDeterministic]: Start isDeterministic. Operand 48 states and 66 transitions. [2023-02-18 08:55:48,370 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2023-02-18 08:55:48,370 INFO L218 hiAutomatonCegarLoop]: Abstraction has 48 states and 66 transitions. [2023-02-18 08:55:48,370 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states and 66 transitions. [2023-02-18 08:55:48,372 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 44. [2023-02-18 08:55:48,372 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-18 08:55:48,373 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 44 states to 44 states and 62 transitions. [2023-02-18 08:55:48,373 INFO L240 hiAutomatonCegarLoop]: Abstraction has 44 states and 62 transitions. [2023-02-18 08:55:48,373 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2023-02-18 08:55:48,374 INFO L428 stractBuchiCegarLoop]: Abstraction has 44 states and 62 transitions. [2023-02-18 08:55:48,374 INFO L335 stractBuchiCegarLoop]: ======== Iteration 4 ============ [2023-02-18 08:55:48,374 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 44 states and 62 transitions. [2023-02-18 08:55:48,374 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 23 [2023-02-18 08:55:48,374 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:48,375 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:48,375 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1] [2023-02-18 08:55:48,375 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-18 08:55:48,375 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-18 08:55:48,375 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-18 08:55:48,376 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:48,376 INFO L85 PathProgramCache]: Analyzing trace with hash 1171944, now seen corresponding path program 4 times [2023-02-18 08:55:48,376 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:48,376 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1891659100] [2023-02-18 08:55:48,376 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:48,376 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:48,379 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:48,379 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:55:48,380 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:48,381 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:55:48,381 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:48,382 INFO L85 PathProgramCache]: Analyzing trace with hash -743603515, now seen corresponding path program 1 times [2023-02-18 08:55:48,382 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:48,382 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1403769204] [2023-02-18 08:55:48,382 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:48,382 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:48,386 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:48,386 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [902935900] [2023-02-18 08:55:48,387 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:48,387 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:48,387 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:48,388 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-18 08:55:48,397 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-18 08:55:48,418 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:48,418 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:55:48,424 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:48,429 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:55:48,429 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:48,429 INFO L85 PathProgramCache]: Analyzing trace with hash 343305470, now seen corresponding path program 1 times [2023-02-18 08:55:48,429 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:48,429 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1588798050] [2023-02-18 08:55:48,430 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:48,430 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:48,444 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:48,444 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [364985074] [2023-02-18 08:55:48,444 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:48,444 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:48,444 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:48,451 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (21)] Ended with exit code 0 [2023-02-18 08:55:48,452 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-18 08:55:48,460 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-18 08:55:48,484 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:48,484 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:55:48,491 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:48,497 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:55:48,507 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:55:48,507 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:55:48,507 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:55:48,508 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:55:48,508 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-18 08:55:48,508 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:48,508 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:55:48,508 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:55:48,508 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration4_Loop [2023-02-18 08:55:48,508 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:55:48,508 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:55:48,509 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-18 08:55:48,510 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-18 08:55:48,510 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-18 08:55:48,511 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-18 08:55:48,511 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-18 08:55:48,512 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-18 08:55:48,513 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-18 08:55:48,514 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-18 08:55:48,516 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:55:48,516 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-18 08:55:48,516 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:48,516 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:48,517 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-18 08:55:48,519 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-18 08:55:48,521 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:48,521 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:48,541 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:48,542 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-18 08:55:48,544 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-18 08:55:48,545 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:48,545 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:48,546 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-18 08:55:48,553 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:48,553 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:48,562 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-18 08:55:48,577 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:48,577 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-18 08:55:48,580 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-18 08:55:48,580 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:48,580 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:48,581 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-18 08:55:48,583 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-18 08:55:48,585 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:48,585 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:48,592 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:48,592 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-18 08:55:48,594 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-18 08:55:48,594 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:48,594 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:48,596 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-18 08:55:48,597 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-18 08:55:48,598 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:48,598 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:48,611 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:48,611 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-18 08:55:48,616 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-18 08:55:48,616 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:48,616 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:48,617 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-18 08:55:48,618 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-18 08:55:48,621 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:48,621 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:48,627 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:48,627 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-18 08:55:48,630 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (28)] Ended with exit code 0 [2023-02-18 08:55:48,630 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:48,630 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:48,631 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-18 08:55:48,631 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-18 08:55:48,634 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:48,634 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:48,645 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-18 08:55:48,646 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:48,646 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:48,647 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-18 08:55:48,648 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-18 08:55:48,649 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-18 08:55:48,649 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:48,736 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-18 08:55:48,740 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-18 08:55:48,740 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:55:48,740 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:55:48,740 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:55:48,740 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:55:48,740 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-18 08:55:48,740 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:48,740 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:55:48,740 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:55:48,740 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration4_Loop [2023-02-18 08:55:48,740 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:55:48,740 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:55:48,741 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-18 08:55:48,752 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-18 08:55:48,753 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-18 08:55:48,755 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-18 08:55:48,755 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-18 08:55:48,756 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-18 08:55:48,757 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-18 08:55:48,757 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-18 08:55:48,760 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:55:48,761 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-18 08:55:48,761 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:48,762 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:48,762 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-18 08:55:48,764 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-18 08:55:48,766 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-18 08:55:48,771 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:48,772 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:48,772 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:48,772 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:48,772 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:48,772 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:48,772 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:48,787 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:55:48,795 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (31)] Ended with exit code 0 [2023-02-18 08:55:48,795 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:48,795 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:48,796 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-18 08:55:48,797 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-18 08:55:48,799 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-18 08:55:48,805 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:48,805 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:48,805 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:48,805 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:48,805 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:48,805 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:48,805 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:48,814 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:55:48,818 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (32)] Ended with exit code 0 [2023-02-18 08:55:48,819 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:48,819 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:48,820 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-18 08:55:48,820 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-18 08:55:48,823 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-18 08:55:48,829 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:48,829 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:48,829 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:48,829 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:48,829 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:48,831 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:48,831 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:48,840 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-18 08:55:48,843 INFO L443 ModelExtractionUtils]: Simplification made 3 calls to the SMT solver. [2023-02-18 08:55:48,843 INFO L444 ModelExtractionUtils]: 6 out of 9 variables were initially zero. Simplification set additionally 0 variables to zero. [2023-02-18 08:55:48,843 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:48,843 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:48,845 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-18 08:55:48,846 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-18 08:55:48,847 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-18 08:55:48,847 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-18 08:55:48,847 INFO L513 LassoAnalysis]: Proved termination. [2023-02-18 08:55:48,847 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-18 08:55:48,850 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (33)] Ended with exit code 0 [2023-02-18 08:55:48,850 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-18 08:55:48,858 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:48,861 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:48,862 INFO L263 TraceCheckSpWp]: Trace formula consists of 12 conjuncts, 2 conjunts are in the unsatisfiable core [2023-02-18 08:55:48,862 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:48,882 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:48,882 INFO L263 TraceCheckSpWp]: Trace formula consists of 143 conjuncts, 14 conjunts are in the unsatisfiable core [2023-02-18 08:55:48,883 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:48,917 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-18 08:55:48,917 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-18 08:55:48,918 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-18 08:55:49,077 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-18 08:55:49,078 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-18 08:55:49,078 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-18 08:55:49,078 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 71 transitions. [2023-02-18 08:55:49,079 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 8 states and 71 transitions. Stem has 4 letters. Loop has 23 letters. [2023-02-18 08:55:49,079 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:49,079 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 8 states and 71 transitions. Stem has 27 letters. Loop has 23 letters. [2023-02-18 08:55:49,079 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:49,079 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 8 states and 71 transitions. Stem has 4 letters. Loop has 46 letters. [2023-02-18 08:55:49,079 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:49,079 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 159 states and 242 transitions. [2023-02-18 08:55:49,081 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 36 [2023-02-18 08:55:49,083 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 159 states to 158 states and 241 transitions. [2023-02-18 08:55:49,083 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 80 [2023-02-18 08:55:49,084 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 81 [2023-02-18 08:55:49,084 INFO L73 IsDeterministic]: Start isDeterministic. Operand 158 states and 241 transitions. [2023-02-18 08:55:49,085 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:49,085 INFO L218 hiAutomatonCegarLoop]: Abstraction has 158 states and 241 transitions. [2023-02-18 08:55:49,085 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 158 states and 241 transitions. [2023-02-18 08:55:49,091 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 158 to 149. [2023-02-18 08:55:49,091 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-18 08:55:49,092 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 149 states to 149 states and 222 transitions. [2023-02-18 08:55:49,102 INFO L240 hiAutomatonCegarLoop]: Abstraction has 149 states and 222 transitions. [2023-02-18 08:55:49,102 INFO L428 stractBuchiCegarLoop]: Abstraction has 149 states and 222 transitions. [2023-02-18 08:55:49,102 INFO L335 stractBuchiCegarLoop]: ======== Iteration 5 ============ [2023-02-18 08:55:49,102 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 149 states and 222 transitions. [2023-02-18 08:55:49,104 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 36 [2023-02-18 08:55:49,104 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:49,104 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:49,105 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1, 1] [2023-02-18 08:55:49,105 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-18 08:55:49,105 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-18 08:55:49,105 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-18 08:55:49,105 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:49,106 INFO L85 PathProgramCache]: Analyzing trace with hash 36330292, now seen corresponding path program 1 times [2023-02-18 08:55:49,106 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:49,106 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1028309735] [2023-02-18 08:55:49,106 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:49,106 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:49,108 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:49,108 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:55:49,109 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:49,110 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:55:49,110 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:49,110 INFO L85 PathProgramCache]: Analyzing trace with hash -304298247, now seen corresponding path program 1 times [2023-02-18 08:55:49,110 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:49,111 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1583613064] [2023-02-18 08:55:49,111 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:49,111 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:49,119 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:49,119 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1445569216] [2023-02-18 08:55:49,119 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:49,119 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:49,119 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:49,120 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-18 08:55:49,122 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-18 08:55:49,148 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:49,149 INFO L263 TraceCheckSpWp]: Trace formula consists of 71 conjuncts, 9 conjunts are in the unsatisfiable core [2023-02-18 08:55:49,150 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:49,176 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-18 08:55:49,176 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:55:49,217 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-18 08:55:49,218 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:49,218 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1583613064] [2023-02-18 08:55:49,218 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:49,218 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1445569216] [2023-02-18 08:55:49,218 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1445569216] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:55:49,218 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:55:49,218 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 8] total 11 [2023-02-18 08:55:49,219 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1903912482] [2023-02-18 08:55:49,219 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:55:49,219 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:55:49,219 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:55:49,219 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2023-02-18 08:55:49,220 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=25, Invalid=85, Unknown=0, NotChecked=0, Total=110 [2023-02-18 08:55:49,220 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-18 08:55:49,353 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:55:49,353 INFO L93 Difference]: Finished difference Result 291 states and 422 transitions. [2023-02-18 08:55:49,353 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 291 states and 422 transitions. [2023-02-18 08:55:49,356 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 89 [2023-02-18 08:55:49,362 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 291 states to 291 states and 422 transitions. [2023-02-18 08:55:49,362 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 143 [2023-02-18 08:55:49,364 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 143 [2023-02-18 08:55:49,364 INFO L73 IsDeterministic]: Start isDeterministic. Operand 291 states and 422 transitions. [2023-02-18 08:55:49,364 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:49,364 INFO L218 hiAutomatonCegarLoop]: Abstraction has 291 states and 422 transitions. [2023-02-18 08:55:49,366 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 291 states and 422 transitions. [2023-02-18 08:55:49,384 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 291 to 169. [2023-02-18 08:55:49,386 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-18 08:55:49,388 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 169 states to 169 states and 252 transitions. [2023-02-18 08:55:49,388 INFO L240 hiAutomatonCegarLoop]: Abstraction has 169 states and 252 transitions. [2023-02-18 08:55:49,389 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2023-02-18 08:55:49,390 INFO L428 stractBuchiCegarLoop]: Abstraction has 169 states and 252 transitions. [2023-02-18 08:55:49,390 INFO L335 stractBuchiCegarLoop]: ======== Iteration 6 ============ [2023-02-18 08:55:49,390 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 169 states and 252 transitions. [2023-02-18 08:55:49,391 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 40 [2023-02-18 08:55:49,391 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:49,391 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:49,392 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1, 1] [2023-02-18 08:55:49,392 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-18 08:55:49,393 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-18 08:55:49,393 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-18 08:55:49,393 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:49,393 INFO L85 PathProgramCache]: Analyzing trace with hash 36330292, now seen corresponding path program 2 times [2023-02-18 08:55:49,393 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:49,393 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1806201082] [2023-02-18 08:55:49,393 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:49,394 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:49,404 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:49,404 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:55:49,405 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:49,407 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:55:49,409 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:49,409 INFO L85 PathProgramCache]: Analyzing trace with hash 1403101825, now seen corresponding path program 2 times [2023-02-18 08:55:49,409 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:49,409 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [80056128] [2023-02-18 08:55:49,409 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:49,409 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:49,412 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:49,415 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2059713195] [2023-02-18 08:55:49,415 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:55:49,415 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:49,416 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:49,418 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-18 08:55:49,429 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-18 08:55:49,451 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:55:49,451 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:55:49,452 INFO L263 TraceCheckSpWp]: Trace formula consists of 83 conjuncts, 14 conjunts are in the unsatisfiable core [2023-02-18 08:55:49,453 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:49,461 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-18 08:55:49,498 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-18 08:55:49,499 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:55:49,595 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-18 08:55:49,596 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:49,596 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [80056128] [2023-02-18 08:55:49,596 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:49,596 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2059713195] [2023-02-18 08:55:49,596 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2059713195] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:55:49,596 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:55:49,596 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 11] total 19 [2023-02-18 08:55:49,597 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [501436792] [2023-02-18 08:55:49,597 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:55:49,597 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:55:49,597 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:55:49,597 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 20 interpolants. [2023-02-18 08:55:49,598 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=63, Invalid=317, Unknown=0, NotChecked=0, Total=380 [2023-02-18 08:55:49,598 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-18 08:55:50,041 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:55:50,041 INFO L93 Difference]: Finished difference Result 338 states and 514 transitions. [2023-02-18 08:55:50,041 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 338 states and 514 transitions. [2023-02-18 08:55:50,044 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 114 [2023-02-18 08:55:50,046 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 338 states to 325 states and 500 transitions. [2023-02-18 08:55:50,046 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 164 [2023-02-18 08:55:50,047 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 164 [2023-02-18 08:55:50,047 INFO L73 IsDeterministic]: Start isDeterministic. Operand 325 states and 500 transitions. [2023-02-18 08:55:50,047 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:50,047 INFO L218 hiAutomatonCegarLoop]: Abstraction has 325 states and 500 transitions. [2023-02-18 08:55:50,048 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 325 states and 500 transitions. [2023-02-18 08:55:50,053 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 325 to 203. [2023-02-18 08:55:50,053 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-18 08:55:50,054 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 203 states to 203 states and 302 transitions. [2023-02-18 08:55:50,054 INFO L240 hiAutomatonCegarLoop]: Abstraction has 203 states and 302 transitions. [2023-02-18 08:55:50,055 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 20 states. [2023-02-18 08:55:50,055 INFO L428 stractBuchiCegarLoop]: Abstraction has 203 states and 302 transitions. [2023-02-18 08:55:50,055 INFO L335 stractBuchiCegarLoop]: ======== Iteration 7 ============ [2023-02-18 08:55:50,055 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 203 states and 302 transitions. [2023-02-18 08:55:50,056 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 56 [2023-02-18 08:55:50,056 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:50,056 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:50,057 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1, 1] [2023-02-18 08:55:50,057 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-18 08:55:50,057 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-18 08:55:50,057 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-18 08:55:50,058 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:50,058 INFO L85 PathProgramCache]: Analyzing trace with hash 36330292, now seen corresponding path program 3 times [2023-02-18 08:55:50,058 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:50,058 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2053074043] [2023-02-18 08:55:50,058 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:50,058 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:50,060 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:50,060 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:55:50,061 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:50,062 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:55:50,062 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:50,062 INFO L85 PathProgramCache]: Analyzing trace with hash 1981125996, now seen corresponding path program 1 times [2023-02-18 08:55:50,062 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:50,062 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1426772201] [2023-02-18 08:55:50,063 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:50,063 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:50,082 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:50,083 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [325063145] [2023-02-18 08:55:50,084 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:50,084 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:50,084 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:50,085 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-18 08:55:50,087 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-18 08:55:50,126 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:50,127 INFO L263 TraceCheckSpWp]: Trace formula consists of 170 conjuncts, 13 conjunts are in the unsatisfiable core [2023-02-18 08:55:50,131 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:50,172 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-18 08:55:50,172 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:55:50,238 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-18 08:55:50,239 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:50,239 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1426772201] [2023-02-18 08:55:50,239 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:50,239 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [325063145] [2023-02-18 08:55:50,239 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [325063145] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:55:50,239 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:55:50,239 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 12] total 15 [2023-02-18 08:55:50,239 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1923571534] [2023-02-18 08:55:50,239 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:55:50,239 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:55:50,240 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:55:50,240 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2023-02-18 08:55:50,240 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=171, Unknown=0, NotChecked=0, Total=210 [2023-02-18 08:55:50,240 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-18 08:55:50,520 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:55:50,520 INFO L93 Difference]: Finished difference Result 349 states and 576 transitions. [2023-02-18 08:55:50,520 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 349 states and 576 transitions. [2023-02-18 08:55:50,523 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 90 [2023-02-18 08:55:50,526 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 349 states to 349 states and 576 transitions. [2023-02-18 08:55:50,526 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 171 [2023-02-18 08:55:50,526 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 171 [2023-02-18 08:55:50,526 INFO L73 IsDeterministic]: Start isDeterministic. Operand 349 states and 576 transitions. [2023-02-18 08:55:50,527 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:50,527 INFO L218 hiAutomatonCegarLoop]: Abstraction has 349 states and 576 transitions. [2023-02-18 08:55:50,527 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 349 states and 576 transitions. [2023-02-18 08:55:50,533 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 349 to 279. [2023-02-18 08:55:50,533 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-18 08:55:50,535 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 279 states to 279 states and 461 transitions. [2023-02-18 08:55:50,535 INFO L240 hiAutomatonCegarLoop]: Abstraction has 279 states and 461 transitions. [2023-02-18 08:55:50,535 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2023-02-18 08:55:50,536 INFO L428 stractBuchiCegarLoop]: Abstraction has 279 states and 461 transitions. [2023-02-18 08:55:50,536 INFO L335 stractBuchiCegarLoop]: ======== Iteration 8 ============ [2023-02-18 08:55:50,536 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 279 states and 461 transitions. [2023-02-18 08:55:50,537 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 82 [2023-02-18 08:55:50,537 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:50,537 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:50,538 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1, 1] [2023-02-18 08:55:50,538 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-18 08:55:50,538 INFO L748 eck$LassoCheckResult]: Stem: 3866#$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; 3867#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 3835#L42-3 [2023-02-18 08:55:50,538 INFO L750 eck$LassoCheckResult]: Loop: 3835#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 3922#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 3912#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 3919#$Ultimate##0 ~n := #in~n; 3921#L25 assume !(~n <= 0); 3905#L26 call #t~ret0 := fact(~n - 1);< 3831#$Ultimate##0 ~n := #in~n; 3917#L25 assume ~n <= 0;#res := 1; 3915#factFINAL assume true; 3902#factEXIT >#66#return; 3907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 3930#factFINAL assume true; 3909#factEXIT >#68#return; 3910#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 3919#$Ultimate##0 ~n := #in~n; 3921#L25 assume !(~n <= 0); 3905#L26 call #t~ret0 := fact(~n - 1);< 3831#$Ultimate##0 ~n := #in~n; 3917#L25 assume ~n <= 0;#res := 1; 3915#factFINAL assume true; 3902#factEXIT >#66#return; 3907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 3930#factFINAL assume true; 3909#factEXIT >#70#return; 3913#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 3919#$Ultimate##0 ~n := #in~n; 3921#L25 assume !(~n <= 0); 3905#L26 call #t~ret0 := fact(~n - 1);< 3831#$Ultimate##0 ~n := #in~n; 3917#L25 assume ~n <= 0;#res := 1; 3915#factFINAL assume true; 3902#factEXIT >#66#return; 3907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 3930#factFINAL assume true; 3909#factEXIT >#72#return; 3886#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 3937#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 3928#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 3927#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 3870#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 3880#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 3888#$Ultimate##0 ~n := #in~n; 3916#L25 assume !(~n <= 0); 3895#L26 call #t~ret0 := fact(~n - 1);< 3831#$Ultimate##0 ~n := #in~n; 3917#L25 assume !(~n <= 0); 3903#L26 call #t~ret0 := fact(~n - 1);< 3831#$Ultimate##0 ~n := #in~n; 3917#L25 assume ~n <= 0;#res := 1; 3915#factFINAL assume true; 3902#factEXIT >#66#return; 3906#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 3936#factFINAL assume true; 3924#factEXIT >#66#return; 3923#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 3891#factFINAL assume true; 3892#factEXIT >#74#return; 3875#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 3890#$Ultimate##0 ~n := #in~n; 3894#L25 assume ~n <= 0;#res := 1; 3893#factFINAL assume true; 3889#factEXIT >#76#return; 3884#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 3888#$Ultimate##0 ~n := #in~n; 3916#L25 assume !(~n <= 0); 3895#L26 call #t~ret0 := fact(~n - 1);< 3831#$Ultimate##0 ~n := #in~n; 3917#L25 assume ~n <= 0;#res := 1; 3915#factFINAL assume true; 3902#factEXIT >#66#return; 3901#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 3899#factFINAL assume true; 3874#factEXIT >#78#return; 3873#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 3872#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 3871#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 3869#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-18 08:55:50,538 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:50,538 INFO L85 PathProgramCache]: Analyzing trace with hash 36330292, now seen corresponding path program 4 times [2023-02-18 08:55:50,539 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:50,539 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [507745436] [2023-02-18 08:55:50,539 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:50,539 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:50,541 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:50,541 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:55:50,542 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:50,543 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:55:50,543 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:50,543 INFO L85 PathProgramCache]: Analyzing trace with hash -1060269836, now seen corresponding path program 2 times [2023-02-18 08:55:50,543 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:50,543 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2048817593] [2023-02-18 08:55:50,543 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:50,543 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:50,547 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:50,547 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [474536895] [2023-02-18 08:55:50,547 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:55:50,547 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:50,547 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:50,550 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-18 08:55:50,580 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-18 08:55:50,594 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:55:50,594 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:55:50,595 INFO L263 TraceCheckSpWp]: Trace formula consists of 182 conjuncts, 11 conjunts are in the unsatisfiable core [2023-02-18 08:55:50,596 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:50,625 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-18 08:55:50,625 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:55:50,679 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-18 08:55:50,680 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:50,680 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2048817593] [2023-02-18 08:55:50,680 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:50,680 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [474536895] [2023-02-18 08:55:50,680 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [474536895] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:55:50,680 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:55:50,680 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 10] total 13 [2023-02-18 08:55:50,680 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [72458244] [2023-02-18 08:55:50,680 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:55:50,681 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:55:50,681 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:55:50,682 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2023-02-18 08:55:50,682 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=33, Invalid=123, Unknown=0, NotChecked=0, Total=156 [2023-02-18 08:55:50,682 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-18 08:55:50,847 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:55:50,847 INFO L93 Difference]: Finished difference Result 437 states and 691 transitions. [2023-02-18 08:55:50,847 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 437 states and 691 transitions. [2023-02-18 08:55:50,850 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 132 [2023-02-18 08:55:50,853 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 437 states to 431 states and 683 transitions. [2023-02-18 08:55:50,853 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 214 [2023-02-18 08:55:50,853 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 214 [2023-02-18 08:55:50,853 INFO L73 IsDeterministic]: Start isDeterministic. Operand 431 states and 683 transitions. [2023-02-18 08:55:50,854 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:50,854 INFO L218 hiAutomatonCegarLoop]: Abstraction has 431 states and 683 transitions. [2023-02-18 08:55:50,854 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 431 states and 683 transitions. [2023-02-18 08:55:50,860 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 431 to 315. [2023-02-18 08:55:50,861 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-18 08:55:50,862 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 315 states to 315 states and 527 transitions. [2023-02-18 08:55:50,863 INFO L240 hiAutomatonCegarLoop]: Abstraction has 315 states and 527 transitions. [2023-02-18 08:55:50,863 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2023-02-18 08:55:50,864 INFO L428 stractBuchiCegarLoop]: Abstraction has 315 states and 527 transitions. [2023-02-18 08:55:50,864 INFO L335 stractBuchiCegarLoop]: ======== Iteration 9 ============ [2023-02-18 08:55:50,864 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 315 states and 527 transitions. [2023-02-18 08:55:50,865 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 88 [2023-02-18 08:55:50,865 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:50,865 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:50,866 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1, 1] [2023-02-18 08:55:50,866 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-18 08:55:50,866 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-18 08:55:50,866 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-18 08:55:50,866 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:50,866 INFO L85 PathProgramCache]: Analyzing trace with hash 36330292, now seen corresponding path program 5 times [2023-02-18 08:55:50,866 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:50,866 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [105572919] [2023-02-18 08:55:50,867 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:50,867 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:50,869 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:50,869 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:55:50,870 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:50,872 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:55:50,873 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:50,873 INFO L85 PathProgramCache]: Analyzing trace with hash 1909065068, now seen corresponding path program 3 times [2023-02-18 08:55:50,873 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:50,873 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [197308855] [2023-02-18 08:55:50,873 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:50,873 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:50,880 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:50,880 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1868271917] [2023-02-18 08:55:50,880 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:55:50,881 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:50,881 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:50,883 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-18 08:55:50,884 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-18 08:55:50,939 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 6 check-sat command(s) [2023-02-18 08:55:50,940 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:55:50,940 INFO L263 TraceCheckSpWp]: Trace formula consists of 143 conjuncts, 10 conjunts are in the unsatisfiable core [2023-02-18 08:55:50,942 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:50,961 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-18 08:55:50,962 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:55:50,997 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-18 08:55:50,997 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:50,998 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [197308855] [2023-02-18 08:55:50,998 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:50,998 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1868271917] [2023-02-18 08:55:50,998 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1868271917] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:55:50,998 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:55:50,998 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 9] total 12 [2023-02-18 08:55:50,998 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [619457096] [2023-02-18 08:55:50,998 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:55:50,999 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:55:50,999 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:55:50,999 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2023-02-18 08:55:50,999 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=27, Invalid=105, Unknown=0, NotChecked=0, Total=132 [2023-02-18 08:55:50,999 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-18 08:55:51,201 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:55:51,202 INFO L93 Difference]: Finished difference Result 439 states and 739 transitions. [2023-02-18 08:55:51,202 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 439 states and 739 transitions. [2023-02-18 08:55:51,205 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 124 [2023-02-18 08:55:51,209 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 439 states to 437 states and 735 transitions. [2023-02-18 08:55:51,209 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 218 [2023-02-18 08:55:51,209 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 218 [2023-02-18 08:55:51,209 INFO L73 IsDeterministic]: Start isDeterministic. Operand 437 states and 735 transitions. [2023-02-18 08:55:51,209 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:51,209 INFO L218 hiAutomatonCegarLoop]: Abstraction has 437 states and 735 transitions. [2023-02-18 08:55:51,209 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 437 states and 735 transitions. [2023-02-18 08:55:51,216 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 437 to 372. [2023-02-18 08:55:51,216 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-18 08:55:51,218 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 372 states to 372 states and 638 transitions. [2023-02-18 08:55:51,218 INFO L240 hiAutomatonCegarLoop]: Abstraction has 372 states and 638 transitions. [2023-02-18 08:55:51,218 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2023-02-18 08:55:51,219 INFO L428 stractBuchiCegarLoop]: Abstraction has 372 states and 638 transitions. [2023-02-18 08:55:51,219 INFO L335 stractBuchiCegarLoop]: ======== Iteration 10 ============ [2023-02-18 08:55:51,219 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 372 states and 638 transitions. [2023-02-18 08:55:51,220 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 104 [2023-02-18 08:55:51,220 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:51,220 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:51,220 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:55:51,221 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2023-02-18 08:55:51,221 INFO L748 eck$LassoCheckResult]: Stem: 6344#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 6294#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; 6295#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 6315#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; 6304#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 6305#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 6424#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 6387#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 6397#$Ultimate##0 ~n := #in~n; 6421#L25 assume !(~n <= 0); 6377#L26 call #t~ret0 := fact(~n - 1);< 6301#$Ultimate##0 [2023-02-18 08:55:51,221 INFO L750 eck$LassoCheckResult]: Loop: 6301#$Ultimate##0 ~n := #in~n; 6384#L25 assume !(~n <= 0); 6375#L26 call #t~ret0 := fact(~n - 1);< 6301#$Ultimate##0 [2023-02-18 08:55:51,221 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:51,221 INFO L85 PathProgramCache]: Analyzing trace with hash 271623377, now seen corresponding path program 1 times [2023-02-18 08:55:51,221 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:51,221 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [523871287] [2023-02-18 08:55:51,221 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:51,221 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:51,224 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:51,251 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-18 08:55:51,252 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:51,252 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [523871287] [2023-02-18 08:55:51,252 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [523871287] provided 1 perfect and 0 imperfect interpolant sequences [2023-02-18 08:55:51,252 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2023-02-18 08:55:51,252 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2023-02-18 08:55:51,252 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1521232114] [2023-02-18 08:55:51,252 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2023-02-18 08:55:51,252 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:55:51,252 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:51,252 INFO L85 PathProgramCache]: Analyzing trace with hash 29980, now seen corresponding path program 1 times [2023-02-18 08:55:51,252 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:51,252 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1235156412] [2023-02-18 08:55:51,253 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:51,253 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:51,255 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:51,255 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:55:51,256 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:51,256 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:55:51,258 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:55:51,258 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:55:51,258 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:55:51,258 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:55:51,258 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-18 08:55:51,258 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:51,258 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:55:51,258 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:55:51,258 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration10_Loop [2023-02-18 08:55:51,258 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:55:51,258 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:55:51,259 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-18 08:55:51,259 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-18 08:55:51,260 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-18 08:55:51,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-18 08:55:51,262 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:55:51,262 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-18 08:55:51,262 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:51,262 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:51,264 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-18 08:55:51,269 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:51,269 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:51,278 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-18 08:55:51,286 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:51,286 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {fact_~n=0} Honda state: {fact_~n=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-18 08:55:51,289 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-18 08:55:51,289 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:51,290 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:51,290 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-18 08:55:51,292 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-18 08:55:51,294 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:51,294 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:51,323 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-18 08:55:51,324 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:51,324 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:51,325 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-18 08:55:51,327 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-18 08:55:51,328 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-18 08:55:51,328 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:51,349 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-18 08:55:51,354 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-18 08:55:51,355 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:55:51,355 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:55:51,355 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:55:51,355 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:55:51,355 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-18 08:55:51,355 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:51,355 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:55:51,355 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:55:51,355 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration10_Loop [2023-02-18 08:55:51,355 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:55:51,355 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:55:51,356 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-18 08:55:51,357 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-18 08:55:51,357 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-18 08:55:51,358 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-18 08:55:51,359 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:55:51,359 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-18 08:55:51,359 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:51,359 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:51,360 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-18 08:55:51,362 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-18 08:55:51,364 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-18 08:55:51,371 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:51,371 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:51,371 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:51,371 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:51,371 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:51,371 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:51,371 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:51,372 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:55:51,383 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-18 08:55:51,383 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:51,383 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:51,384 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-18 08:55:51,384 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-18 08:55:51,389 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-18 08:55:51,396 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:51,396 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:51,396 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:51,396 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:51,396 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:51,397 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:51,397 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:51,406 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-18 08:55:51,408 INFO L443 ModelExtractionUtils]: Simplification made 3 calls to the SMT solver. [2023-02-18 08:55:51,408 INFO L444 ModelExtractionUtils]: 0 out of 3 variables were initially zero. Simplification set additionally 1 variables to zero. [2023-02-18 08:55:51,408 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:51,408 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:51,411 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-18 08:55:51,412 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-18 08:55:51,413 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-18 08:55:51,413 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-18 08:55:51,413 INFO L513 LassoAnalysis]: Proved termination. [2023-02-18 08:55:51,413 INFO L515 LassoAnalysis]: Termination argument consisting of: Ranking function f(fact_#in~n) = 1*fact_#in~n Supporting invariants [] [2023-02-18 08:55:51,419 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (44)] Forceful destruction successful, exit code 0 [2023-02-18 08:55:51,419 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-18 08:55:51,426 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:51,439 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:51,440 INFO L263 TraceCheckSpWp]: Trace formula consists of 92 conjuncts, 6 conjunts are in the unsatisfiable core [2023-02-18 08:55:51,440 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:51,447 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:51,448 INFO L263 TraceCheckSpWp]: Trace formula consists of 37 conjuncts, 7 conjunts are in the unsatisfiable core [2023-02-18 08:55:51,448 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:51,455 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-18 08:55:51,455 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-18 08:55:51,456 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-18 08:55:51,483 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-18 08:55:51,484 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-18 08:55:51,485 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-18 08:55:51,485 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 32 transitions. [2023-02-18 08:55:51,485 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 4 states and 32 transitions. Stem has 11 letters. Loop has 3 letters. [2023-02-18 08:55:51,485 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:51,485 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 4 states and 32 transitions. Stem has 14 letters. Loop has 3 letters. [2023-02-18 08:55:51,485 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:51,485 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 4 states and 32 transitions. Stem has 11 letters. Loop has 6 letters. [2023-02-18 08:55:51,486 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:51,486 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 474 states and 806 transitions. [2023-02-18 08:55:51,489 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 112 [2023-02-18 08:55:51,493 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 474 states to 462 states and 794 transitions. [2023-02-18 08:55:51,494 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 222 [2023-02-18 08:55:51,494 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 224 [2023-02-18 08:55:51,494 INFO L73 IsDeterministic]: Start isDeterministic. Operand 462 states and 794 transitions. [2023-02-18 08:55:51,494 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:51,494 INFO L218 hiAutomatonCegarLoop]: Abstraction has 462 states and 794 transitions. [2023-02-18 08:55:51,494 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 462 states and 794 transitions. [2023-02-18 08:55:51,502 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 462 to 458. [2023-02-18 08:55:51,503 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-18 08:55:51,505 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 458 states to 458 states and 786 transitions. [2023-02-18 08:55:51,505 INFO L240 hiAutomatonCegarLoop]: Abstraction has 458 states and 786 transitions. [2023-02-18 08:55:51,505 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:55:51,505 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2023-02-18 08:55:51,506 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2023-02-18 08:55:51,506 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-18 08:55:51,549 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:55:51,550 INFO L93 Difference]: Finished difference Result 543 states and 909 transitions. [2023-02-18 08:55:51,550 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 543 states and 909 transitions. [2023-02-18 08:55:51,554 INFO L131 ngComponentsAnalysis]: Automaton has 10 accepting balls. 137 [2023-02-18 08:55:51,558 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 543 states to 537 states and 901 transitions. [2023-02-18 08:55:51,558 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 263 [2023-02-18 08:55:51,559 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 263 [2023-02-18 08:55:51,559 INFO L73 IsDeterministic]: Start isDeterministic. Operand 537 states and 901 transitions. [2023-02-18 08:55:51,559 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:51,559 INFO L218 hiAutomatonCegarLoop]: Abstraction has 537 states and 901 transitions. [2023-02-18 08:55:51,559 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 537 states and 901 transitions. [2023-02-18 08:55:51,580 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-18 08:55:51,583 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 537 to 528. [2023-02-18 08:55:51,584 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-18 08:55:51,586 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 528 states to 528 states and 890 transitions. [2023-02-18 08:55:51,587 INFO L240 hiAutomatonCegarLoop]: Abstraction has 528 states and 890 transitions. [2023-02-18 08:55:51,587 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2023-02-18 08:55:51,587 INFO L428 stractBuchiCegarLoop]: Abstraction has 528 states and 890 transitions. [2023-02-18 08:55:51,587 INFO L335 stractBuchiCegarLoop]: ======== Iteration 11 ============ [2023-02-18 08:55:51,587 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 528 states and 890 transitions. [2023-02-18 08:55:51,589 INFO L131 ngComponentsAnalysis]: Automaton has 10 accepting balls. 134 [2023-02-18 08:55:51,590 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:51,590 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:51,590 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-18 08:55:51,590 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-18 08:55:51,590 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-18 08:55:51,590 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-18 08:55:51,591 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:51,591 INFO L85 PathProgramCache]: Analyzing trace with hash -1776267382, now seen corresponding path program 1 times [2023-02-18 08:55:51,591 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:51,591 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1173429266] [2023-02-18 08:55:51,591 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:51,591 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:51,595 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:51,595 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1697479039] [2023-02-18 08:55:51,595 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:51,595 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:51,595 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:51,596 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-18 08:55:51,598 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-18 08:55:51,625 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:51,626 INFO L263 TraceCheckSpWp]: Trace formula consists of 76 conjuncts, 6 conjunts are in the unsatisfiable core [2023-02-18 08:55:51,626 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:51,636 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-18 08:55:51,636 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:55:51,649 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-18 08:55:51,650 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:51,650 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1173429266] [2023-02-18 08:55:51,650 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:51,650 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1697479039] [2023-02-18 08:55:51,650 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1697479039] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:55:51,650 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:55:51,650 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [6, 6] total 7 [2023-02-18 08:55:51,650 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [171685601] [2023-02-18 08:55:51,650 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:55:51,650 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:55:51,651 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:51,651 INFO L85 PathProgramCache]: Analyzing trace with hash -1560218684, now seen corresponding path program 1 times [2023-02-18 08:55:51,651 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:51,651 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [639272792] [2023-02-18 08:55:51,651 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:51,651 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:51,655 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:51,655 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1010503138] [2023-02-18 08:55:51,655 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:51,655 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:51,655 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:51,656 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-18 08:55:51,658 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-18 08:55:51,720 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:51,720 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:55:51,734 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:51,742 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:55:51,765 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:55:51,765 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:55:51,765 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:55:51,765 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:55:51,765 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-18 08:55:51,765 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:51,765 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:55:51,765 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:55:51,766 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration11_Loop [2023-02-18 08:55:51,766 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:55:51,766 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:55:51,769 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-18 08:55:51,769 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-18 08:55:51,770 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-18 08:55:51,770 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-18 08:55:51,771 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-18 08:55:51,771 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-18 08:55:51,779 WARN L137 XnfTransformerHelper]: expecting exponential blowup for input size 35 [2023-02-18 08:55:51,793 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:55:51,793 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-18 08:55:51,793 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:51,793 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:51,796 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-18 08:55:51,797 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-18 08:55:51,798 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:51,798 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:51,819 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:51,819 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-18 08:55:51,822 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-18 08:55:51,823 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:51,823 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:51,824 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-18 08:55:51,826 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-18 08:55:51,827 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:51,827 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:51,849 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:51,849 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-18 08:55:51,858 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (49)] Forceful destruction successful, exit code 0 [2023-02-18 08:55:51,858 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:51,858 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:51,859 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-18 08:55:51,861 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-18 08:55:51,862 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:51,863 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:51,876 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:51,876 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-18 08:55:51,880 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-18 08:55:51,880 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:51,880 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:51,881 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-18 08:55:51,881 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-18 08:55:51,884 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:51,884 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:51,891 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:51,891 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-18 08:55:51,894 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (51)] Ended with exit code 0 [2023-02-18 08:55:51,894 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:51,894 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:51,895 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-18 08:55:51,895 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-18 08:55:51,898 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:51,898 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:51,905 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:51,905 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-18 08:55:51,908 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-18 08:55:51,908 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:51,908 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:51,909 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-18 08:55:51,911 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-18 08:55:51,912 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:51,912 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:51,965 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-18 08:55:51,966 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:51,966 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:51,967 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-18 08:55:51,969 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-18 08:55:51,970 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-18 08:55:51,970 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:52,109 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-18 08:55:52,113 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-18 08:55:52,114 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:55:52,114 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:55:52,114 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:55:52,114 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:55:52,114 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-18 08:55:52,114 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:52,114 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:55:52,114 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:55:52,114 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration11_Loop [2023-02-18 08:55:52,114 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:55:52,114 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:55:52,117 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-18 08:55:52,121 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-18 08:55:52,123 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-18 08:55:52,123 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-18 08:55:52,124 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-18 08:55:52,125 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-18 08:55:52,129 WARN L137 XnfTransformerHelper]: expecting exponential blowup for input size 35 [2023-02-18 08:55:52,147 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:55:52,147 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-18 08:55:52,147 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:52,147 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:52,148 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-18 08:55:52,150 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-18 08:55:52,152 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-18 08:55:52,158 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:52,159 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:52,159 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:52,159 INFO L204 nArgumentSynthesizer]: 44 loop disjuncts [2023-02-18 08:55:52,159 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:52,304 INFO L401 nArgumentSynthesizer]: We have 88 Motzkin's Theorem applications. [2023-02-18 08:55:52,304 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:52,434 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-18 08:55:52,485 INFO L443 ModelExtractionUtils]: Simplification made 3 calls to the SMT solver. [2023-02-18 08:55:52,485 INFO L444 ModelExtractionUtils]: 7 out of 10 variables were initially zero. Simplification set additionally 0 variables to zero. [2023-02-18 08:55:52,485 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:52,486 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:52,488 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-18 08:55:52,489 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-18 08:55:52,490 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-18 08:55:52,490 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-18 08:55:52,491 INFO L513 LassoAnalysis]: Proved termination. [2023-02-18 08:55:52,491 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-18 08:55:52,500 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-18 08:55:52,500 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-18 08:55:52,508 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:52,533 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:52,535 INFO L263 TraceCheckSpWp]: Trace formula consists of 188 conjuncts, 10 conjunts are in the unsatisfiable core [2023-02-18 08:55:52,536 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:52,592 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:52,594 INFO L263 TraceCheckSpWp]: Trace formula consists of 377 conjuncts, 32 conjunts are in the unsatisfiable core [2023-02-18 08:55:52,596 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:52,622 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-18 08:55:52,689 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-18 08:55:52,690 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-18 08:55:52,690 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-18 08:55:52,908 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-18 08:55:52,908 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-18 08:55:52,908 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-18 08:55:52,909 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 96 transitions. [2023-02-18 08:55:52,909 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 12 states and 96 transitions. Stem has 30 letters. Loop has 56 letters. [2023-02-18 08:55:52,909 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:52,910 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 12 states and 96 transitions. Stem has 86 letters. Loop has 56 letters. [2023-02-18 08:55:52,910 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:52,910 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 12 states and 96 transitions. Stem has 30 letters. Loop has 112 letters. [2023-02-18 08:55:52,911 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:52,911 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1083 states and 1767 transitions. [2023-02-18 08:55:52,921 INFO L131 ngComponentsAnalysis]: Automaton has 10 accepting balls. 123 [2023-02-18 08:55:52,929 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1083 states to 1057 states and 1734 transitions. [2023-02-18 08:55:52,930 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 357 [2023-02-18 08:55:52,930 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 362 [2023-02-18 08:55:52,930 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1057 states and 1734 transitions. [2023-02-18 08:55:52,930 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:52,930 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1057 states and 1734 transitions. [2023-02-18 08:55:52,931 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1057 states and 1734 transitions. [2023-02-18 08:55:52,952 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1057 to 922. [2023-02-18 08:55:52,954 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-18 08:55:52,962 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 922 states to 922 states and 1462 transitions. [2023-02-18 08:55:52,962 INFO L240 hiAutomatonCegarLoop]: Abstraction has 922 states and 1462 transitions. [2023-02-18 08:55:52,962 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:55:52,963 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2023-02-18 08:55:52,963 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=13, Invalid=29, Unknown=0, NotChecked=0, Total=42 [2023-02-18 08:55:52,963 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-18 08:55:53,042 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:55:53,042 INFO L93 Difference]: Finished difference Result 936 states and 1456 transitions. [2023-02-18 08:55:53,043 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 936 states and 1456 transitions. [2023-02-18 08:55:53,049 INFO L131 ngComponentsAnalysis]: Automaton has 10 accepting balls. 126 [2023-02-18 08:55:53,055 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 936 states to 936 states and 1456 transitions. [2023-02-18 08:55:53,055 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 329 [2023-02-18 08:55:53,056 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 329 [2023-02-18 08:55:53,056 INFO L73 IsDeterministic]: Start isDeterministic. Operand 936 states and 1456 transitions. [2023-02-18 08:55:53,056 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:53,056 INFO L218 hiAutomatonCegarLoop]: Abstraction has 936 states and 1456 transitions. [2023-02-18 08:55:53,057 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 936 states and 1456 transitions. [2023-02-18 08:55:53,070 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 936 to 882. [2023-02-18 08:55:53,072 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-18 08:55:53,075 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 882 states to 882 states and 1388 transitions. [2023-02-18 08:55:53,075 INFO L240 hiAutomatonCegarLoop]: Abstraction has 882 states and 1388 transitions. [2023-02-18 08:55:53,075 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2023-02-18 08:55:53,076 INFO L428 stractBuchiCegarLoop]: Abstraction has 882 states and 1388 transitions. [2023-02-18 08:55:53,076 INFO L335 stractBuchiCegarLoop]: ======== Iteration 12 ============ [2023-02-18 08:55:53,076 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 882 states and 1388 transitions. [2023-02-18 08:55:53,080 INFO L131 ngComponentsAnalysis]: Automaton has 10 accepting balls. 120 [2023-02-18 08:55:53,080 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:53,080 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:53,081 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-18 08:55:53,081 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2023-02-18 08:55:53,081 INFO L748 eck$LassoCheckResult]: Stem: 12236#$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; 12198#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; 12189#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 12424#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, 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; 12658#L25 assume ~n <= 0;#res := 1; 12655#factFINAL assume true; 12654#factEXIT >#68#return; 12182#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 12224#$Ultimate##0 ~n := #in~n; 12626#L25 assume ~n <= 0;#res := 1; 12627#factFINAL assume true; 12551#factEXIT >#70#return; 12181#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 12224#$Ultimate##0 ~n := #in~n; 12626#L25 assume ~n <= 0;#res := 1; 12627#factFINAL assume true; 12551#factEXIT >#72#return; 12552#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 12578#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 12575#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 12574#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 12559#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 12544#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 12558#$Ultimate##0 ~n := #in~n; 12564#L25 assume !(~n <= 0); 12565#L26 call #t~ret0 := fact(~n - 1);< 12602#$Ultimate##0 ~n := #in~n; 12684#L25 assume ~n <= 0;#res := 1; 12685#factFINAL assume true; 12633#factEXIT >#66#return; 12631#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 12628#factFINAL assume true; 12622#factEXIT >#74#return; 12526#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 12536#$Ultimate##0 ~n := #in~n; 12641#L25 assume !(~n <= 0); 12439#L26 call #t~ret0 := fact(~n - 1);< 12452#$Ultimate##0 [2023-02-18 08:55:53,082 INFO L750 eck$LassoCheckResult]: Loop: 12452#$Ultimate##0 ~n := #in~n; 12460#L25 assume !(~n <= 0); 12438#L26 call #t~ret0 := fact(~n - 1);< 12452#$Ultimate##0 [2023-02-18 08:55:53,082 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:53,082 INFO L85 PathProgramCache]: Analyzing trace with hash 1705579033, now seen corresponding path program 1 times [2023-02-18 08:55:53,082 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:53,082 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1242568223] [2023-02-18 08:55:53,082 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:53,083 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:53,091 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:53,091 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [171374711] [2023-02-18 08:55:53,092 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:53,092 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:53,092 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:53,093 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-18 08:55:53,095 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-18 08:55:53,125 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:53,126 INFO L263 TraceCheckSpWp]: Trace formula consists of 111 conjuncts, 6 conjunts are in the unsatisfiable core [2023-02-18 08:55:53,127 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:53,138 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-18 08:55:53,138 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2023-02-18 08:55:53,138 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:53,138 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1242568223] [2023-02-18 08:55:53,138 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:53,138 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [171374711] [2023-02-18 08:55:53,138 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [171374711] provided 1 perfect and 0 imperfect interpolant sequences [2023-02-18 08:55:53,138 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2023-02-18 08:55:53,138 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2023-02-18 08:55:53,138 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [602045885] [2023-02-18 08:55:53,138 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2023-02-18 08:55:53,139 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:55:53,139 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:53,139 INFO L85 PathProgramCache]: Analyzing trace with hash 29980, now seen corresponding path program 2 times [2023-02-18 08:55:53,139 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:53,139 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [825400872] [2023-02-18 08:55:53,139 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:53,139 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:53,141 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:53,141 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:55:53,141 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:53,142 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:55:53,143 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:55:53,143 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:55:53,143 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:55:53,143 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:55:53,143 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-18 08:55:53,143 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:53,143 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:55:53,143 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:55:53,143 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration12_Loop [2023-02-18 08:55:53,144 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:55:53,144 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:55:53,144 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-18 08:55:53,144 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-18 08:55:53,145 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-18 08:55:53,145 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-18 08:55:53,146 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:55:53,146 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-18 08:55:53,146 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:53,147 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:53,148 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-18 08:55:53,149 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-18 08:55:53,151 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:53,151 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:53,171 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:53,172 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {fact_~n=0} Honda state: {fact_~n=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-18 08:55:53,174 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-18 08:55:53,175 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:53,175 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:53,176 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-18 08:55:53,177 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-18 08:55:53,179 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:53,179 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:53,200 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:53,200 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-18 08:55:53,209 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-18 08:55:53,210 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:53,210 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:53,211 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-18 08:55:53,213 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-18 08:55:53,214 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:53,214 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:53,235 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:53,235 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {fact_#res=0} Honda state: {fact_#res=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-18 08:55:53,238 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (60)] Ended with exit code 0 [2023-02-18 08:55:53,238 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:53,238 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:53,239 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-18 08:55:53,240 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-18 08:55:53,242 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:53,242 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:53,251 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (61)] Ended with exit code 0 [2023-02-18 08:55:53,251 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:53,251 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:53,252 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-18 08:55:53,252 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-18 08:55:53,255 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-18 08:55:53,255 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:53,298 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-18 08:55:53,301 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (62)] Ended with exit code 0 [2023-02-18 08:55:53,301 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:55:53,301 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:55:53,301 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:55:53,301 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:55:53,301 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-18 08:55:53,301 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:53,301 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:55:53,301 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:55:53,301 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration12_Loop [2023-02-18 08:55:53,301 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:55:53,301 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:55:53,302 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-18 08:55:53,309 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-18 08:55:53,310 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-18 08:55:53,311 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-18 08:55:53,312 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:55:53,312 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-18 08:55:53,312 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:53,312 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:53,314 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-18 08:55:53,317 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-18 08:55:53,318 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-18 08:55:53,324 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:53,324 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:53,324 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:53,324 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:53,324 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:53,324 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:53,324 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:53,339 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:55:53,343 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-18 08:55:53,343 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:53,343 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:53,344 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-18 08:55:53,346 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-18 08:55:53,347 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-18 08:55:53,353 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:53,353 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:53,353 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:53,353 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:53,353 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:53,354 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:53,354 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:53,369 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:55:53,371 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (64)] Ended with exit code 0 [2023-02-18 08:55:53,372 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:53,372 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:53,373 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-18 08:55:53,374 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-18 08:55:53,376 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-18 08:55:53,382 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:53,382 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:53,382 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:53,382 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:53,382 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:53,383 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:53,383 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:53,383 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:55:53,386 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-18 08:55:53,386 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:53,387 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:53,387 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-18 08:55:53,389 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-18 08:55:53,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-18 08:55:53,396 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:53,396 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:53,397 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:53,397 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:53,397 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:53,397 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:53,397 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:53,412 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-18 08:55:53,413 INFO L443 ModelExtractionUtils]: Simplification made 2 calls to the SMT solver. [2023-02-18 08:55:53,414 INFO L444 ModelExtractionUtils]: 1 out of 3 variables were initially zero. Simplification set additionally 0 variables to zero. [2023-02-18 08:55:53,414 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:53,414 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:53,416 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-18 08:55:53,430 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-18 08:55:53,430 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-18 08:55:53,430 INFO L513 LassoAnalysis]: Proved termination. [2023-02-18 08:55:53,430 INFO L515 LassoAnalysis]: Termination argument consisting of: Ranking function f(fact_#in~n) = 1*fact_#in~n Supporting invariants [] [2023-02-18 08:55:53,433 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-18 08:55:53,437 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (66)] Ended with exit code 0 [2023-02-18 08:55:53,438 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-18 08:55:53,444 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:53,472 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:53,474 INFO L263 TraceCheckSpWp]: Trace formula consists of 307 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-18 08:55:53,475 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:53,495 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:53,495 INFO L263 TraceCheckSpWp]: Trace formula consists of 37 conjuncts, 7 conjunts are in the unsatisfiable core [2023-02-18 08:55:53,496 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:53,503 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-18 08:55:53,504 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-18 08:55:53,504 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-18 08:55:53,552 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-18 08:55:53,552 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-18 08:55:53,553 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-18 08:55:53,553 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 32 transitions. [2023-02-18 08:55:53,553 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 5 states and 32 transitions. Stem has 42 letters. Loop has 3 letters. [2023-02-18 08:55:53,553 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:53,553 INFO L681 stractBuchiCegarLoop]: Bad chosen interpolant automaton: word not accepted [2023-02-18 08:55:53,559 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:53,590 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:53,591 INFO L263 TraceCheckSpWp]: Trace formula consists of 307 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-18 08:55:53,593 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:53,609 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:53,610 INFO L263 TraceCheckSpWp]: Trace formula consists of 37 conjuncts, 7 conjunts are in the unsatisfiable core [2023-02-18 08:55:53,610 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:53,617 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-18 08:55:53,618 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-18 08:55:53,618 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-18 08:55:53,659 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-18 08:55:53,660 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-18 08:55:53,660 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-18 08:55:53,660 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 32 transitions. [2023-02-18 08:55:53,661 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 5 states and 32 transitions. Stem has 42 letters. Loop has 3 letters. [2023-02-18 08:55:53,661 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:53,661 INFO L681 stractBuchiCegarLoop]: Bad chosen interpolant automaton: word not accepted [2023-02-18 08:55:53,668 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:53,698 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:53,700 INFO L263 TraceCheckSpWp]: Trace formula consists of 307 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-18 08:55:53,701 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:53,717 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:53,718 INFO L263 TraceCheckSpWp]: Trace formula consists of 37 conjuncts, 7 conjunts are in the unsatisfiable core [2023-02-18 08:55:53,718 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:53,725 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-18 08:55:53,725 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-18 08:55:53,726 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-18 08:55:53,775 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-18 08:55:53,775 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-18 08:55:53,776 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-18 08:55:53,776 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 40 transitions. [2023-02-18 08:55:53,776 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 5 states and 40 transitions. Stem has 42 letters. Loop has 3 letters. [2023-02-18 08:55:53,776 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:53,776 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 5 states and 40 transitions. Stem has 45 letters. Loop has 3 letters. [2023-02-18 08:55:53,777 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:53,777 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 5 states and 40 transitions. Stem has 42 letters. Loop has 6 letters. [2023-02-18 08:55:53,777 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:53,777 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1068 states and 1614 transitions. [2023-02-18 08:55:53,783 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 114 [2023-02-18 08:55:53,790 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1068 states to 935 states and 1479 transitions. [2023-02-18 08:55:53,790 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 301 [2023-02-18 08:55:53,790 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 309 [2023-02-18 08:55:53,791 INFO L73 IsDeterministic]: Start isDeterministic. Operand 935 states and 1479 transitions. [2023-02-18 08:55:53,791 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:53,791 INFO L218 hiAutomatonCegarLoop]: Abstraction has 935 states and 1479 transitions. [2023-02-18 08:55:53,792 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 935 states and 1479 transitions. [2023-02-18 08:55:53,805 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 935 to 867. [2023-02-18 08:55:53,806 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-18 08:55:53,809 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 867 states to 867 states and 1329 transitions. [2023-02-18 08:55:53,809 INFO L240 hiAutomatonCegarLoop]: Abstraction has 867 states and 1329 transitions. [2023-02-18 08:55:53,809 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:55:53,809 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2023-02-18 08:55:53,809 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2023-02-18 08:55:53,809 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-18 08:55:53,858 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:55:53,858 INFO L93 Difference]: Finished difference Result 819 states and 1177 transitions. [2023-02-18 08:55:53,858 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 819 states and 1177 transitions. [2023-02-18 08:55:53,863 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 106 [2023-02-18 08:55:53,867 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 819 states to 815 states and 1173 transitions. [2023-02-18 08:55:53,867 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 295 [2023-02-18 08:55:53,867 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 295 [2023-02-18 08:55:53,868 INFO L73 IsDeterministic]: Start isDeterministic. Operand 815 states and 1173 transitions. [2023-02-18 08:55:53,868 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:53,868 INFO L218 hiAutomatonCegarLoop]: Abstraction has 815 states and 1173 transitions. [2023-02-18 08:55:53,868 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 815 states and 1173 transitions. [2023-02-18 08:55:53,880 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 815 to 797. [2023-02-18 08:55:53,881 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-18 08:55:53,902 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 797 states to 797 states and 1144 transitions. [2023-02-18 08:55:53,902 INFO L240 hiAutomatonCegarLoop]: Abstraction has 797 states and 1144 transitions. [2023-02-18 08:55:53,902 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-18 08:55:53,903 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2023-02-18 08:55:53,904 INFO L428 stractBuchiCegarLoop]: Abstraction has 797 states and 1144 transitions. [2023-02-18 08:55:53,904 INFO L335 stractBuchiCegarLoop]: ======== Iteration 13 ============ [2023-02-18 08:55:53,904 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 797 states and 1144 transitions. [2023-02-18 08:55:53,907 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 106 [2023-02-18 08:55:53,907 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:53,907 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:53,907 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-18 08:55:53,907 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-18 08:55:53,908 INFO L748 eck$LassoCheckResult]: Stem: 18417#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 18328#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; 18329#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 18354#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; 18341#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 18343#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 18561#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, 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; 18612#L25 assume ~n <= 0;#res := 1; 18610#factFINAL assume true; 18607#factEXIT >#68#return; 18405#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 18406#$Ultimate##0 ~n := #in~n; 18566#L25 assume ~n <= 0;#res := 1; 18565#factFINAL assume true; 18544#factEXIT >#70#return; 18335#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 18558#$Ultimate##0 ~n := #in~n; 18819#L25 assume !(~n <= 0); 18334#L26 call #t~ret0 := fact(~n - 1);< 18336#$Ultimate##0 ~n := #in~n; 18704#L25 assume ~n <= 0;#res := 1; 18705#factFINAL assume true; 18697#factEXIT >#66#return; 18696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 18694#factFINAL assume true; 18688#factEXIT >#72#return; 18687#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 18684#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 18682#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 18515#L42-3 [2023-02-18 08:55:53,908 INFO L750 eck$LassoCheckResult]: Loop: 18515#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 18516#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, 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; 18623#L25 assume !(~n <= 0); 18576#L26 call #t~ret0 := fact(~n - 1);< 18620#$Ultimate##0 ~n := #in~n; 18601#L25 assume !(~n <= 0); 18577#L26 call #t~ret0 := fact(~n - 1);< 18583#$Ultimate##0 ~n := #in~n; 18601#L25 assume !(~n <= 0); 18577#L26 call #t~ret0 := fact(~n - 1);< 18583#$Ultimate##0 ~n := #in~n; 18601#L25 assume !(~n <= 0); 18577#L26 call #t~ret0 := fact(~n - 1);< 18583#$Ultimate##0 ~n := #in~n; 18604#L25 assume ~n <= 0;#res := 1; 18656#factFINAL assume true; 18639#factEXIT >#66#return; 18633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 18626#factFINAL assume true; 18625#factEXIT >#66#return; 18622#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 18619#factFINAL assume true; 18602#factEXIT >#66#return; 18579#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 18582#factFINAL assume true; 18572#factEXIT >#66#return; 18570#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 18564#factFINAL assume true; 18510#factEXIT >#74#return; 18412#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 18413#$Ultimate##0 ~n := #in~n; 18536#L25 assume ~n <= 0;#res := 1; 18532#factFINAL assume true; 18526#factEXIT >#76#return; 18512#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 18306#$Ultimate##0 ~n := #in~n; 18623#L25 assume !(~n <= 0); 18576#L26 call #t~ret0 := fact(~n - 1);< 18620#$Ultimate##0 ~n := #in~n; 18601#L25 assume !(~n <= 0); 18577#L26 call #t~ret0 := fact(~n - 1);< 18583#$Ultimate##0 ~n := #in~n; 18604#L25 assume ~n <= 0;#res := 1; 18656#factFINAL assume true; 18639#factEXIT >#66#return; 18633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 18626#factFINAL assume true; 18625#factEXIT >#66#return; 18603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 18710#factFINAL assume true; 18689#factEXIT >#78#return; 18513#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#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; 18681#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 18515#L42-3 [2023-02-18 08:55:53,908 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:53,908 INFO L85 PathProgramCache]: Analyzing trace with hash 1970898717, now seen corresponding path program 1 times [2023-02-18 08:55:53,908 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:53,908 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1445327518] [2023-02-18 08:55:53,908 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:53,908 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:53,912 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:53,912 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [518633546] [2023-02-18 08:55:53,912 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:53,912 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:53,912 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:53,913 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-18 08:55:53,915 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-18 08:55:53,942 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:53,943 INFO L263 TraceCheckSpWp]: Trace formula consists of 78 conjuncts, 9 conjunts are in the unsatisfiable core [2023-02-18 08:55:53,944 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:53,954 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-18 08:55:53,955 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:55:53,973 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-18 08:55:53,973 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:53,973 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1445327518] [2023-02-18 08:55:53,973 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:53,973 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [518633546] [2023-02-18 08:55:53,973 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [518633546] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:55:53,974 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:55:53,974 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 10 [2023-02-18 08:55:53,974 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [493705637] [2023-02-18 08:55:53,974 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:55:53,974 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:55:53,974 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:53,974 INFO L85 PathProgramCache]: Analyzing trace with hash 1208707694, now seen corresponding path program 2 times [2023-02-18 08:55:53,974 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:53,974 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1577037201] [2023-02-18 08:55:53,974 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:53,974 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:53,978 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:53,978 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [511426953] [2023-02-18 08:55:53,978 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:55:53,978 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:53,978 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:53,980 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-18 08:55:53,981 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-18 08:55:54,014 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:55:54,015 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:55:54,015 INFO L263 TraceCheckSpWp]: Trace formula consists of 125 conjuncts, 19 conjunts are in the unsatisfiable core [2023-02-18 08:55:54,016 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:54,050 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-18 08:55:54,051 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:55:54,193 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-18 08:55:54,193 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:54,193 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1577037201] [2023-02-18 08:55:54,193 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:54,193 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [511426953] [2023-02-18 08:55:54,193 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [511426953] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:55:54,193 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:55:54,194 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 17] total 22 [2023-02-18 08:55:54,194 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1393354202] [2023-02-18 08:55:54,194 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:55:54,194 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:55:54,195 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:55:54,195 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2023-02-18 08:55:54,195 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=22, Invalid=68, Unknown=0, NotChecked=0, Total=90 [2023-02-18 08:55:54,195 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-18 08:55:54,318 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:55:54,318 INFO L93 Difference]: Finished difference Result 888 states and 1291 transitions. [2023-02-18 08:55:54,319 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 888 states and 1291 transitions. [2023-02-18 08:55:54,323 INFO L131 ngComponentsAnalysis]: Automaton has 9 accepting balls. 137 [2023-02-18 08:55:54,330 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 888 states to 848 states and 1237 transitions. [2023-02-18 08:55:54,330 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 320 [2023-02-18 08:55:54,331 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 320 [2023-02-18 08:55:54,331 INFO L73 IsDeterministic]: Start isDeterministic. Operand 848 states and 1237 transitions. [2023-02-18 08:55:54,332 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:54,332 INFO L218 hiAutomatonCegarLoop]: Abstraction has 848 states and 1237 transitions. [2023-02-18 08:55:54,332 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 848 states and 1237 transitions. [2023-02-18 08:55:54,343 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 848 to 821. [2023-02-18 08:55:54,344 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-18 08:55:54,347 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 821 states to 821 states and 1196 transitions. [2023-02-18 08:55:54,347 INFO L240 hiAutomatonCegarLoop]: Abstraction has 821 states and 1196 transitions. [2023-02-18 08:55:54,347 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2023-02-18 08:55:54,347 INFO L428 stractBuchiCegarLoop]: Abstraction has 821 states and 1196 transitions. [2023-02-18 08:55:54,347 INFO L335 stractBuchiCegarLoop]: ======== Iteration 14 ============ [2023-02-18 08:55:54,348 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 821 states and 1196 transitions. [2023-02-18 08:55:54,351 INFO L131 ngComponentsAnalysis]: Automaton has 9 accepting balls. 130 [2023-02-18 08:55:54,352 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:54,352 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:54,352 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-18 08:55:54,352 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-18 08:55:54,353 INFO L748 eck$LassoCheckResult]: Stem: 20619#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 20561#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; 20562#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 20586#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; 20574#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 20576#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 21176#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 20549#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 20553#$Ultimate##0 ~n := #in~n; 20606#L25 assume ~n <= 0;#res := 1; 20556#factFINAL assume true; 20548#factEXIT >#68#return; 20550#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 20608#$Ultimate##0 ~n := #in~n; 20964#L25 assume ~n <= 0;#res := 1; 20961#factFINAL assume true; 20960#factEXIT >#70#return; 20953#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 20959#$Ultimate##0 ~n := #in~n; 20955#L25 assume ~n <= 0;#res := 1; 20952#factFINAL assume true; 20954#factEXIT >#72#return; 20969#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 20977#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 20976#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 20974#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 20973#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 20971#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 20972#$Ultimate##0 ~n := #in~n; 20980#L25 assume ~n <= 0;#res := 1; 20978#factFINAL assume true; 20970#factEXIT >#74#return; 20923#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 20925#$Ultimate##0 ~n := #in~n; 20939#L25 assume ~n <= 0;#res := 1; 20933#factFINAL assume true; 20935#factEXIT >#76#return; 20569#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 21052#$Ultimate##0 ~n := #in~n; 21051#L25 assume !(~n <= 0); 20567#L26 call #t~ret0 := fact(~n - 1);< 20570#$Ultimate##0 ~n := #in~n; 20908#L25 assume ~n <= 0;#res := 1; 21053#factFINAL assume true; 21049#factEXIT >#66#return; 20899#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 21044#factFINAL assume true; 21040#factEXIT >#78#return; 20890#L30-8 [2023-02-18 08:55:54,354 INFO L750 eck$LassoCheckResult]: Loop: 20890#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 21036#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 21031#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 21030#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 20926#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, 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; 20914#L25 assume !(~n <= 0); 20898#L26 call #t~ret0 := fact(~n - 1);< 20911#$Ultimate##0 ~n := #in~n; 20905#L25 assume !(~n <= 0); 20895#L26 call #t~ret0 := fact(~n - 1);< 20903#$Ultimate##0 ~n := #in~n; 20905#L25 assume !(~n <= 0); 20895#L26 call #t~ret0 := fact(~n - 1);< 20903#$Ultimate##0 ~n := #in~n; 20905#L25 assume !(~n <= 0); 20895#L26 call #t~ret0 := fact(~n - 1);< 20903#$Ultimate##0 ~n := #in~n; 20909#L25 assume ~n <= 0;#res := 1; 20930#factFINAL assume true; 20928#factEXIT >#66#return; 20918#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 20917#factFINAL assume true; 20915#factEXIT >#66#return; 20912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 20910#factFINAL assume true; 20906#factEXIT >#66#return; 20900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 20902#factFINAL assume true; 20894#factEXIT >#66#return; 20892#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 20891#factFINAL assume true; 20887#factEXIT >#74#return; 20613#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 20614#$Ultimate##0 ~n := #in~n; 20904#L25 assume ~n <= 0;#res := 1; 20901#factFINAL assume true; 20893#factEXIT >#76#return; 20889#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 20541#$Ultimate##0 ~n := #in~n; 20914#L25 assume !(~n <= 0); 20898#L26 call #t~ret0 := fact(~n - 1);< 20911#$Ultimate##0 ~n := #in~n; 20905#L25 assume !(~n <= 0); 20895#L26 call #t~ret0 := fact(~n - 1);< 20903#$Ultimate##0 ~n := #in~n; 20905#L25 assume !(~n <= 0); 20895#L26 call #t~ret0 := fact(~n - 1);< 20903#$Ultimate##0 ~n := #in~n; 20905#L25 assume !(~n <= 0); 20895#L26 call #t~ret0 := fact(~n - 1);< 20903#$Ultimate##0 ~n := #in~n; 20909#L25 assume ~n <= 0;#res := 1; 20930#factFINAL assume true; 20928#factEXIT >#66#return; 20918#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 20917#factFINAL assume true; 20915#factEXIT >#66#return; 20912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 20910#factFINAL assume true; 20906#factEXIT >#66#return; 20900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 20902#factFINAL assume true; 20894#factEXIT >#66#return; 20892#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 20891#factFINAL assume true; 20887#factEXIT >#78#return; 20890#L30-8 [2023-02-18 08:55:54,354 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:54,354 INFO L85 PathProgramCache]: Analyzing trace with hash 1440088363, now seen corresponding path program 1 times [2023-02-18 08:55:54,354 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:54,354 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1067304619] [2023-02-18 08:55:54,354 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:54,354 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:54,362 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:54,362 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [9335629] [2023-02-18 08:55:54,362 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:54,363 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:54,363 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:54,365 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-18 08:55:54,366 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-18 08:55:54,404 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:54,405 INFO L263 TraceCheckSpWp]: Trace formula consists of 124 conjuncts, 7 conjunts are in the unsatisfiable core [2023-02-18 08:55:54,406 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:54,416 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-18 08:55:54,416 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2023-02-18 08:55:54,417 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:54,417 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1067304619] [2023-02-18 08:55:54,417 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:54,417 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [9335629] [2023-02-18 08:55:54,417 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [9335629] provided 1 perfect and 0 imperfect interpolant sequences [2023-02-18 08:55:54,417 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2023-02-18 08:55:54,417 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2023-02-18 08:55:54,418 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [652946765] [2023-02-18 08:55:54,418 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2023-02-18 08:55:54,418 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:55:54,418 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:54,418 INFO L85 PathProgramCache]: Analyzing trace with hash 857296756, now seen corresponding path program 3 times [2023-02-18 08:55:54,418 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:54,418 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1702317448] [2023-02-18 08:55:54,419 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:54,419 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:54,422 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:54,422 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1259619106] [2023-02-18 08:55:54,422 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:55:54,422 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:54,422 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:54,425 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-18 08:55:54,426 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-18 08:55:54,470 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 14 check-sat command(s) [2023-02-18 08:55:54,471 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:55:54,471 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:55:54,487 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:54,497 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:55:54,530 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:55:54,531 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:55:54,531 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:55:54,531 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:55:54,531 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-18 08:55:54,531 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:54,531 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:55:54,531 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:55:54,531 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration14_Loop [2023-02-18 08:55:54,531 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:55:54,532 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:55:54,535 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-18 08:55:54,535 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-18 08:55:54,539 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-18 08:55:54,540 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-18 08:55:54,540 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-18 08:55:54,546 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:55:54,546 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-18 08:55:54,546 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:54,547 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:54,549 INFO L229 MonitoredProcess]: Starting monitored process 72 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-18 08:55:54,550 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (72)] Waiting until timeout for monitored process [2023-02-18 08:55:54,552 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:54,552 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:54,573 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:54,574 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-18 08:55:54,583 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (72)] Forceful destruction successful, exit code 0 [2023-02-18 08:55:54,583 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:54,583 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:54,585 INFO L229 MonitoredProcess]: Starting monitored process 73 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-18 08:55:54,587 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (73)] Waiting until timeout for monitored process [2023-02-18 08:55:54,589 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:54,589 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:54,614 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (73)] Forceful destruction successful, exit code 0 [2023-02-18 08:55:54,614 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:54,614 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:54,615 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-18 08:55:54,617 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-18 08:55:54,619 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-18 08:55:54,619 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:54,644 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-18 08:55:54,647 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-18 08:55:54,648 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:55:54,648 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:55:54,648 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:55:54,648 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:55:54,648 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-18 08:55:54,648 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:54,648 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:55:54,648 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:55:54,648 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration14_Loop [2023-02-18 08:55:54,648 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:55:54,648 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:55:54,649 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-18 08:55:54,652 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-18 08:55:54,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-18 08:55:54,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-18 08:55:54,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-18 08:55:54,659 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:55:54,660 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-18 08:55:54,660 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:54,660 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:54,661 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-18 08:55:54,663 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-18 08:55:54,665 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-18 08:55:54,671 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:54,671 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:54,671 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:54,671 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:54,671 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:54,674 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:54,674 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:54,689 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-18 08:55:54,692 INFO L443 ModelExtractionUtils]: Simplification made 3 calls to the SMT solver. [2023-02-18 08:55:54,692 INFO L444 ModelExtractionUtils]: 8 out of 11 variables were initially zero. Simplification set additionally 0 variables to zero. [2023-02-18 08:55:54,693 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:54,693 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:54,695 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-18 08:55:54,696 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-18 08:55:54,697 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-18 08:55:54,697 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-18 08:55:54,697 INFO L513 LassoAnalysis]: Proved termination. [2023-02-18 08:55:54,698 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-18 08:55:54,701 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-18 08:55:54,701 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-18 08:55:54,709 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:54,746 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:54,748 INFO L263 TraceCheckSpWp]: Trace formula consists of 320 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-18 08:55:54,749 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:54,811 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:54,813 INFO L263 TraceCheckSpWp]: Trace formula consists of 457 conjuncts, 26 conjunts are in the unsatisfiable core [2023-02-18 08:55:54,815 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:54,878 INFO L134 CoverageAnalysis]: Checked inductivity of 276 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 276 trivial. 0 not checked. [2023-02-18 08:55:54,879 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-18 08:55:54,879 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 821 states and 1196 transitions. cyclomatic complexity: 397 Second operand has 7 states, 7 states have (on average 3.7142857142857144) internal successors, (26), 6 states have internal predecessors, (26), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (11), 5 states have call predecessors, (11), 4 states have call successors, (11) [2023-02-18 08:55:54,957 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 821 states and 1196 transitions. cyclomatic complexity: 397. Second operand has 7 states, 7 states have (on average 3.7142857142857144) internal successors, (26), 6 states have internal predecessors, (26), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (11), 5 states have call predecessors, (11), 4 states have call successors, (11) Result 1264 states and 1739 transitions. Complement of second has 13 states. [2023-02-18 08:55:54,958 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-18 08:55:54,958 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 3.7142857142857144) internal successors, (26), 6 states have internal predecessors, (26), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (11), 5 states have call predecessors, (11), 4 states have call successors, (11) [2023-02-18 08:55:54,958 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 60 transitions. [2023-02-18 08:55:54,959 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 60 transitions. Stem has 48 letters. Loop has 68 letters. [2023-02-18 08:55:54,960 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:54,960 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 60 transitions. Stem has 116 letters. Loop has 68 letters. [2023-02-18 08:55:54,961 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:54,961 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 60 transitions. Stem has 48 letters. Loop has 136 letters. [2023-02-18 08:55:54,962 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:54,963 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1264 states and 1739 transitions. [2023-02-18 08:55:54,974 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 122 [2023-02-18 08:55:54,984 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1264 states to 793 states and 1156 transitions. [2023-02-18 08:55:54,984 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 205 [2023-02-18 08:55:54,984 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 205 [2023-02-18 08:55:54,984 INFO L73 IsDeterministic]: Start isDeterministic. Operand 793 states and 1156 transitions. [2023-02-18 08:55:54,985 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:54,985 INFO L218 hiAutomatonCegarLoop]: Abstraction has 793 states and 1156 transitions. [2023-02-18 08:55:54,985 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 793 states and 1156 transitions. [2023-02-18 08:55:54,998 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 793 to 784. [2023-02-18 08:55:54,999 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 784 states, 502 states have (on average 1.1254980079681276) internal successors, (565), 504 states have internal predecessors, (565), 188 states have call successors, (193), 71 states have call predecessors, (193), 94 states have return successors, (388), 208 states have call predecessors, (388), 188 states have call successors, (388) [2023-02-18 08:55:55,001 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 784 states to 784 states and 1146 transitions. [2023-02-18 08:55:55,002 INFO L240 hiAutomatonCegarLoop]: Abstraction has 784 states and 1146 transitions. [2023-02-18 08:55:55,002 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:55:55,002 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2023-02-18 08:55:55,002 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=12, Invalid=30, Unknown=0, NotChecked=0, Total=42 [2023-02-18 08:55:55,002 INFO L87 Difference]: Start difference. First operand 784 states and 1146 transitions. 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-18 08:55:55,085 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:55:55,086 INFO L93 Difference]: Finished difference Result 711 states and 990 transitions. [2023-02-18 08:55:55,086 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 711 states and 990 transitions. [2023-02-18 08:55:55,089 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 104 [2023-02-18 08:55:55,093 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 711 states to 692 states and 971 transitions. [2023-02-18 08:55:55,094 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 191 [2023-02-18 08:55:55,094 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 191 [2023-02-18 08:55:55,094 INFO L73 IsDeterministic]: Start isDeterministic. Operand 692 states and 971 transitions. [2023-02-18 08:55:55,094 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:55,094 INFO L218 hiAutomatonCegarLoop]: Abstraction has 692 states and 971 transitions. [2023-02-18 08:55:55,095 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 692 states and 971 transitions. [2023-02-18 08:55:55,103 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 692 to 672. [2023-02-18 08:55:55,104 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 672 states, 436 states have (on average 1.1169724770642202) internal successors, (487), 441 states have internal predecessors, (487), 153 states have call successors, (155), 60 states have call predecessors, (155), 83 states have return successors, (301), 170 states have call predecessors, (301), 153 states have call successors, (301) [2023-02-18 08:55:55,105 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 672 states to 672 states and 943 transitions. [2023-02-18 08:55:55,106 INFO L240 hiAutomatonCegarLoop]: Abstraction has 672 states and 943 transitions. [2023-02-18 08:55:55,106 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2023-02-18 08:55:55,106 INFO L428 stractBuchiCegarLoop]: Abstraction has 672 states and 943 transitions. [2023-02-18 08:55:55,106 INFO L335 stractBuchiCegarLoop]: ======== Iteration 15 ============ [2023-02-18 08:55:55,107 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 672 states and 943 transitions. [2023-02-18 08:55:55,109 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 99 [2023-02-18 08:55:55,109 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:55,109 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:55,110 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [11, 11, 7, 4, 4, 4, 4, 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-18 08:55:55,110 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [17, 17, 9, 8, 8, 8, 8, 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-18 08:55:55,110 INFO L748 eck$LassoCheckResult]: Stem: 24746#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 24693#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; 24694#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 24717#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; 24706#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 24707#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 25003#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 24687#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 24688#$Ultimate##0 ~n := #in~n; 25051#L25 assume ~n <= 0;#res := 1; 25050#factFINAL assume true; 25048#factEXIT >#68#return; 24737#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 24738#$Ultimate##0 ~n := #in~n; 25060#L25 assume ~n <= 0;#res := 1; 25059#factFINAL assume true; 25057#factEXIT >#70#return; 24659#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 24660#$Ultimate##0 ~n := #in~n; 25071#L25 assume ~n <= 0;#res := 1; 25070#factFINAL assume true; 25068#factEXIT >#72#return; 25069#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 25109#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 25106#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 25104#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 25103#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 24740#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 24739#$Ultimate##0 ~n := #in~n; 24741#L25 assume !(~n <= 0); 25118#L26 call #t~ret0 := fact(~n - 1);< 25121#$Ultimate##0 ~n := #in~n; 25151#L25 assume ~n <= 0;#res := 1; 25176#factFINAL assume true; 25117#factEXIT >#66#return; 25116#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 25098#factFINAL assume true; 25094#factEXIT >#74#return; 25090#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 25142#$Ultimate##0 ~n := #in~n; 25144#L25 assume ~n <= 0;#res := 1; 25089#factFINAL assume true; 25091#factEXIT >#76#return; 24747#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 24748#$Ultimate##0 ~n := #in~n; 25169#L25 assume !(~n <= 0); 25111#L26 call #t~ret0 := fact(~n - 1);< 25114#$Ultimate##0 ~n := #in~n; 25153#L25 assume !(~n <= 0); 25137#L26 call #t~ret0 := fact(~n - 1);< 25150#$Ultimate##0 ~n := #in~n; 25165#L25 assume ~n <= 0;#res := 1; 25163#factFINAL assume true; 25161#factEXIT >#66#return; 25159#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 25157#factFINAL assume true; 25155#factEXIT >#66#return; 25113#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 25183#factFINAL assume true; 25075#factEXIT >#78#return; 25076#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 25053#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 25052#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 24907#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 24908#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 24837#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 24838#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 24832#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 24816#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 24825#$Ultimate##0 ~n := #in~n; 24831#L25 assume !(~n <= 0); 24783#L26 call #t~ret0 := fact(~n - 1);< 24704#$Ultimate##0 ~n := #in~n; 24794#L25 assume ~n <= 0;#res := 1; 24788#factFINAL assume true; 24781#factEXIT >#66#return; 24786#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 24824#factFINAL assume true; 24813#factEXIT >#68#return; 24814#L30-1 [2023-02-18 08:55:55,110 INFO L750 eck$LassoCheckResult]: Loop: 24814#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 24825#$Ultimate##0 ~n := #in~n; 24831#L25 assume ~n <= 0;#res := 1; 24829#factFINAL assume true; 24827#factEXIT >#70#return; 24815#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 24818#$Ultimate##0 ~n := #in~n; 24826#L25 assume !(~n <= 0); 24783#L26 call #t~ret0 := fact(~n - 1);< 24704#$Ultimate##0 ~n := #in~n; 24794#L25 assume ~n <= 0;#res := 1; 24788#factFINAL assume true; 24781#factEXIT >#66#return; 24786#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 24824#factFINAL assume true; 24813#factEXIT >#72#return; 24772#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 24806#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 24804#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 24802#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 24780#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 24762#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 24777#$Ultimate##0 ~n := #in~n; 24812#L25 assume !(~n <= 0); 24784#L26 call #t~ret0 := fact(~n - 1);< 24704#$Ultimate##0 ~n := #in~n; 24794#L25 assume ~n <= 0;#res := 1; 24788#factFINAL assume true; 24781#factEXIT >#66#return; 24779#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 24776#factFINAL assume true; 24754#factEXIT >#68#return; 24768#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 24777#$Ultimate##0 ~n := #in~n; 24812#L25 assume !(~n <= 0); 24784#L26 call #t~ret0 := fact(~n - 1);< 24704#$Ultimate##0 ~n := #in~n; 24794#L25 assume ~n <= 0;#res := 1; 24788#factFINAL assume true; 24781#factEXIT >#66#return; 24779#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 24776#factFINAL assume true; 24754#factEXIT >#70#return; 24771#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 24809#$Ultimate##0 ~n := #in~n; 24811#L25 assume ~n <= 0;#res := 1; 24810#factFINAL assume true; 24807#factEXIT >#72#return; 24769#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 24805#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 24803#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 24801#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 24775#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 24766#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 24773#$Ultimate##0 ~n := #in~n; 24789#L25 assume !(~n <= 0); 24784#L26 call #t~ret0 := fact(~n - 1);< 24704#$Ultimate##0 ~n := #in~n; 24797#L25 assume !(~n <= 0); 24791#L26 call #t~ret0 := fact(~n - 1);< 24796#$Ultimate##0 ~n := #in~n; 24799#L25 assume ~n <= 0;#res := 1; 24800#factFINAL assume true; 24798#factEXIT >#66#return; 24792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 24795#factFINAL assume true; 24790#factEXIT >#66#return; 24787#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 24778#factFINAL assume true; 24774#factEXIT >#74#return; 24758#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 24773#$Ultimate##0 ~n := #in~n; 24789#L25 assume !(~n <= 0); 24784#L26 call #t~ret0 := fact(~n - 1);< 24704#$Ultimate##0 ~n := #in~n; 24794#L25 assume ~n <= 0;#res := 1; 24788#factFINAL assume true; 24781#factEXIT >#66#return; 24779#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 24776#factFINAL assume true; 24754#factEXIT >#76#return; 24767#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 24773#$Ultimate##0 ~n := #in~n; 24789#L25 assume !(~n <= 0); 24784#L26 call #t~ret0 := fact(~n - 1);< 24704#$Ultimate##0 ~n := #in~n; 24794#L25 assume ~n <= 0;#res := 1; 24788#factFINAL assume true; 24781#factEXIT >#66#return; 24779#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 24776#factFINAL assume true; 24754#factEXIT >#78#return; 24753#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 24752#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 24751#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 24749#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 24710#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 24711#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 24835#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 24836#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 24817#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 24825#$Ultimate##0 ~n := #in~n; 24831#L25 assume !(~n <= 0); 24783#L26 call #t~ret0 := fact(~n - 1);< 24704#$Ultimate##0 ~n := #in~n; 24794#L25 assume ~n <= 0;#res := 1; 24788#factFINAL assume true; 24781#factEXIT >#66#return; 24786#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 24824#factFINAL assume true; 24813#factEXIT >#68#return; 24814#L30-1 [2023-02-18 08:55:55,111 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:55,111 INFO L85 PathProgramCache]: Analyzing trace with hash -1589696241, now seen corresponding path program 1 times [2023-02-18 08:55:55,111 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:55,111 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [83718109] [2023-02-18 08:55:55,111 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:55,111 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:55,115 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:55,116 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2123252290] [2023-02-18 08:55:55,116 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:55,116 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:55,116 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:55,117 INFO L229 MonitoredProcess]: Starting monitored process 77 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:55:55,119 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (77)] Waiting until timeout for monitored process [2023-02-18 08:55:55,166 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:55,167 INFO L263 TraceCheckSpWp]: Trace formula consists of 193 conjuncts, 12 conjunts are in the unsatisfiable core [2023-02-18 08:55:55,168 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:55,186 INFO L134 CoverageAnalysis]: Checked inductivity of 244 backedges. 134 proven. 5 refuted. 0 times theorem prover too weak. 105 trivial. 0 not checked. [2023-02-18 08:55:55,186 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:55:55,241 INFO L134 CoverageAnalysis]: Checked inductivity of 244 backedges. 56 proven. 22 refuted. 0 times theorem prover too weak. 166 trivial. 0 not checked. [2023-02-18 08:55:55,241 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:55,241 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [83718109] [2023-02-18 08:55:55,241 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:55,241 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2123252290] [2023-02-18 08:55:55,241 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2123252290] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:55:55,242 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:55:55,242 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 10] total 14 [2023-02-18 08:55:55,242 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [627317789] [2023-02-18 08:55:55,242 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:55:55,242 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:55:55,242 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:55,243 INFO L85 PathProgramCache]: Analyzing trace with hash -195047765, now seen corresponding path program 4 times [2023-02-18 08:55:55,243 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:55,243 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1880763090] [2023-02-18 08:55:55,243 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:55,243 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:55,263 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (76)] Forceful destruction successful, exit code 0 [2023-02-18 08:55:55,265 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:55,265 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [943777837] [2023-02-18 08:55:55,265 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:55:55,265 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:55,265 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:55,272 INFO L229 MonitoredProcess]: Starting monitored process 78 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:55:55,274 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (78)] Waiting until timeout for monitored process [2023-02-18 08:55:55,365 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:55:55,365 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:55:55,366 INFO L263 TraceCheckSpWp]: Trace formula consists of 257 conjuncts, 13 conjunts are in the unsatisfiable core [2023-02-18 08:55:55,368 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:55,397 INFO L134 CoverageAnalysis]: Checked inductivity of 617 backedges. 123 proven. 52 refuted. 0 times theorem prover too weak. 442 trivial. 0 not checked. [2023-02-18 08:55:55,397 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:55:55,463 INFO L134 CoverageAnalysis]: Checked inductivity of 617 backedges. 123 proven. 53 refuted. 0 times theorem prover too weak. 441 trivial. 0 not checked. [2023-02-18 08:55:55,463 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:55,464 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1880763090] [2023-02-18 08:55:55,464 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:55,464 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [943777837] [2023-02-18 08:55:55,464 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [943777837] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:55:55,464 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:55:55,464 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 11] total 14 [2023-02-18 08:55:55,464 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2032767840] [2023-02-18 08:55:55,464 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:55:55,465 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:55:55,465 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:55:55,465 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2023-02-18 08:55:55,465 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=143, Unknown=0, NotChecked=0, Total=182 [2023-02-18 08:55:55,465 INFO L87 Difference]: Start difference. First operand 672 states and 943 transitions. cyclomatic complexity: 289 Second operand has 14 states, 12 states have (on average 4.083333333333333) internal successors, (49), 14 states have internal predecessors, (49), 9 states have call successors, (19), 2 states have call predecessors, (19), 4 states have return successors, (19), 8 states have call predecessors, (19), 9 states have call successors, (19) [2023-02-18 08:55:55,709 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:55:55,710 INFO L93 Difference]: Finished difference Result 844 states and 1212 transitions. [2023-02-18 08:55:55,710 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 844 states and 1212 transitions. [2023-02-18 08:55:55,714 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 140 [2023-02-18 08:55:55,719 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 844 states to 790 states and 1146 transitions. [2023-02-18 08:55:55,719 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 255 [2023-02-18 08:55:55,719 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 255 [2023-02-18 08:55:55,719 INFO L73 IsDeterministic]: Start isDeterministic. Operand 790 states and 1146 transitions. [2023-02-18 08:55:55,719 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:55,720 INFO L218 hiAutomatonCegarLoop]: Abstraction has 790 states and 1146 transitions. [2023-02-18 08:55:55,720 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 790 states and 1146 transitions. [2023-02-18 08:55:55,729 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 790 to 623. [2023-02-18 08:55:55,730 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 623 states, 393 states have (on average 1.1221374045801527) internal successors, (441), 402 states have internal predecessors, (441), 160 states have call successors, (162), 53 states have call predecessors, (162), 70 states have return successors, (291), 167 states have call predecessors, (291), 160 states have call successors, (291) [2023-02-18 08:55:55,732 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 623 states to 623 states and 894 transitions. [2023-02-18 08:55:55,732 INFO L240 hiAutomatonCegarLoop]: Abstraction has 623 states and 894 transitions. [2023-02-18 08:55:55,732 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2023-02-18 08:55:55,733 INFO L428 stractBuchiCegarLoop]: Abstraction has 623 states and 894 transitions. [2023-02-18 08:55:55,733 INFO L335 stractBuchiCegarLoop]: ======== Iteration 16 ============ [2023-02-18 08:55:55,733 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 623 states and 894 transitions. [2023-02-18 08:55:55,735 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 109 [2023-02-18 08:55:55,735 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:55,735 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:55,736 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-18 08:55:55,736 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [17, 17, 9, 8, 8, 8, 8, 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-18 08:55:55,737 INFO L748 eck$LassoCheckResult]: Stem: 27453#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 27377#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; 27378#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 27396#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; 27386#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 27387#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 27786#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 27375#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 27376#$Ultimate##0 ~n := #in~n; 27728#L25 assume ~n <= 0;#res := 1; 27727#factFINAL assume true; 27725#factEXIT >#68#return; 27443#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 27444#$Ultimate##0 ~n := #in~n; 27760#L25 assume ~n <= 0;#res := 1; 27759#factFINAL assume true; 27758#factEXIT >#70#return; 27368#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 27369#$Ultimate##0 ~n := #in~n; 27962#L25 assume ~n <= 0;#res := 1; 27960#factFINAL assume true; 27958#factEXIT >#72#return; 27940#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 27939#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 27452#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 27441#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 27402#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 27403#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 27796#$Ultimate##0 ~n := #in~n; 27862#L25 assume !(~n <= 0); 27856#L26 call #t~ret0 := fact(~n - 1);< 27859#$Ultimate##0 ~n := #in~n; 27863#L25 assume ~n <= 0;#res := 1; 27860#factFINAL assume true; 27855#factEXIT >#66#return; 27854#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 27853#factFINAL assume true; 27791#factEXIT >#74#return; 27788#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 27790#$Ultimate##0 ~n := #in~n; 27841#L25 assume ~n <= 0;#res := 1; 27819#factFINAL assume true; 27787#factEXIT >#76#return; 27783#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 27785#$Ultimate##0 ~n := #in~n; 27956#L25 assume !(~n <= 0); 27951#L26 call #t~ret0 := fact(~n - 1);< 27952#$Ultimate##0 ~n := #in~n; 27954#L25 assume ~n <= 0;#res := 1; 27953#factFINAL assume true; 27950#factEXIT >#66#return; 27948#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 27947#factFINAL assume true; 27782#factEXIT >#78#return; 27784#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 27774#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 27773#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 27558#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 27555#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 27553#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 27547#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 27544#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 27534#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 27540#$Ultimate##0 ~n := #in~n; 27542#L25 assume !(~n <= 0); 27491#L26 call #t~ret0 := fact(~n - 1);< 27384#$Ultimate##0 ~n := #in~n; 27509#L25 assume ~n <= 0;#res := 1; 27522#factFINAL assume true; 27490#factEXIT >#66#return; 27494#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 27543#factFINAL assume true; 27533#factEXIT >#68#return; 27537#L30-1 [2023-02-18 08:55:55,737 INFO L750 eck$LassoCheckResult]: Loop: 27537#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 27540#$Ultimate##0 ~n := #in~n; 27542#L25 assume ~n <= 0;#res := 1; 27541#factFINAL assume true; 27539#factEXIT >#70#return; 27535#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 27538#$Ultimate##0 ~n := #in~n; 27545#L25 assume !(~n <= 0); 27491#L26 call #t~ret0 := fact(~n - 1);< 27384#$Ultimate##0 ~n := #in~n; 27509#L25 assume ~n <= 0;#res := 1; 27522#factFINAL assume true; 27490#factEXIT >#66#return; 27494#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 27543#factFINAL assume true; 27533#factEXIT >#72#return; 27481#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 27530#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 27504#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 27503#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 27502#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 27464#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 27486#$Ultimate##0 ~n := #in~n; 27510#L25 assume !(~n <= 0); 27492#L26 call #t~ret0 := fact(~n - 1);< 27384#$Ultimate##0 ~n := #in~n; 27509#L25 assume ~n <= 0;#res := 1; 27522#factFINAL assume true; 27490#factEXIT >#66#return; 27487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 27488#factFINAL assume true; 27461#factEXIT >#68#return; 27462#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 27486#$Ultimate##0 ~n := #in~n; 27510#L25 assume !(~n <= 0); 27492#L26 call #t~ret0 := fact(~n - 1);< 27384#$Ultimate##0 ~n := #in~n; 27509#L25 assume ~n <= 0;#res := 1; 27522#factFINAL assume true; 27490#factEXIT >#66#return; 27487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 27488#factFINAL assume true; 27461#factEXIT >#70#return; 27479#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 27518#$Ultimate##0 ~n := #in~n; 27519#L25 assume ~n <= 0;#res := 1; 27517#factFINAL assume true; 27516#factEXIT >#72#return; 27482#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 27529#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 27526#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 27524#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 27489#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 27474#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 27483#$Ultimate##0 ~n := #in~n; 27496#L25 assume !(~n <= 0); 27492#L26 call #t~ret0 := fact(~n - 1);< 27384#$Ultimate##0 ~n := #in~n; 27507#L25 assume !(~n <= 0); 27499#L26 call #t~ret0 := fact(~n - 1);< 27506#$Ultimate##0 ~n := #in~n; 27508#L25 assume ~n <= 0;#res := 1; 27521#factFINAL assume true; 27520#factEXIT >#66#return; 27501#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 27505#factFINAL assume true; 27498#factEXIT >#66#return; 27497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 27484#factFINAL assume true; 27485#factEXIT >#74#return; 27469#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 27483#$Ultimate##0 ~n := #in~n; 27496#L25 assume !(~n <= 0); 27492#L26 call #t~ret0 := fact(~n - 1);< 27384#$Ultimate##0 ~n := #in~n; 27509#L25 assume ~n <= 0;#res := 1; 27522#factFINAL assume true; 27490#factEXIT >#66#return; 27487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 27488#factFINAL assume true; 27461#factEXIT >#76#return; 27470#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 27483#$Ultimate##0 ~n := #in~n; 27496#L25 assume !(~n <= 0); 27492#L26 call #t~ret0 := fact(~n - 1);< 27384#$Ultimate##0 ~n := #in~n; 27509#L25 assume ~n <= 0;#res := 1; 27522#factFINAL assume true; 27490#factEXIT >#66#return; 27487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 27488#factFINAL assume true; 27461#factEXIT >#78#return; 27460#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 27459#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 27458#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 27456#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 27393#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 27394#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 27552#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 27572#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 27536#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 27540#$Ultimate##0 ~n := #in~n; 27542#L25 assume !(~n <= 0); 27491#L26 call #t~ret0 := fact(~n - 1);< 27384#$Ultimate##0 ~n := #in~n; 27509#L25 assume ~n <= 0;#res := 1; 27522#factFINAL assume true; 27490#factEXIT >#66#return; 27494#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 27543#factFINAL assume true; 27533#factEXIT >#68#return; 27537#L30-1 [2023-02-18 08:55:55,737 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:55,737 INFO L85 PathProgramCache]: Analyzing trace with hash -1617221305, now seen corresponding path program 2 times [2023-02-18 08:55:55,737 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:55,738 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1399990541] [2023-02-18 08:55:55,738 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:55,738 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:55,742 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:55,742 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [316272435] [2023-02-18 08:55:55,742 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:55:55,742 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:55,742 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:55,745 INFO L229 MonitoredProcess]: Starting monitored process 79 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:55:55,746 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (79)] Waiting until timeout for monitored process [2023-02-18 08:55:55,798 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:55:55,799 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:55:55,799 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:55:55,817 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:55,829 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:55:55,829 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:55,829 INFO L85 PathProgramCache]: Analyzing trace with hash -195047765, now seen corresponding path program 5 times [2023-02-18 08:55:55,829 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:55,829 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [701448103] [2023-02-18 08:55:55,829 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:55,830 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:55,835 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:55,835 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1866501857] [2023-02-18 08:55:55,835 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:55:55,835 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:55,835 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:55,838 INFO L229 MonitoredProcess]: Starting monitored process 80 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:55:55,839 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (80)] Waiting until timeout for monitored process [2023-02-18 08:55:55,906 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 12 check-sat command(s) [2023-02-18 08:55:55,906 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:55:55,907 INFO L263 TraceCheckSpWp]: Trace formula consists of 257 conjuncts, 13 conjunts are in the unsatisfiable core [2023-02-18 08:55:55,908 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:55,938 INFO L134 CoverageAnalysis]: Checked inductivity of 617 backedges. 151 proven. 19 refuted. 0 times theorem prover too weak. 447 trivial. 0 not checked. [2023-02-18 08:55:55,938 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:55:55,998 INFO L134 CoverageAnalysis]: Checked inductivity of 617 backedges. 151 proven. 20 refuted. 0 times theorem prover too weak. 446 trivial. 0 not checked. [2023-02-18 08:55:55,999 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:55,999 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [701448103] [2023-02-18 08:55:55,999 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:55,999 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1866501857] [2023-02-18 08:55:55,999 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1866501857] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:55:55,999 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:55:55,999 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 11] total 14 [2023-02-18 08:55:56,000 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [850565215] [2023-02-18 08:55:56,000 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:55:56,000 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:55:56,000 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:55:56,001 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2023-02-18 08:55:56,001 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=171, Unknown=0, NotChecked=0, Total=210 [2023-02-18 08:55:56,001 INFO L87 Difference]: Start difference. First operand 623 states and 894 transitions. cyclomatic complexity: 287 Second operand has 15 states, 11 states have (on average 3.272727272727273) internal successors, (36), 14 states have internal predecessors, (36), 8 states have call successors, (13), 1 states have call predecessors, (13), 4 states have return successors, (13), 7 states have call predecessors, (13), 8 states have call successors, (13) [2023-02-18 08:55:56,357 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:55:56,357 INFO L93 Difference]: Finished difference Result 792 states and 1151 transitions. [2023-02-18 08:55:56,357 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 792 states and 1151 transitions. [2023-02-18 08:55:56,362 INFO L131 ngComponentsAnalysis]: Automaton has 9 accepting balls. 149 [2023-02-18 08:55:56,365 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 792 states to 663 states and 937 transitions. [2023-02-18 08:55:56,365 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 262 [2023-02-18 08:55:56,366 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 268 [2023-02-18 08:55:56,366 INFO L73 IsDeterministic]: Start isDeterministic. Operand 663 states and 937 transitions. [2023-02-18 08:55:56,366 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:56,366 INFO L218 hiAutomatonCegarLoop]: Abstraction has 663 states and 937 transitions. [2023-02-18 08:55:56,366 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 663 states and 937 transitions. [2023-02-18 08:55:56,374 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 663 to 551. [2023-02-18 08:55:56,375 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 551 states, 349 states have (on average 1.1174785100286533) internal successors, (390), 358 states have internal predecessors, (390), 135 states have call successors, (137), 49 states have call predecessors, (137), 67 states have return successors, (247), 143 states have call predecessors, (247), 135 states have call successors, (247) [2023-02-18 08:55:56,376 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 551 states to 551 states and 774 transitions. [2023-02-18 08:55:56,377 INFO L240 hiAutomatonCegarLoop]: Abstraction has 551 states and 774 transitions. [2023-02-18 08:55:56,377 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2023-02-18 08:55:56,377 INFO L428 stractBuchiCegarLoop]: Abstraction has 551 states and 774 transitions. [2023-02-18 08:55:56,377 INFO L335 stractBuchiCegarLoop]: ======== Iteration 17 ============ [2023-02-18 08:55:56,377 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 551 states and 774 transitions. [2023-02-18 08:55:56,379 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 108 [2023-02-18 08:55:56,379 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:56,379 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:56,380 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [11, 11, 9, 4, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:55:56,380 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [6, 6, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:55:56,380 INFO L748 eck$LassoCheckResult]: Stem: 29546#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 29490#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; 29491#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 29510#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; 29547#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 29727#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 29725#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 29721#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 29722#$Ultimate##0 ~n := #in~n; 29726#L25 assume ~n <= 0;#res := 1; 29724#factFINAL assume true; 29720#factEXIT >#68#return; 29718#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 29719#$Ultimate##0 ~n := #in~n; 29734#L25 assume ~n <= 0;#res := 1; 29733#factFINAL assume true; 29717#factEXIT >#70#return; 29715#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 29716#$Ultimate##0 ~n := #in~n; 29732#L25 assume ~n <= 0;#res := 1; 29731#factFINAL assume true; 29714#factEXIT >#72#return; 29712#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 29710#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 29708#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 29705#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 29701#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 29687#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 29688#$Ultimate##0 ~n := #in~n; 29700#L25 assume !(~n <= 0); 29696#L26 call #t~ret0 := fact(~n - 1);< 29699#$Ultimate##0 ~n := #in~n; 29707#L25 assume ~n <= 0;#res := 1; 29704#factFINAL assume true; 29695#factEXIT >#66#return; 29694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 29693#factFINAL assume true; 29686#factEXIT >#74#return; 29681#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 29682#$Ultimate##0 ~n := #in~n; 29692#L25 assume ~n <= 0;#res := 1; 29685#factFINAL assume true; 29680#factEXIT >#76#return; 29677#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 29678#$Ultimate##0 ~n := #in~n; 29703#L25 assume !(~n <= 0); 29690#L26 call #t~ret0 := fact(~n - 1);< 29691#$Ultimate##0 ~n := #in~n; 29706#L25 assume ~n <= 0;#res := 1; 29702#factFINAL assume true; 29689#factEXIT >#66#return; 29684#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 29679#factFINAL assume true; 29676#factEXIT >#78#return; 29675#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 29554#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 29555#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 29551#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 29509#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 29501#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 29503#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 29661#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 29650#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 29654#$Ultimate##0 ~n := #in~n; 29660#L25 assume ~n <= 0;#res := 1; 29657#factFINAL assume true; 29653#factEXIT >#68#return; 29474#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 29528#$Ultimate##0 ~n := #in~n; 29740#L25 assume ~n <= 0;#res := 1; 29741#factFINAL assume true; 29744#factEXIT >#70#return; 29473#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 29528#$Ultimate##0 ~n := #in~n; 29740#L25 assume ~n <= 0;#res := 1; 29741#factFINAL assume true; 29744#factEXIT >#72#return; 29475#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 29772#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 29769#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 29754#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 29755#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 29626#L30 [2023-02-18 08:55:56,381 INFO L750 eck$LassoCheckResult]: Loop: 29626#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 29469#$Ultimate##0 ~n := #in~n; 29747#L25 assume !(~n <= 0); 29567#L26 call #t~ret0 := fact(~n - 1);< 29497#$Ultimate##0 ~n := #in~n; 29612#L25 assume ~n <= 0;#res := 1; 29613#factFINAL assume true; 29600#factEXIT >#66#return; 29603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 29673#factFINAL assume true; 29674#factEXIT >#68#return; 29635#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 29469#$Ultimate##0 ~n := #in~n; 29747#L25 assume ~n <= 0;#res := 1; 29524#factFINAL assume true; 29745#factEXIT >#70#return; 29574#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 29487#$Ultimate##0 ~n := #in~n; 29563#L25 assume !(~n <= 0); 29567#L26 call #t~ret0 := fact(~n - 1);< 29497#$Ultimate##0 ~n := #in~n; 29610#L25 assume !(~n <= 0); 29607#L26 call #t~ret0 := fact(~n - 1);< 29609#$Ultimate##0 ~n := #in~n; 29611#L25 assume ~n <= 0;#res := 1; 29619#factFINAL assume true; 29618#factEXIT >#66#return; 29614#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 29606#factFINAL assume true; 29608#factEXIT >#66#return; 29615#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 29737#factFINAL assume true; 29623#factEXIT >#72#return; 29640#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 29774#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 29771#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 29768#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 29748#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 29626#L30 [2023-02-18 08:55:56,381 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:56,381 INFO L85 PathProgramCache]: Analyzing trace with hash 491364821, now seen corresponding path program 3 times [2023-02-18 08:55:56,381 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:56,381 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [455187744] [2023-02-18 08:55:56,381 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:56,382 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:56,386 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:56,386 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [353491919] [2023-02-18 08:55:56,386 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:55:56,386 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:56,386 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:56,389 INFO L229 MonitoredProcess]: Starting monitored process 81 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:55:56,390 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (81)] Waiting until timeout for monitored process [2023-02-18 08:55:56,430 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2023-02-18 08:55:56,430 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:55:56,431 INFO L263 TraceCheckSpWp]: Trace formula consists of 97 conjuncts, 9 conjunts are in the unsatisfiable core [2023-02-18 08:55:56,432 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:56,444 INFO L134 CoverageAnalysis]: Checked inductivity of 247 backedges. 44 proven. 0 refuted. 0 times theorem prover too weak. 203 trivial. 0 not checked. [2023-02-18 08:55:56,444 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2023-02-18 08:55:56,444 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:56,445 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [455187744] [2023-02-18 08:55:56,445 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:56,445 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [353491919] [2023-02-18 08:55:56,445 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [353491919] provided 1 perfect and 0 imperfect interpolant sequences [2023-02-18 08:55:56,445 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2023-02-18 08:55:56,445 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2023-02-18 08:55:56,445 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [536118328] [2023-02-18 08:55:56,445 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2023-02-18 08:55:56,446 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:55:56,446 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:56,446 INFO L85 PathProgramCache]: Analyzing trace with hash -1447349910, now seen corresponding path program 1 times [2023-02-18 08:55:56,446 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:56,446 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1844035287] [2023-02-18 08:55:56,446 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:56,446 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:56,449 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:56,449 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1149625756] [2023-02-18 08:55:56,449 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:56,449 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:56,449 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:56,464 INFO L229 MonitoredProcess]: Starting monitored process 82 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:55:56,465 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (82)] Waiting until timeout for monitored process [2023-02-18 08:55:56,501 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:56,501 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:55:56,509 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:55:56,515 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:55:56,524 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:55:56,525 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:55:56,525 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:55:56,525 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:55:56,525 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-18 08:55:56,525 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:56,525 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:55:56,525 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:55:56,525 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration17_Loop [2023-02-18 08:55:56,525 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:55:56,526 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:55:56,526 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-18 08:55:56,527 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-18 08:55:56,527 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-18 08:55:56,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-18 08:55:56,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-18 08:55:56,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-18 08:55:56,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-18 08:55:56,532 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:55:56,532 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-18 08:55:56,532 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:56,532 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:56,535 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-18 08:55:56,535 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-18 08:55:56,537 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:56,537 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:56,557 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:56,558 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-18 08:55:56,560 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (83)] Ended with exit code 0 [2023-02-18 08:55:56,560 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:56,560 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:56,561 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-18 08:55:56,563 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-18 08:55:56,564 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:56,564 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:56,571 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:56,571 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-18 08:55:56,573 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (84)] Ended with exit code 0 [2023-02-18 08:55:56,573 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:56,573 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:56,574 INFO L229 MonitoredProcess]: Starting monitored process 85 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-18 08:55:56,575 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (85)] Waiting until timeout for monitored process [2023-02-18 08:55:56,577 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:56,577 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:56,583 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:56,584 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-18 08:55:56,586 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (85)] Ended with exit code 0 [2023-02-18 08:55:56,586 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:56,586 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:56,587 INFO L229 MonitoredProcess]: Starting monitored process 86 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-18 08:55:56,589 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (86)] Waiting until timeout for monitored process [2023-02-18 08:55:56,591 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:56,591 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:56,597 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:56,597 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-18 08:55:56,600 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (86)] Ended with exit code 0 [2023-02-18 08:55:56,600 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:56,600 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:56,601 INFO L229 MonitoredProcess]: Starting monitored process 87 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-18 08:55:56,601 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (87)] Waiting until timeout for monitored process [2023-02-18 08:55:56,604 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:56,604 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:56,610 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:56,610 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-18 08:55:56,613 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (87)] Ended with exit code 0 [2023-02-18 08:55:56,613 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:56,613 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:56,614 INFO L229 MonitoredProcess]: Starting monitored process 88 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-18 08:55:56,615 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (88)] Waiting until timeout for monitored process [2023-02-18 08:55:56,617 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:56,617 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:56,623 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:55:56,624 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-18 08:55:56,626 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (88)] Forceful destruction successful, exit code 0 [2023-02-18 08:55:56,626 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:56,626 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:56,627 INFO L229 MonitoredProcess]: Starting monitored process 89 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-18 08:55:56,628 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (89)] Waiting until timeout for monitored process [2023-02-18 08:55:56,630 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:55:56,630 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:56,640 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (89)] Ended with exit code 0 [2023-02-18 08:55:56,640 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:56,641 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:56,641 INFO L229 MonitoredProcess]: Starting monitored process 90 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-18 08:55:56,642 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (90)] Waiting until timeout for monitored process [2023-02-18 08:55:56,644 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-18 08:55:56,644 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:55:57,027 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-18 08:55:57,032 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (90)] Forceful destruction successful, exit code 0 [2023-02-18 08:55:57,032 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:55:57,032 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:55:57,032 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:55:57,032 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:55:57,032 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-18 08:55:57,032 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:57,032 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:55:57,032 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:55:57,032 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration17_Loop [2023-02-18 08:55:57,032 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:55:57,032 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:55:57,033 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-18 08:55:57,034 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-18 08:55:57,034 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-18 08:55:57,035 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-18 08:55:57,035 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-18 08:55:57,036 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-18 08:55:57,036 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-18 08:55:57,041 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:55:57,041 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-18 08:55:57,041 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:57,041 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:57,042 INFO L229 MonitoredProcess]: Starting monitored process 91 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-18 08:55:57,044 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (91)] Waiting until timeout for monitored process [2023-02-18 08:55:57,045 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-18 08:55:57,051 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:57,051 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:57,051 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:57,051 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:57,051 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:57,052 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:57,052 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:57,067 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:55:57,070 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (91)] Forceful destruction successful, exit code 0 [2023-02-18 08:55:57,070 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:57,070 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:57,071 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-18 08:55:57,073 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-18 08:55:57,074 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-18 08:55:57,080 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:57,080 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:57,080 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:57,080 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:57,080 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:57,081 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:57,081 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:57,082 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:55:57,084 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (92)] Ended with exit code 0 [2023-02-18 08:55:57,084 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:57,084 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:57,085 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-18 08:55:57,086 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-18 08:55:57,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-18 08:55:57,095 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:57,095 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:57,095 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:57,095 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:57,095 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:57,095 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:57,095 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:57,096 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:55:57,099 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (93)] Ended with exit code 0 [2023-02-18 08:55:57,099 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:57,099 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:57,100 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-18 08:55:57,103 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-18 08:55:57,103 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-18 08:55:57,108 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:57,108 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:57,109 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:57,109 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:57,109 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:57,109 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:57,109 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:57,112 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:55:57,115 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (94)] Ended with exit code 0 [2023-02-18 08:55:57,115 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:57,115 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:57,116 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-18 08:55:57,118 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-18 08:55:57,119 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-18 08:55:57,125 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:57,125 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:57,125 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:57,125 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:57,125 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:57,126 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:57,126 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:57,127 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:55:57,129 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (95)] Ended with exit code 0 [2023-02-18 08:55:57,129 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:57,129 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:57,130 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-18 08:55:57,130 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-18 08:55:57,133 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-18 08:55:57,139 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:57,139 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:57,139 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:57,139 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:57,139 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:57,139 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:57,139 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:57,148 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:55:57,151 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-18 08:55:57,151 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:57,151 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:57,152 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-18 08:55:57,154 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-18 08:55:57,156 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-18 08:55:57,162 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:55:57,162 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:55:57,162 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:55:57,162 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:55:57,162 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:55:57,164 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:55:57,164 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:55:57,185 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-18 08:55:57,188 INFO L443 ModelExtractionUtils]: Simplification made 3 calls to the SMT solver. [2023-02-18 08:55:57,188 INFO L444 ModelExtractionUtils]: 6 out of 9 variables were initially zero. Simplification set additionally 0 variables to zero. [2023-02-18 08:55:57,188 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:55:57,188 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:57,195 INFO L229 MonitoredProcess]: Starting monitored process 98 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-18 08:55:57,195 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (98)] Waiting until timeout for monitored process [2023-02-18 08:55:57,196 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-18 08:55:57,197 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-18 08:55:57,197 INFO L513 LassoAnalysis]: Proved termination. [2023-02-18 08:55:57,197 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-18 08:55:57,199 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-18 08:55:57,200 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-18 08:55:57,207 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:57,263 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:57,266 INFO L263 TraceCheckSpWp]: Trace formula consists of 516 conjuncts, 24 conjunts are in the unsatisfiable core [2023-02-18 08:55:57,268 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:57,315 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:57,317 INFO L263 TraceCheckSpWp]: Trace formula consists of 257 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-18 08:55:57,318 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:57,350 INFO L134 CoverageAnalysis]: Checked inductivity of 66 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 66 trivial. 0 not checked. [2023-02-18 08:55:57,350 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-18 08:55:57,351 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 551 states and 774 transitions. cyclomatic complexity: 243 Second operand has 7 states, 6 states have (on average 5.166666666666667) internal successors, (31), 7 states have internal predecessors, (31), 5 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (11), 4 states have call predecessors, (11), 5 states have call successors, (11) [2023-02-18 08:55:57,401 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 551 states and 774 transitions. cyclomatic complexity: 243. Second operand has 7 states, 6 states have (on average 5.166666666666667) internal successors, (31), 7 states have internal predecessors, (31), 5 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (11), 4 states have call predecessors, (11), 5 states have call successors, (11) Result 785 states and 1049 transitions. Complement of second has 13 states. [2023-02-18 08:55:57,401 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 5 states 1 stem states 3 non-accepting loop states 1 accepting loop states [2023-02-18 08:55:57,401 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 6 states have (on average 5.166666666666667) internal successors, (31), 7 states have internal predecessors, (31), 5 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (11), 4 states have call predecessors, (11), 5 states have call successors, (11) [2023-02-18 08:55:57,402 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 35 transitions. [2023-02-18 08:55:57,402 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 5 states and 35 transitions. Stem has 82 letters. Loop has 38 letters. [2023-02-18 08:55:57,402 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:57,402 INFO L681 stractBuchiCegarLoop]: Bad chosen interpolant automaton: word not accepted [2023-02-18 08:55:57,409 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:57,463 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:57,466 INFO L263 TraceCheckSpWp]: Trace formula consists of 516 conjuncts, 24 conjunts are in the unsatisfiable core [2023-02-18 08:55:57,467 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:57,504 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (98)] Forceful destruction successful, exit code 0 [2023-02-18 08:55:57,535 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:57,536 INFO L263 TraceCheckSpWp]: Trace formula consists of 257 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-18 08:55:57,538 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:57,580 INFO L134 CoverageAnalysis]: Checked inductivity of 66 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 66 trivial. 0 not checked. [2023-02-18 08:55:57,580 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-18 08:55:57,581 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 551 states and 774 transitions. cyclomatic complexity: 243 Second operand has 7 states, 6 states have (on average 5.166666666666667) internal successors, (31), 7 states have internal predecessors, (31), 5 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (11), 4 states have call predecessors, (11), 5 states have call successors, (11) [2023-02-18 08:55:57,633 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 551 states and 774 transitions. cyclomatic complexity: 243. Second operand has 7 states, 6 states have (on average 5.166666666666667) internal successors, (31), 7 states have internal predecessors, (31), 5 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (11), 4 states have call predecessors, (11), 5 states have call successors, (11) Result 788 states and 1052 transitions. Complement of second has 17 states. [2023-02-18 08:55:57,633 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 6 states 1 stem states 4 non-accepting loop states 1 accepting loop states [2023-02-18 08:55:57,634 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 6 states have (on average 5.166666666666667) internal successors, (31), 7 states have internal predecessors, (31), 5 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (11), 4 states have call predecessors, (11), 5 states have call successors, (11) [2023-02-18 08:55:57,634 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 36 transitions. [2023-02-18 08:55:57,634 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 36 transitions. Stem has 82 letters. Loop has 38 letters. [2023-02-18 08:55:57,634 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:57,634 INFO L681 stractBuchiCegarLoop]: Bad chosen interpolant automaton: word not accepted [2023-02-18 08:55:57,642 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:57,697 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:57,700 INFO L263 TraceCheckSpWp]: Trace formula consists of 516 conjuncts, 24 conjunts are in the unsatisfiable core [2023-02-18 08:55:57,701 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:57,754 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:57,755 INFO L263 TraceCheckSpWp]: Trace formula consists of 257 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-18 08:55:57,765 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:57,803 INFO L134 CoverageAnalysis]: Checked inductivity of 66 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 66 trivial. 0 not checked. [2023-02-18 08:55:57,804 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-18 08:55:57,805 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 551 states and 774 transitions. cyclomatic complexity: 243 Second operand has 7 states, 6 states have (on average 5.166666666666667) internal successors, (31), 7 states have internal predecessors, (31), 5 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (11), 4 states have call predecessors, (11), 5 states have call successors, (11) [2023-02-18 08:55:57,874 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 551 states and 774 transitions. cyclomatic complexity: 243. Second operand has 7 states, 6 states have (on average 5.166666666666667) internal successors, (31), 7 states have internal predecessors, (31), 5 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (11), 4 states have call predecessors, (11), 5 states have call successors, (11) Result 1187 states and 1642 transitions. Complement of second has 18 states. [2023-02-18 08:55:57,874 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-18 08:55:57,875 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 6 states have (on average 5.166666666666667) internal successors, (31), 7 states have internal predecessors, (31), 5 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (11), 4 states have call predecessors, (11), 5 states have call successors, (11) [2023-02-18 08:55:57,875 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 66 transitions. [2023-02-18 08:55:57,875 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 66 transitions. Stem has 82 letters. Loop has 38 letters. [2023-02-18 08:55:57,875 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:57,875 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 66 transitions. Stem has 120 letters. Loop has 38 letters. [2023-02-18 08:55:57,876 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:57,876 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 66 transitions. Stem has 82 letters. Loop has 76 letters. [2023-02-18 08:55:57,877 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:55:57,877 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1187 states and 1642 transitions. [2023-02-18 08:55:57,882 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 50 [2023-02-18 08:55:57,885 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1187 states to 602 states and 801 transitions. [2023-02-18 08:55:57,885 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 40 [2023-02-18 08:55:57,886 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 50 [2023-02-18 08:55:57,886 INFO L73 IsDeterministic]: Start isDeterministic. Operand 602 states and 801 transitions. [2023-02-18 08:55:57,886 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:57,886 INFO L218 hiAutomatonCegarLoop]: Abstraction has 602 states and 801 transitions. [2023-02-18 08:55:57,886 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 602 states and 801 transitions. [2023-02-18 08:55:57,893 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 602 to 578. [2023-02-18 08:55:57,893 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 578 states, 362 states have (on average 1.1187845303867403) internal successors, (405), 380 states have internal predecessors, (405), 133 states have call successors, (135), 60 states have call predecessors, (135), 83 states have return successors, (234), 137 states have call predecessors, (234), 133 states have call successors, (234) [2023-02-18 08:55:57,895 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 578 states to 578 states and 774 transitions. [2023-02-18 08:55:57,895 INFO L240 hiAutomatonCegarLoop]: Abstraction has 578 states and 774 transitions. [2023-02-18 08:55:57,895 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:55:57,895 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2023-02-18 08:55:57,895 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=12, Invalid=30, Unknown=0, NotChecked=0, Total=42 [2023-02-18 08:55:57,895 INFO L87 Difference]: Start difference. First operand 578 states and 774 transitions. Second operand has 7 states, 5 states have (on average 5.8) internal successors, (29), 7 states have internal predecessors, (29), 2 states have call successors, (10), 1 states have call predecessors, (10), 2 states have return successors, (10), 3 states have call predecessors, (10), 2 states have call successors, (10) [2023-02-18 08:55:57,973 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:55:57,974 INFO L93 Difference]: Finished difference Result 576 states and 754 transitions. [2023-02-18 08:55:57,974 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 576 states and 754 transitions. [2023-02-18 08:55:57,976 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 47 [2023-02-18 08:55:57,979 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 576 states to 576 states and 754 transitions. [2023-02-18 08:55:57,979 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 42 [2023-02-18 08:55:57,979 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 42 [2023-02-18 08:55:57,979 INFO L73 IsDeterministic]: Start isDeterministic. Operand 576 states and 754 transitions. [2023-02-18 08:55:57,979 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:57,979 INFO L218 hiAutomatonCegarLoop]: Abstraction has 576 states and 754 transitions. [2023-02-18 08:55:57,980 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 576 states and 754 transitions. [2023-02-18 08:55:57,985 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 576 to 574. [2023-02-18 08:55:57,986 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 574 states, 367 states have (on average 1.103542234332425) internal successors, (405), 381 states have internal predecessors, (405), 124 states have call successors, (126), 60 states have call predecessors, (126), 83 states have return successors, (221), 132 states have call predecessors, (221), 124 states have call successors, (221) [2023-02-18 08:55:57,987 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 574 states to 574 states and 752 transitions. [2023-02-18 08:55:57,987 INFO L240 hiAutomatonCegarLoop]: Abstraction has 574 states and 752 transitions. [2023-02-18 08:55:57,988 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2023-02-18 08:55:57,988 INFO L428 stractBuchiCegarLoop]: Abstraction has 574 states and 752 transitions. [2023-02-18 08:55:57,988 INFO L335 stractBuchiCegarLoop]: ======== Iteration 18 ============ [2023-02-18 08:55:57,988 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 574 states and 752 transitions. [2023-02-18 08:55:57,989 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 47 [2023-02-18 08:55:57,990 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:57,990 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:57,991 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [18, 18, 12, 6, 6, 6, 6, 5, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:55:57,991 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [20, 20, 11, 11, 11, 11, 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-18 08:55:57,991 INFO L748 eck$LassoCheckResult]: Stem: 35415#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 35364#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; 35365#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 35389#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; 35379#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 35380#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 35697#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 35362#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 35363#$Ultimate##0 ~n := #in~n; 35705#L25 assume ~n <= 0;#res := 1; 35703#factFINAL assume true; 35702#factEXIT >#68#return; 35407#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 35408#$Ultimate##0 ~n := #in~n; 35710#L25 assume ~n <= 0;#res := 1; 35709#factFINAL assume true; 35708#factEXIT >#70#return; 35356#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 35357#$Ultimate##0 ~n := #in~n; 35707#L25 assume ~n <= 0;#res := 1; 35706#factFINAL assume true; 35704#factEXIT >#72#return; 35387#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 35388#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 35402#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 35796#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 35794#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 35721#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 35723#$Ultimate##0 ~n := #in~n; 35793#L25 assume !(~n <= 0); 35762#L26 call #t~ret0 := fact(~n - 1);< 35763#$Ultimate##0 ~n := #in~n; 35798#L25 assume ~n <= 0;#res := 1; 35797#factFINAL assume true; 35761#factEXIT >#66#return; 35759#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 35757#factFINAL assume true; 35720#factEXIT >#74#return; 35714#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 35715#$Ultimate##0 ~n := #in~n; 35717#L25 assume ~n <= 0;#res := 1; 35716#factFINAL assume true; 35713#factEXIT >#76#return; 35443#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 35444#$Ultimate##0 ~n := #in~n; 35786#L25 assume !(~n <= 0); 35782#L26 call #t~ret0 := fact(~n - 1);< 35783#$Ultimate##0 ~n := #in~n; 35800#L25 assume ~n <= 0;#res := 1; 35799#factFINAL assume true; 35781#factEXIT >#66#return; 35780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 35778#factFINAL assume true; 35740#factEXIT >#78#return; 35435#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 35439#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 35438#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 35437#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 35386#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 35381#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 35383#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 35405#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 35360#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 35361#$Ultimate##0 ~n := #in~n; 35694#L25 assume !(~n <= 0); 35638#L26 call #t~ret0 := fact(~n - 1);< 35643#$Ultimate##0 ~n := #in~n; 35658#L25 assume ~n <= 0;#res := 1; 35656#factFINAL assume true; 35635#factEXIT >#66#return; 35641#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 35692#factFINAL assume true; 35689#factEXIT >#68#return; 35680#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 35685#$Ultimate##0 ~n := #in~n; 35691#L25 assume ~n <= 0;#res := 1; 35690#factFINAL assume true; 35684#factEXIT >#70#return; 35678#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 35682#$Ultimate##0 ~n := #in~n; 35688#L25 assume !(~n <= 0); 35637#L26 call #t~ret0 := fact(~n - 1);< 35643#$Ultimate##0 ~n := #in~n; 35658#L25 assume ~n <= 0;#res := 1; 35656#factFINAL assume true; 35635#factEXIT >#66#return; 35640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 35683#factFINAL assume true; 35677#factEXIT >#72#return; 35482#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 35675#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 35674#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 35673#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 35672#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 35669#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 35671#$Ultimate##0 ~n := #in~n; 35693#L25 assume !(~n <= 0); 35636#L26 call #t~ret0 := fact(~n - 1);< 35643#$Ultimate##0 ~n := #in~n; 35658#L25 assume ~n <= 0;#res := 1; 35656#factFINAL assume true; 35635#factEXIT >#66#return; 35642#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 35676#factFINAL assume true; 35668#factEXIT >#68#return; 35471#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 35631#$Ultimate##0 ~n := #in~n; 35645#L25 assume !(~n <= 0); 35639#L26 call #t~ret0 := fact(~n - 1);< 35643#$Ultimate##0 ~n := #in~n; 35658#L25 assume ~n <= 0;#res := 1; 35656#factFINAL assume true; 35635#factEXIT >#66#return; 35632#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 35633#factFINAL assume true; 35468#factEXIT >#70#return; 35479#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 35665#$Ultimate##0 ~n := #in~n; 35667#L25 assume ~n <= 0;#res := 1; 35666#factFINAL assume true; 35664#factEXIT >#72#return; 35662#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 35663#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 35634#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 35627#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 35448#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 35346#L30-5 [2023-02-18 08:55:57,991 INFO L750 eck$LassoCheckResult]: Loop: 35346#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 35347#$Ultimate##0 ~n := #in~n; 35445#L25 assume !(~n <= 0); 35370#L26 call #t~ret0 := fact(~n - 1);< 35376#$Ultimate##0 ~n := #in~n; 35409#L25 assume !(~n <= 0); 35351#L26 call #t~ret0 := fact(~n - 1);< 35550#$Ultimate##0 ~n := #in~n; 35403#L25 assume ~n <= 0;#res := 1; 35358#factFINAL assume true; 35350#factEXIT >#66#return; 35352#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 35398#factFINAL assume true; 35556#factEXIT >#66#return; 35554#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 35459#factFINAL assume true; 35450#factEXIT >#74#return; 35371#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 35347#$Ultimate##0 ~n := #in~n; 35445#L25 assume !(~n <= 0); 35370#L26 call #t~ret0 := fact(~n - 1);< 35376#$Ultimate##0 ~n := #in~n; 35410#L25 assume ~n <= 0;#res := 1; 35535#factFINAL assume true; 35457#factEXIT >#66#return; 35456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 35452#factFINAL assume true; 35418#factEXIT >#76#return; 35374#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 35347#$Ultimate##0 ~n := #in~n; 35445#L25 assume !(~n <= 0); 35370#L26 call #t~ret0 := fact(~n - 1);< 35376#$Ultimate##0 ~n := #in~n; 35410#L25 assume ~n <= 0;#res := 1; 35535#factFINAL assume true; 35457#factEXIT >#66#return; 35456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 35452#factFINAL assume true; 35418#factEXIT >#78#return; 35366#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 35367#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 35390#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 35414#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 35384#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 35385#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 35628#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 35393#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 35394#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 35361#$Ultimate##0 ~n := #in~n; 35694#L25 assume !(~n <= 0); 35638#L26 call #t~ret0 := fact(~n - 1);< 35643#$Ultimate##0 ~n := #in~n; 35659#L25 assume !(~n <= 0); 35648#L26 call #t~ret0 := fact(~n - 1);< 35653#$Ultimate##0 ~n := #in~n; 35661#L25 assume ~n <= 0;#res := 1; 35660#factFINAL assume true; 35657#factEXIT >#66#return; 35650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 35652#factFINAL assume true; 35647#factEXIT >#66#return; 35649#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 35687#factFINAL assume true; 35686#factEXIT >#68#return; 35681#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 35685#$Ultimate##0 ~n := #in~n; 35691#L25 assume ~n <= 0;#res := 1; 35690#factFINAL assume true; 35684#factEXIT >#70#return; 35679#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 35682#$Ultimate##0 ~n := #in~n; 35688#L25 assume !(~n <= 0); 35637#L26 call #t~ret0 := fact(~n - 1);< 35643#$Ultimate##0 ~n := #in~n; 35658#L25 assume ~n <= 0;#res := 1; 35656#factFINAL assume true; 35635#factEXIT >#66#return; 35640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 35683#factFINAL assume true; 35677#factEXIT >#72#return; 35480#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 35701#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 35700#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 35699#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 35695#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 35670#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 35671#$Ultimate##0 ~n := #in~n; 35693#L25 assume !(~n <= 0); 35636#L26 call #t~ret0 := fact(~n - 1);< 35643#$Ultimate##0 ~n := #in~n; 35659#L25 assume !(~n <= 0); 35648#L26 call #t~ret0 := fact(~n - 1);< 35653#$Ultimate##0 ~n := #in~n; 35661#L25 assume ~n <= 0;#res := 1; 35660#factFINAL assume true; 35657#factEXIT >#66#return; 35650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 35652#factFINAL assume true; 35647#factEXIT >#66#return; 35651#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 35712#factFINAL assume true; 35711#factEXIT >#68#return; 35475#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 35631#$Ultimate##0 ~n := #in~n; 35645#L25 assume !(~n <= 0); 35639#L26 call #t~ret0 := fact(~n - 1);< 35643#$Ultimate##0 ~n := #in~n; 35658#L25 assume ~n <= 0;#res := 1; 35656#factFINAL assume true; 35635#factEXIT >#66#return; 35632#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 35633#factFINAL assume true; 35468#factEXIT >#70#return; 35477#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 35631#$Ultimate##0 ~n := #in~n; 35645#L25 assume !(~n <= 0); 35639#L26 call #t~ret0 := fact(~n - 1);< 35643#$Ultimate##0 ~n := #in~n; 35658#L25 assume ~n <= 0;#res := 1; 35656#factFINAL assume true; 35635#factEXIT >#66#return; 35632#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 35633#factFINAL assume true; 35468#factEXIT >#72#return; 35481#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 35654#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 35655#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 35698#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 35696#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 35346#L30-5 [2023-02-18 08:55:57,991 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:57,992 INFO L85 PathProgramCache]: Analyzing trace with hash 529054846, now seen corresponding path program 4 times [2023-02-18 08:55:57,992 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:57,992 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1561592760] [2023-02-18 08:55:57,992 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:57,992 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:57,997 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:57,997 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1110513134] [2023-02-18 08:55:57,997 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:55:57,998 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:57,998 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:57,999 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-18 08:55:58,001 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-18 08:55:58,090 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:55:58,091 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:55:58,092 INFO L263 TraceCheckSpWp]: Trace formula consists of 307 conjuncts, 8 conjunts are in the unsatisfiable core [2023-02-18 08:55:58,093 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:58,117 INFO L134 CoverageAnalysis]: Checked inductivity of 689 backedges. 15 proven. 32 refuted. 0 times theorem prover too weak. 642 trivial. 0 not checked. [2023-02-18 08:55:58,117 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:55:58,146 INFO L134 CoverageAnalysis]: Checked inductivity of 689 backedges. 15 proven. 32 refuted. 0 times theorem prover too weak. 642 trivial. 0 not checked. [2023-02-18 08:55:58,146 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:58,146 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1561592760] [2023-02-18 08:55:58,146 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:58,146 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1110513134] [2023-02-18 08:55:58,147 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1110513134] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:55:58,147 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:55:58,147 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 9] total 12 [2023-02-18 08:55:58,147 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [341946388] [2023-02-18 08:55:58,147 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:55:58,147 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:55:58,148 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:58,148 INFO L85 PathProgramCache]: Analyzing trace with hash 1502791365, now seen corresponding path program 6 times [2023-02-18 08:55:58,148 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:58,148 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1338852299] [2023-02-18 08:55:58,148 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:58,148 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:58,162 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:58,162 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1286130502] [2023-02-18 08:55:58,162 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:55:58,162 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:58,162 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:58,169 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-18 08:55:58,171 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-18 08:55:58,238 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 14 check-sat command(s) [2023-02-18 08:55:58,239 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:55:58,240 INFO L263 TraceCheckSpWp]: Trace formula consists of 249 conjuncts, 13 conjunts are in the unsatisfiable core [2023-02-18 08:55:58,241 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:58,272 INFO L134 CoverageAnalysis]: Checked inductivity of 887 backedges. 559 proven. 27 refuted. 0 times theorem prover too weak. 301 trivial. 0 not checked. [2023-02-18 08:55:58,272 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:55:58,350 INFO L134 CoverageAnalysis]: Checked inductivity of 887 backedges. 139 proven. 137 refuted. 0 times theorem prover too weak. 611 trivial. 0 not checked. [2023-02-18 08:55:58,350 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:58,351 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1338852299] [2023-02-18 08:55:58,351 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:58,351 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1286130502] [2023-02-18 08:55:58,351 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1286130502] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:55:58,351 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:55:58,352 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 13] total 16 [2023-02-18 08:55:58,353 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [802469341] [2023-02-18 08:55:58,353 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:55:58,354 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:55:58,354 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:55:58,355 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2023-02-18 08:55:58,355 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=93, Unknown=0, NotChecked=0, Total=132 [2023-02-18 08:55:58,355 INFO L87 Difference]: Start difference. First operand 574 states and 752 transitions. cyclomatic complexity: 195 Second operand has 12 states, 12 states have (on average 3.9166666666666665) internal successors, (47), 12 states have internal predecessors, (47), 7 states have call successors, (19), 1 states have call predecessors, (19), 1 states have return successors, (19), 7 states have call predecessors, (19), 7 states have call successors, (19) [2023-02-18 08:55:58,478 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:55:58,479 INFO L93 Difference]: Finished difference Result 835 states and 1193 transitions. [2023-02-18 08:55:58,479 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 835 states and 1193 transitions. [2023-02-18 08:55:58,482 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 96 [2023-02-18 08:55:58,486 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 835 states to 722 states and 1034 transitions. [2023-02-18 08:55:58,486 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 48 [2023-02-18 08:55:58,487 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 48 [2023-02-18 08:55:58,487 INFO L73 IsDeterministic]: Start isDeterministic. Operand 722 states and 1034 transitions. [2023-02-18 08:55:58,487 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:58,487 INFO L218 hiAutomatonCegarLoop]: Abstraction has 722 states and 1034 transitions. [2023-02-18 08:55:58,488 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 722 states and 1034 transitions. [2023-02-18 08:55:58,496 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 722 to 544. [2023-02-18 08:55:58,496 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 544 states, 350 states have (on average 1.1) internal successors, (385), 362 states have internal predecessors, (385), 116 states have call successors, (118), 55 states have call predecessors, (118), 78 states have return successors, (213), 126 states have call predecessors, (213), 116 states have call successors, (213) [2023-02-18 08:55:58,497 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 544 states to 544 states and 716 transitions. [2023-02-18 08:55:58,498 INFO L240 hiAutomatonCegarLoop]: Abstraction has 544 states and 716 transitions. [2023-02-18 08:55:58,498 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2023-02-18 08:55:58,498 INFO L428 stractBuchiCegarLoop]: Abstraction has 544 states and 716 transitions. [2023-02-18 08:55:58,499 INFO L335 stractBuchiCegarLoop]: ======== Iteration 19 ============ [2023-02-18 08:55:58,499 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 544 states and 716 transitions. [2023-02-18 08:55:58,500 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 47 [2023-02-18 08:55:58,500 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:58,500 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:58,501 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [23, 23, 15, 8, 8, 8, 8, 6, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:55:58,501 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [21, 21, 12, 12, 12, 12, 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-18 08:55:58,501 INFO L748 eck$LassoCheckResult]: Stem: 38382#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 38334#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; 38335#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 38358#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; 38348#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 38349#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 38633#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 38630#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 38631#$Ultimate##0 ~n := #in~n; 38634#L25 assume ~n <= 0;#res := 1; 38632#factFINAL assume true; 38629#factEXIT >#68#return; 38371#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 38372#$Ultimate##0 ~n := #in~n; 38665#L25 assume ~n <= 0;#res := 1; 38664#factFINAL assume true; 38662#factEXIT >#70#return; 38663#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 38744#$Ultimate##0 ~n := #in~n; 38746#L25 assume ~n <= 0;#res := 1; 38745#factFINAL assume true; 38743#factEXIT >#72#return; 38742#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 38741#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 38739#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 38734#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 38733#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 38315#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 38316#$Ultimate##0 ~n := #in~n; 38775#L25 assume !(~n <= 0); 38776#L26 call #t~ret0 := fact(~n - 1);< 38798#$Ultimate##0 ~n := #in~n; 38801#L25 assume ~n <= 0;#res := 1; 38799#factFINAL assume true; 38795#factEXIT >#66#return; 38794#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 38793#factFINAL assume true; 38791#factEXIT >#74#return; 38787#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 38788#$Ultimate##0 ~n := #in~n; 38806#L25 assume ~n <= 0;#res := 1; 38805#factFINAL assume true; 38804#factEXIT >#76#return; 38800#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 38803#$Ultimate##0 ~n := #in~n; 38802#L25 assume !(~n <= 0); 38796#L26 call #t~ret0 := fact(~n - 1);< 38798#$Ultimate##0 ~n := #in~n; 38801#L25 assume ~n <= 0;#res := 1; 38799#factFINAL assume true; 38795#factEXIT >#66#return; 38797#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 38814#factFINAL assume true; 38813#factEXIT >#78#return; 38338#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 38339#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 38360#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 38684#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 38682#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 38683#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 38719#$Ultimate##0 ~n := #in~n; 38731#L25 assume !(~n <= 0); 38725#L26 call #t~ret0 := fact(~n - 1);< 38727#$Ultimate##0 ~n := #in~n; 38747#L25 assume ~n <= 0;#res := 1; 38748#factFINAL assume true; 38724#factEXIT >#66#return; 38722#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 38720#factFINAL assume true; 38716#factEXIT >#74#return; 38696#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 38697#$Ultimate##0 ~n := #in~n; 38701#L25 assume ~n <= 0;#res := 1; 38699#factFINAL assume true; 38695#factEXIT >#76#return; 38410#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 38411#$Ultimate##0 ~n := #in~n; 38617#L25 assume !(~n <= 0); 38614#L26 call #t~ret0 := fact(~n - 1);< 38616#$Ultimate##0 ~n := #in~n; 38685#L25 assume ~n <= 0;#res := 1; 38686#factFINAL assume true; 38612#factEXIT >#66#return; 38610#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 38611#factFINAL assume true; 38409#factEXIT >#78#return; 38403#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 38388#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 38386#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 38385#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 38357#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 38350#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 38352#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 38361#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 38362#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 38331#$Ultimate##0 ~n := #in~n; 38643#L25 assume !(~n <= 0); 38584#L26 call #t~ret0 := fact(~n - 1);< 38589#$Ultimate##0 ~n := #in~n; 38599#L25 assume ~n <= 0;#res := 1; 38600#factFINAL assume true; 38581#factEXIT >#66#return; 38587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 38762#factFINAL assume true; 38628#factEXIT >#68#return; 38596#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 38652#$Ultimate##0 ~n := #in~n; 38656#L25 assume ~n <= 0;#res := 1; 38655#factFINAL assume true; 38654#factEXIT >#70#return; 38597#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 38647#$Ultimate##0 ~n := #in~n; 38648#L25 assume !(~n <= 0); 38582#L26 call #t~ret0 := fact(~n - 1);< 38589#$Ultimate##0 ~n := #in~n; 38599#L25 assume ~n <= 0;#res := 1; 38600#factFINAL assume true; 38581#factEXIT >#66#return; 38586#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 38760#factFINAL assume true; 38759#factEXIT >#72#return; 38571#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 38711#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 38670#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 38669#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 38668#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 38620#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 38333#$Ultimate##0 ~n := #in~n; 38619#L25 assume !(~n <= 0); 38583#L26 call #t~ret0 := fact(~n - 1);< 38589#$Ultimate##0 ~n := #in~n; 38599#L25 assume ~n <= 0;#res := 1; 38600#factFINAL assume true; 38581#factEXIT >#66#return; 38588#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 38667#factFINAL assume true; 38666#factEXIT >#68#return; 38563#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 38577#$Ultimate##0 ~n := #in~n; 38598#L25 assume !(~n <= 0); 38585#L26 call #t~ret0 := fact(~n - 1);< 38589#$Ultimate##0 ~n := #in~n; 38599#L25 assume ~n <= 0;#res := 1; 38600#factFINAL assume true; 38581#factEXIT >#66#return; 38579#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 38580#factFINAL assume true; 38560#factEXIT >#70#return; 38323#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 38324#$Ultimate##0 ~n := #in~n; 38766#L25 assume ~n <= 0;#res := 1; 38765#factFINAL assume true; 38763#factEXIT >#72#return; 38764#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 38366#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 38367#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 38703#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 38523#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 38313#L30-5 [2023-02-18 08:55:58,502 INFO L750 eck$LassoCheckResult]: Loop: 38313#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 38314#$Ultimate##0 ~n := #in~n; 38387#L25 assume !(~n <= 0); 38340#L26 call #t~ret0 := fact(~n - 1);< 38346#$Ultimate##0 ~n := #in~n; 38373#L25 assume !(~n <= 0); 38318#L26 call #t~ret0 := fact(~n - 1);< 38479#$Ultimate##0 ~n := #in~n; 38368#L25 assume ~n <= 0;#res := 1; 38325#factFINAL assume true; 38317#factEXIT >#66#return; 38319#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 38364#factFINAL assume true; 38478#factEXIT >#66#return; 38495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 38405#factFINAL assume true; 38406#factEXIT >#74#return; 38341#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 38314#$Ultimate##0 ~n := #in~n; 38387#L25 assume !(~n <= 0); 38340#L26 call #t~ret0 := fact(~n - 1);< 38346#$Ultimate##0 ~n := #in~n; 38374#L25 assume ~n <= 0;#res := 1; 38480#factFINAL assume true; 38475#factEXIT >#66#return; 38412#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 38413#factFINAL assume true; 38389#factEXIT >#76#return; 38342#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 38314#$Ultimate##0 ~n := #in~n; 38387#L25 assume !(~n <= 0); 38340#L26 call #t~ret0 := fact(~n - 1);< 38346#$Ultimate##0 ~n := #in~n; 38374#L25 assume ~n <= 0;#res := 1; 38480#factFINAL assume true; 38475#factEXIT >#66#return; 38412#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 38413#factFINAL assume true; 38389#factEXIT >#78#return; 38336#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 38337#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 38359#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 38380#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 38355#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 38356#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 38518#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 38761#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 38330#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 38331#$Ultimate##0 ~n := #in~n; 38643#L25 assume !(~n <= 0); 38584#L26 call #t~ret0 := fact(~n - 1);< 38589#$Ultimate##0 ~n := #in~n; 38602#L25 assume !(~n <= 0); 38592#L26 call #t~ret0 := fact(~n - 1);< 38607#$Ultimate##0 ~n := #in~n; 38609#L25 assume ~n <= 0;#res := 1; 38608#factFINAL assume true; 38603#factEXIT >#66#return; 38601#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 38591#factFINAL assume true; 38593#factEXIT >#66#return; 38604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 38635#factFINAL assume true; 38636#factEXIT >#68#return; 38594#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 38652#$Ultimate##0 ~n := #in~n; 38656#L25 assume ~n <= 0;#res := 1; 38655#factFINAL assume true; 38654#factEXIT >#70#return; 38595#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 38647#$Ultimate##0 ~n := #in~n; 38648#L25 assume !(~n <= 0); 38582#L26 call #t~ret0 := fact(~n - 1);< 38589#$Ultimate##0 ~n := #in~n; 38599#L25 assume ~n <= 0;#res := 1; 38600#factFINAL assume true; 38581#factEXIT >#66#return; 38586#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 38760#factFINAL assume true; 38759#factEXIT >#72#return; 38353#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 38354#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 38381#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 38370#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 38363#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 38332#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 38333#$Ultimate##0 ~n := #in~n; 38619#L25 assume !(~n <= 0); 38583#L26 call #t~ret0 := fact(~n - 1);< 38589#$Ultimate##0 ~n := #in~n; 38602#L25 assume !(~n <= 0); 38592#L26 call #t~ret0 := fact(~n - 1);< 38607#$Ultimate##0 ~n := #in~n; 38609#L25 assume ~n <= 0;#res := 1; 38608#factFINAL assume true; 38603#factEXIT >#66#return; 38601#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 38591#factFINAL assume true; 38593#factEXIT >#66#return; 38606#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 38768#factFINAL assume true; 38767#factEXIT >#68#return; 38568#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 38577#$Ultimate##0 ~n := #in~n; 38598#L25 assume !(~n <= 0); 38585#L26 call #t~ret0 := fact(~n - 1);< 38589#$Ultimate##0 ~n := #in~n; 38599#L25 assume ~n <= 0;#res := 1; 38600#factFINAL assume true; 38581#factEXIT >#66#return; 38579#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 38580#factFINAL assume true; 38560#factEXIT >#70#return; 38566#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 38577#$Ultimate##0 ~n := #in~n; 38598#L25 assume !(~n <= 0); 38585#L26 call #t~ret0 := fact(~n - 1);< 38589#$Ultimate##0 ~n := #in~n; 38602#L25 assume !(~n <= 0); 38592#L26 call #t~ret0 := fact(~n - 1);< 38607#$Ultimate##0 ~n := #in~n; 38609#L25 assume ~n <= 0;#res := 1; 38608#factFINAL assume true; 38603#factEXIT >#66#return; 38601#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 38591#factFINAL assume true; 38593#factEXIT >#66#return; 38605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 38575#factFINAL assume true; 38576#factEXIT >#72#return; 38572#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 38758#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 38757#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 38660#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 38661#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 38313#L30-5 [2023-02-18 08:55:58,502 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:58,502 INFO L85 PathProgramCache]: Analyzing trace with hash 259084417, now seen corresponding path program 5 times [2023-02-18 08:55:58,502 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:58,502 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1566483991] [2023-02-18 08:55:58,503 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:58,503 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:58,508 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:58,508 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2116610988] [2023-02-18 08:55:58,508 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:55:58,508 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:58,509 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:58,511 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-18 08:55:58,512 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-18 08:55:58,579 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 9 check-sat command(s) [2023-02-18 08:55:58,580 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:55:58,581 INFO L263 TraceCheckSpWp]: Trace formula consists of 326 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-18 08:55:58,582 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:58,632 INFO L134 CoverageAnalysis]: Checked inductivity of 1135 backedges. 693 proven. 38 refuted. 0 times theorem prover too weak. 404 trivial. 0 not checked. [2023-02-18 08:55:58,633 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:55:58,731 INFO L134 CoverageAnalysis]: Checked inductivity of 1135 backedges. 141 proven. 176 refuted. 0 times theorem prover too weak. 818 trivial. 0 not checked. [2023-02-18 08:55:58,731 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:58,731 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1566483991] [2023-02-18 08:55:58,731 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:58,731 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2116610988] [2023-02-18 08:55:58,731 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2116610988] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:55:58,731 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:55:58,731 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 13] total 17 [2023-02-18 08:55:58,731 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [591414988] [2023-02-18 08:55:58,731 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:55:58,732 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:55:58,732 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:58,732 INFO L85 PathProgramCache]: Analyzing trace with hash 1013131021, now seen corresponding path program 7 times [2023-02-18 08:55:58,732 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:58,732 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1759271957] [2023-02-18 08:55:58,732 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:58,732 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:58,736 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:58,736 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [299114543] [2023-02-18 08:55:58,737 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:55:58,737 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:58,737 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:58,743 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-18 08:55:58,744 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-18 08:55:58,804 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:55:58,805 INFO L263 TraceCheckSpWp]: Trace formula consists of 305 conjuncts, 13 conjunts are in the unsatisfiable core [2023-02-18 08:55:58,806 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:58,835 INFO L134 CoverageAnalysis]: Checked inductivity of 989 backedges. 625 proven. 27 refuted. 0 times theorem prover too weak. 337 trivial. 0 not checked. [2023-02-18 08:55:58,835 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:55:58,919 INFO L134 CoverageAnalysis]: Checked inductivity of 989 backedges. 139 proven. 155 refuted. 0 times theorem prover too weak. 695 trivial. 0 not checked. [2023-02-18 08:55:58,920 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:58,920 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1759271957] [2023-02-18 08:55:58,920 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:58,920 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [299114543] [2023-02-18 08:55:58,920 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [299114543] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:55:58,920 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:55:58,920 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 13] total 16 [2023-02-18 08:55:58,920 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1328524882] [2023-02-18 08:55:58,921 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:55:58,921 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:55:58,921 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:55:58,921 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2023-02-18 08:55:58,922 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=197, Unknown=0, NotChecked=0, Total=240 [2023-02-18 08:55:58,922 INFO L87 Difference]: Start difference. First operand 544 states and 716 transitions. cyclomatic complexity: 189 Second operand has 16 states, 13 states have (on average 3.4615384615384617) internal successors, (45), 14 states have internal predecessors, (45), 10 states have call successors, (21), 2 states have call predecessors, (21), 6 states have return successors, (22), 7 states have call predecessors, (22), 10 states have call successors, (22) [2023-02-18 08:55:59,221 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:55:59,221 INFO L93 Difference]: Finished difference Result 722 states and 925 transitions. [2023-02-18 08:55:59,221 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 722 states and 925 transitions. [2023-02-18 08:55:59,227 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 75 [2023-02-18 08:55:59,231 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 722 states to 721 states and 924 transitions. [2023-02-18 08:55:59,231 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 71 [2023-02-18 08:55:59,231 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 71 [2023-02-18 08:55:59,231 INFO L73 IsDeterministic]: Start isDeterministic. Operand 721 states and 924 transitions. [2023-02-18 08:55:59,231 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:59,232 INFO L218 hiAutomatonCegarLoop]: Abstraction has 721 states and 924 transitions. [2023-02-18 08:55:59,232 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 721 states and 924 transitions. [2023-02-18 08:55:59,243 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 721 to 555. [2023-02-18 08:55:59,244 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 555 states, 357 states have (on average 1.0952380952380953) internal successors, (391), 367 states have internal predecessors, (391), 119 states have call successors, (121), 58 states have call predecessors, (121), 79 states have return successors, (217), 129 states have call predecessors, (217), 119 states have call successors, (217) [2023-02-18 08:55:59,245 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 555 states to 555 states and 729 transitions. [2023-02-18 08:55:59,246 INFO L240 hiAutomatonCegarLoop]: Abstraction has 555 states and 729 transitions. [2023-02-18 08:55:59,246 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2023-02-18 08:55:59,246 INFO L428 stractBuchiCegarLoop]: Abstraction has 555 states and 729 transitions. [2023-02-18 08:55:59,246 INFO L335 stractBuchiCegarLoop]: ======== Iteration 20 ============ [2023-02-18 08:55:59,246 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 555 states and 729 transitions. [2023-02-18 08:55:59,248 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 47 [2023-02-18 08:55:59,248 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:59,248 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:59,251 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [23, 23, 15, 8, 8, 8, 8, 6, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:55:59,252 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [21, 21, 12, 12, 12, 12, 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-18 08:55:59,252 INFO L748 eck$LassoCheckResult]: Stem: 41449#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 41403#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; 41404#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 41427#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; 41450#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 41782#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 41781#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 41401#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 41402#$Ultimate##0 ~n := #in~n; 41786#L25 assume ~n <= 0;#res := 1; 41785#factFINAL assume true; 41783#factEXIT >#68#return; 41442#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 41443#$Ultimate##0 ~n := #in~n; 41789#L25 assume ~n <= 0;#res := 1; 41788#factFINAL assume true; 41787#factEXIT >#70#return; 41393#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 41394#$Ultimate##0 ~n := #in~n; 41808#L25 assume ~n <= 0;#res := 1; 41807#factFINAL assume true; 41806#factEXIT >#72#return; 41805#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 41804#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 41803#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 41802#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 41432#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 41433#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 41826#$Ultimate##0 ~n := #in~n; 41836#L25 assume !(~n <= 0); 41830#L26 call #t~ret0 := fact(~n - 1);< 41833#$Ultimate##0 ~n := #in~n; 41837#L25 assume ~n <= 0;#res := 1; 41834#factFINAL assume true; 41829#factEXIT >#66#return; 41828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 41827#factFINAL assume true; 41823#factEXIT >#74#return; 41824#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 41841#$Ultimate##0 ~n := #in~n; 41844#L25 assume ~n <= 0;#res := 1; 41843#factFINAL assume true; 41840#factEXIT >#76#return; 41835#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 41839#$Ultimate##0 ~n := #in~n; 41838#L25 assume !(~n <= 0); 41831#L26 call #t~ret0 := fact(~n - 1);< 41833#$Ultimate##0 ~n := #in~n; 41837#L25 assume ~n <= 0;#res := 1; 41834#factFINAL assume true; 41829#factEXIT >#66#return; 41832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 41852#factFINAL assume true; 41851#factEXIT >#78#return; 41708#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 41701#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 41674#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 41672#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 41633#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 41628#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 41630#$Ultimate##0 ~n := #in~n; 41671#L25 assume !(~n <= 0); 41668#L26 call #t~ret0 := fact(~n - 1);< 41670#$Ultimate##0 ~n := #in~n; 41813#L25 assume ~n <= 0;#res := 1; 41810#factFINAL assume true; 41667#factEXIT >#66#return; 41664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 41663#factFINAL assume true; 41627#factEXIT >#74#return; 41577#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 41637#$Ultimate##0 ~n := #in~n; 41647#L25 assume ~n <= 0;#res := 1; 41576#factFINAL assume true; 41578#factEXIT >#76#return; 41477#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 41478#$Ultimate##0 ~n := #in~n; 41653#L25 assume !(~n <= 0); 41639#L26 call #t~ret0 := fact(~n - 1);< 41644#$Ultimate##0 ~n := #in~n; 41654#L25 assume ~n <= 0;#res := 1; 41676#factFINAL assume true; 41675#factEXIT >#66#return; 41643#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 41665#factFINAL assume true; 41662#factEXIT >#78#return; 41472#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 41470#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 41467#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 41466#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 41426#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 41421#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 41422#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 41430#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 41431#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 41400#$Ultimate##0 ~n := #in~n; 41543#L25 assume !(~n <= 0); 41506#L26 call #t~ret0 := fact(~n - 1);< 41513#$Ultimate##0 ~n := #in~n; 41520#L25 assume ~n <= 0;#res := 1; 41519#factFINAL assume true; 41515#factEXIT >#66#return; 41517#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 41541#factFINAL assume true; 41540#factEXIT >#68#return; 41535#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 41537#$Ultimate##0 ~n := #in~n; 41539#L25 assume ~n <= 0;#res := 1; 41538#factFINAL assume true; 41533#factEXIT >#70#return; 41391#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 41549#$Ultimate##0 ~n := #in~n; 41550#L25 assume !(~n <= 0); 41508#L26 call #t~ret0 := fact(~n - 1);< 41513#$Ultimate##0 ~n := #in~n; 41520#L25 assume ~n <= 0;#res := 1; 41519#factFINAL assume true; 41515#factEXIT >#66#return; 41518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 41935#factFINAL assume true; 41390#factEXIT >#72#return; 41392#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 41424#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 41436#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 41570#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 41553#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 41545#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 41551#$Ultimate##0 ~n := #in~n; 41544#L25 assume !(~n <= 0); 41503#L26 call #t~ret0 := fact(~n - 1);< 41513#$Ultimate##0 ~n := #in~n; 41520#L25 assume ~n <= 0;#res := 1; 41519#factFINAL assume true; 41515#factEXIT >#66#return; 41516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 41564#factFINAL assume true; 41563#factEXIT >#68#return; 41485#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 41498#$Ultimate##0 ~n := #in~n; 41522#L25 assume !(~n <= 0); 41505#L26 call #t~ret0 := fact(~n - 1);< 41513#$Ultimate##0 ~n := #in~n; 41520#L25 assume ~n <= 0;#res := 1; 41519#factFINAL assume true; 41515#factEXIT >#66#return; 41499#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 41500#factFINAL assume true; 41481#factEXIT >#70#return; 41493#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 41560#$Ultimate##0 ~n := #in~n; 41562#L25 assume ~n <= 0;#res := 1; 41561#factFINAL assume true; 41559#factEXIT >#72#return; 41558#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 41557#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 41556#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 41555#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 41460#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 41412#L30-5 [2023-02-18 08:55:59,252 INFO L750 eck$LassoCheckResult]: Loop: 41412#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 41384#$Ultimate##0 ~n := #in~n; 41453#L25 assume !(~n <= 0); 41409#L26 call #t~ret0 := fact(~n - 1);< 41415#$Ultimate##0 ~n := #in~n; 41444#L25 assume !(~n <= 0); 41388#L26 call #t~ret0 := fact(~n - 1);< 41465#$Ultimate##0 ~n := #in~n; 41440#L25 assume ~n <= 0;#res := 1; 41395#factFINAL assume true; 41387#factEXIT >#66#return; 41389#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 41434#factFINAL assume true; 41458#factEXIT >#66#return; 41456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 41455#factFINAL assume true; 41454#factEXIT >#74#return; 41413#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 41384#$Ultimate##0 ~n := #in~n; 41453#L25 assume !(~n <= 0); 41409#L26 call #t~ret0 := fact(~n - 1);< 41415#$Ultimate##0 ~n := #in~n; 41445#L25 assume ~n <= 0;#res := 1; 41464#factFINAL assume true; 41463#factEXIT >#66#return; 41462#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 41459#factFINAL assume true; 41457#factEXIT >#76#return; 41410#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 41384#$Ultimate##0 ~n := #in~n; 41453#L25 assume !(~n <= 0); 41409#L26 call #t~ret0 := fact(~n - 1);< 41415#$Ultimate##0 ~n := #in~n; 41445#L25 assume ~n <= 0;#res := 1; 41464#factFINAL assume true; 41463#factEXIT >#66#return; 41462#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 41459#factFINAL assume true; 41457#factEXIT >#78#return; 41405#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 41406#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 41428#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 41437#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 41425#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 41419#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 41420#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 41542#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 41399#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 41400#$Ultimate##0 ~n := #in~n; 41543#L25 assume !(~n <= 0); 41506#L26 call #t~ret0 := fact(~n - 1);< 41513#$Ultimate##0 ~n := #in~n; 41521#L25 assume !(~n <= 0); 41507#L26 call #t~ret0 := fact(~n - 1);< 41528#$Ultimate##0 ~n := #in~n; 41531#L25 assume ~n <= 0;#res := 1; 41529#factFINAL assume true; 41527#factEXIT >#66#return; 41512#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 41523#factFINAL assume true; 41502#factEXIT >#66#return; 41511#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 41548#factFINAL assume true; 41547#factEXIT >#68#return; 41536#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 41537#$Ultimate##0 ~n := #in~n; 41539#L25 assume ~n <= 0;#res := 1; 41538#factFINAL assume true; 41533#factEXIT >#70#return; 41524#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 41532#$Ultimate##0 ~n := #in~n; 41530#L25 assume !(~n <= 0); 41504#L26 call #t~ret0 := fact(~n - 1);< 41526#$Ultimate##0 ~n := #in~n; 41521#L25 assume !(~n <= 0); 41507#L26 call #t~ret0 := fact(~n - 1);< 41528#$Ultimate##0 ~n := #in~n; 41531#L25 assume ~n <= 0;#res := 1; 41529#factFINAL assume true; 41527#factEXIT >#66#return; 41512#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 41523#factFINAL assume true; 41502#factEXIT >#66#return; 41510#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 41936#factFINAL assume true; 41934#factEXIT >#72#return; 41492#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 41814#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 41575#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 41571#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 41565#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 41546#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 41551#$Ultimate##0 ~n := #in~n; 41544#L25 assume !(~n <= 0); 41503#L26 call #t~ret0 := fact(~n - 1);< 41513#$Ultimate##0 ~n := #in~n; 41521#L25 assume !(~n <= 0); 41507#L26 call #t~ret0 := fact(~n - 1);< 41528#$Ultimate##0 ~n := #in~n; 41531#L25 assume ~n <= 0;#res := 1; 41529#factFINAL assume true; 41527#factEXIT >#66#return; 41512#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 41523#factFINAL assume true; 41502#factEXIT >#66#return; 41509#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 41567#factFINAL assume true; 41566#factEXIT >#68#return; 41490#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 41498#$Ultimate##0 ~n := #in~n; 41522#L25 assume !(~n <= 0); 41505#L26 call #t~ret0 := fact(~n - 1);< 41513#$Ultimate##0 ~n := #in~n; 41520#L25 assume ~n <= 0;#res := 1; 41519#factFINAL assume true; 41515#factEXIT >#66#return; 41499#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 41500#factFINAL assume true; 41481#factEXIT >#70#return; 41489#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 41498#$Ultimate##0 ~n := #in~n; 41522#L25 assume !(~n <= 0); 41505#L26 call #t~ret0 := fact(~n - 1);< 41513#$Ultimate##0 ~n := #in~n; 41520#L25 assume ~n <= 0;#res := 1; 41519#factFINAL assume true; 41515#factEXIT >#66#return; 41499#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 41500#factFINAL assume true; 41481#factEXIT >#72#return; 41494#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 41569#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 41568#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 41554#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 41552#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 41412#L30-5 [2023-02-18 08:55:59,253 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:59,253 INFO L85 PathProgramCache]: Analyzing trace with hash 259084417, now seen corresponding path program 6 times [2023-02-18 08:55:59,253 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:59,253 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1392755590] [2023-02-18 08:55:59,253 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:59,253 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:59,261 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:59,261 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [554541644] [2023-02-18 08:55:59,262 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:55:59,262 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:59,262 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:59,267 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-18 08:55:59,267 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-18 08:55:59,354 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 11 check-sat command(s) [2023-02-18 08:55:59,354 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:55:59,355 INFO L263 TraceCheckSpWp]: Trace formula consists of 382 conjuncts, 14 conjunts are in the unsatisfiable core [2023-02-18 08:55:59,357 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:59,398 INFO L134 CoverageAnalysis]: Checked inductivity of 1135 backedges. 115 proven. 77 refuted. 0 times theorem prover too weak. 943 trivial. 0 not checked. [2023-02-18 08:55:59,399 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:55:59,454 INFO L134 CoverageAnalysis]: Checked inductivity of 1135 backedges. 115 proven. 78 refuted. 0 times theorem prover too weak. 942 trivial. 0 not checked. [2023-02-18 08:55:59,455 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:59,455 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1392755590] [2023-02-18 08:55:59,455 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:59,455 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [554541644] [2023-02-18 08:55:59,455 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [554541644] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:55:59,455 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:55:59,455 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 11] total 13 [2023-02-18 08:55:59,456 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [776330038] [2023-02-18 08:55:59,456 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:55:59,458 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:55:59,458 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:59,458 INFO L85 PathProgramCache]: Analyzing trace with hash -530590771, now seen corresponding path program 8 times [2023-02-18 08:55:59,458 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:59,458 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1920930391] [2023-02-18 08:55:59,458 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:59,459 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:59,463 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:59,463 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [716171638] [2023-02-18 08:55:59,463 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:55:59,463 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:59,463 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:59,464 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-18 08:55:59,466 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-18 08:55:59,527 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:55:59,527 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:55:59,528 INFO L263 TraceCheckSpWp]: Trace formula consists of 305 conjuncts, 11 conjunts are in the unsatisfiable core [2023-02-18 08:55:59,530 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:55:59,563 INFO L134 CoverageAnalysis]: Checked inductivity of 989 backedges. 70 proven. 105 refuted. 0 times theorem prover too weak. 814 trivial. 0 not checked. [2023-02-18 08:55:59,563 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:55:59,616 INFO L134 CoverageAnalysis]: Checked inductivity of 989 backedges. 70 proven. 106 refuted. 0 times theorem prover too weak. 813 trivial. 0 not checked. [2023-02-18 08:55:59,616 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:55:59,616 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1920930391] [2023-02-18 08:55:59,616 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:55:59,617 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [716171638] [2023-02-18 08:55:59,617 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [716171638] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:55:59,617 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:55:59,617 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 10] total 15 [2023-02-18 08:55:59,617 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1239411900] [2023-02-18 08:55:59,617 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:55:59,617 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:55:59,618 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:55:59,618 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2023-02-18 08:55:59,618 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=52, Invalid=188, Unknown=0, NotChecked=0, Total=240 [2023-02-18 08:55:59,618 INFO L87 Difference]: Start difference. First operand 555 states and 729 transitions. cyclomatic complexity: 191 Second operand has 16 states, 13 states have (on average 3.4615384615384617) internal successors, (45), 16 states have internal predecessors, (45), 10 states have call successors, (19), 1 states have call predecessors, (19), 3 states have return successors, (19), 7 states have call predecessors, (19), 10 states have call successors, (19) [2023-02-18 08:55:59,923 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:55:59,923 INFO L93 Difference]: Finished difference Result 658 states and 882 transitions. [2023-02-18 08:55:59,923 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 658 states and 882 transitions. [2023-02-18 08:55:59,927 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 79 [2023-02-18 08:55:59,931 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 658 states to 652 states and 873 transitions. [2023-02-18 08:55:59,931 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 45 [2023-02-18 08:55:59,931 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 45 [2023-02-18 08:55:59,931 INFO L73 IsDeterministic]: Start isDeterministic. Operand 652 states and 873 transitions. [2023-02-18 08:55:59,932 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:55:59,932 INFO L218 hiAutomatonCegarLoop]: Abstraction has 652 states and 873 transitions. [2023-02-18 08:55:59,932 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 652 states and 873 transitions. [2023-02-18 08:55:59,939 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 652 to 571. [2023-02-18 08:55:59,940 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 571 states, 367 states have (on average 1.0926430517711172) internal successors, (401), 377 states have internal predecessors, (401), 125 states have call successors, (127), 58 states have call predecessors, (127), 79 states have return successors, (229), 135 states have call predecessors, (229), 125 states have call successors, (229) [2023-02-18 08:55:59,941 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 571 states to 571 states and 757 transitions. [2023-02-18 08:55:59,941 INFO L240 hiAutomatonCegarLoop]: Abstraction has 571 states and 757 transitions. [2023-02-18 08:55:59,941 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2023-02-18 08:55:59,941 INFO L428 stractBuchiCegarLoop]: Abstraction has 571 states and 757 transitions. [2023-02-18 08:55:59,942 INFO L335 stractBuchiCegarLoop]: ======== Iteration 21 ============ [2023-02-18 08:55:59,942 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 571 states and 757 transitions. [2023-02-18 08:55:59,943 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 55 [2023-02-18 08:55:59,943 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:55:59,943 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:55:59,944 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [23, 23, 15, 8, 8, 8, 8, 6, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:55:59,945 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [29, 29, 17, 17, 17, 17, 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-18 08:55:59,945 INFO L748 eck$LassoCheckResult]: Stem: 44458#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 44409#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; 44410#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 44431#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; 44422#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 44423#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 44749#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 44407#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 44408#$Ultimate##0 ~n := #in~n; 44784#L25 assume ~n <= 0;#res := 1; 44780#factFINAL assume true; 44773#factEXIT >#68#return; 44447#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 44448#$Ultimate##0 ~n := #in~n; 44830#L25 assume ~n <= 0;#res := 1; 44826#factFINAL assume true; 44816#factEXIT >#70#return; 44396#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 44397#$Ultimate##0 ~n := #in~n; 44835#L25 assume ~n <= 0;#res := 1; 44834#factFINAL assume true; 44833#factEXIT >#72#return; 44832#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 44831#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 44829#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 44825#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 44436#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 44437#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 44842#$Ultimate##0 ~n := #in~n; 44865#L25 assume !(~n <= 0); 44854#L26 call #t~ret0 := fact(~n - 1);< 44857#$Ultimate##0 ~n := #in~n; 44871#L25 assume ~n <= 0;#res := 1; 44869#factFINAL assume true; 44853#factEXIT >#66#return; 44850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44845#factFINAL assume true; 44841#factEXIT >#74#return; 44818#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 44874#$Ultimate##0 ~n := #in~n; 44843#L25 assume ~n <= 0;#res := 1; 44839#factFINAL assume true; 44840#factEXIT >#76#return; 44828#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 44872#$Ultimate##0 ~n := #in~n; 44870#L25 assume !(~n <= 0); 44855#L26 call #t~ret0 := fact(~n - 1);< 44857#$Ultimate##0 ~n := #in~n; 44871#L25 assume ~n <= 0;#res := 1; 44869#factFINAL assume true; 44853#factEXIT >#66#return; 44856#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44937#factFINAL assume true; 44827#factEXIT >#78#return; 44642#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 44759#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 44757#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 44756#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 44755#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 44751#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 44753#$Ultimate##0 ~n := #in~n; 44801#L25 assume !(~n <= 0); 44402#L26 call #t~ret0 := fact(~n - 1);< 44800#$Ultimate##0 ~n := #in~n; 44446#L25 assume ~n <= 0;#res := 1; 44401#factFINAL assume true; 44404#factEXIT >#66#return; 44798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44797#factFINAL assume true; 44750#factEXIT >#74#return; 44603#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 44604#$Ultimate##0 ~n := #in~n; 44778#L25 assume ~n <= 0;#res := 1; 44776#factFINAL assume true; 44602#factEXIT >#76#return; 44482#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 44483#$Ultimate##0 ~n := #in~n; 44786#L25 assume !(~n <= 0); 44762#L26 call #t~ret0 := fact(~n - 1);< 44767#$Ultimate##0 ~n := #in~n; 44789#L25 assume ~n <= 0;#res := 1; 44803#factFINAL assume true; 44799#factEXIT >#66#return; 44766#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44796#factFINAL assume true; 44774#factEXIT >#78#return; 44473#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 44477#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 44476#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 44475#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 44430#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 44424#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 44425#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 44434#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 44435#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 44406#$Ultimate##0 ~n := #in~n; 44744#L25 assume !(~n <= 0); 44662#L26 call #t~ret0 := fact(~n - 1);< 44666#$Ultimate##0 ~n := #in~n; 44705#L25 assume ~n <= 0;#res := 1; 44704#factFINAL assume true; 44658#factEXIT >#66#return; 44664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44748#factFINAL assume true; 44747#factEXIT >#68#return; 44735#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 44738#$Ultimate##0 ~n := #in~n; 44742#L25 assume ~n <= 0;#res := 1; 44739#factFINAL assume true; 44734#factEXIT >#70#return; 44394#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 44733#$Ultimate##0 ~n := #in~n; 44745#L25 assume !(~n <= 0); 44659#L26 call #t~ret0 := fact(~n - 1);< 44666#$Ultimate##0 ~n := #in~n; 44705#L25 assume ~n <= 0;#res := 1; 44704#factFINAL assume true; 44658#factEXIT >#66#return; 44665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44952#factFINAL assume true; 44393#factEXIT >#72#return; 44395#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 44427#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 44438#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 44821#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 44746#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 44717#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 44721#$Ultimate##0 ~n := #in~n; 44726#L25 assume !(~n <= 0); 44660#L26 call #t~ret0 := fact(~n - 1);< 44666#$Ultimate##0 ~n := #in~n; 44705#L25 assume ~n <= 0;#res := 1; 44704#factFINAL assume true; 44658#factEXIT >#66#return; 44663#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44722#factFINAL assume true; 44716#factEXIT >#68#return; 44627#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 44637#$Ultimate##0 ~n := #in~n; 44712#L25 assume !(~n <= 0); 44661#L26 call #t~ret0 := fact(~n - 1);< 44666#$Ultimate##0 ~n := #in~n; 44705#L25 assume ~n <= 0;#res := 1; 44704#factFINAL assume true; 44658#factEXIT >#66#return; 44656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44654#factFINAL assume true; 44614#factEXIT >#70#return; 44631#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 44812#$Ultimate##0 ~n := #in~n; 44814#L25 assume ~n <= 0;#res := 1; 44813#factFINAL assume true; 44811#factEXIT >#72#return; 44810#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 44809#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 44808#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 44693#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 44501#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 44415#L30-5 [2023-02-18 08:55:59,945 INFO L750 eck$LassoCheckResult]: Loop: 44415#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 44387#$Ultimate##0 ~n := #in~n; 44478#L25 assume !(~n <= 0); 44399#L26 call #t~ret0 := fact(~n - 1);< 44420#$Ultimate##0 ~n := #in~n; 44449#L25 assume !(~n <= 0); 44391#L26 call #t~ret0 := fact(~n - 1);< 44560#$Ultimate##0 ~n := #in~n; 44444#L25 assume ~n <= 0;#res := 1; 44445#factFINAL assume true; 44390#factEXIT >#66#return; 44392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44398#factFINAL assume true; 44400#factEXIT >#66#return; 44498#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44489#factFINAL assume true; 44486#factEXIT >#74#return; 44416#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 44387#$Ultimate##0 ~n := #in~n; 44478#L25 assume !(~n <= 0); 44399#L26 call #t~ret0 := fact(~n - 1);< 44420#$Ultimate##0 ~n := #in~n; 44449#L25 assume !(~n <= 0); 44391#L26 call #t~ret0 := fact(~n - 1);< 44560#$Ultimate##0 ~n := #in~n; 44444#L25 assume ~n <= 0;#res := 1; 44445#factFINAL assume true; 44390#factEXIT >#66#return; 44392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44398#factFINAL assume true; 44400#factEXIT >#66#return; 44498#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44489#factFINAL assume true; 44486#factEXIT >#76#return; 44417#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 44387#$Ultimate##0 ~n := #in~n; 44478#L25 assume !(~n <= 0); 44399#L26 call #t~ret0 := fact(~n - 1);< 44420#$Ultimate##0 ~n := #in~n; 44450#L25 assume ~n <= 0;#res := 1; 44505#factFINAL assume true; 44493#factEXIT >#66#return; 44491#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44490#factFINAL assume true; 44459#factEXIT >#78#return; 44411#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 44412#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 44432#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 44456#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 44428#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 44429#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 44440#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 44441#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 44405#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 44406#$Ultimate##0 ~n := #in~n; 44744#L25 assume !(~n <= 0); 44662#L26 call #t~ret0 := fact(~n - 1);< 44666#$Ultimate##0 ~n := #in~n; 44706#L25 assume !(~n <= 0); 44698#L26 call #t~ret0 := fact(~n - 1);< 44711#$Ultimate##0 ~n := #in~n; 44806#L25 assume ~n <= 0;#res := 1; 44805#factFINAL assume true; 44804#factEXIT >#66#return; 44703#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44710#factFINAL assume true; 44697#factEXIT >#66#return; 44701#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44743#factFINAL assume true; 44740#factEXIT >#68#return; 44737#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 44738#$Ultimate##0 ~n := #in~n; 44742#L25 assume ~n <= 0;#res := 1; 44739#factFINAL assume true; 44734#factEXIT >#70#return; 44715#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 44731#$Ultimate##0 ~n := #in~n; 44713#L25 assume !(~n <= 0); 44699#L26 call #t~ret0 := fact(~n - 1);< 44741#$Ultimate##0 ~n := #in~n; 44706#L25 assume !(~n <= 0); 44698#L26 call #t~ret0 := fact(~n - 1);< 44711#$Ultimate##0 ~n := #in~n; 44806#L25 assume ~n <= 0;#res := 1; 44805#factFINAL assume true; 44804#factEXIT >#66#return; 44703#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44710#factFINAL assume true; 44697#factEXIT >#66#return; 44702#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44732#factFINAL assume true; 44729#factEXIT >#72#return; 44730#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 44919#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 44918#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 44916#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 44878#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 44718#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 44721#$Ultimate##0 ~n := #in~n; 44726#L25 assume !(~n <= 0); 44660#L26 call #t~ret0 := fact(~n - 1);< 44666#$Ultimate##0 ~n := #in~n; 44706#L25 assume !(~n <= 0); 44698#L26 call #t~ret0 := fact(~n - 1);< 44711#$Ultimate##0 ~n := #in~n; 44806#L25 assume ~n <= 0;#res := 1; 44805#factFINAL assume true; 44804#factEXIT >#66#return; 44703#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44710#factFINAL assume true; 44697#factEXIT >#66#return; 44700#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44903#factFINAL assume true; 44877#factEXIT >#68#return; 44628#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 44637#$Ultimate##0 ~n := #in~n; 44712#L25 assume !(~n <= 0); 44661#L26 call #t~ret0 := fact(~n - 1);< 44666#$Ultimate##0 ~n := #in~n; 44705#L25 assume ~n <= 0;#res := 1; 44704#factFINAL assume true; 44658#factEXIT >#66#return; 44656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44654#factFINAL assume true; 44614#factEXIT >#70#return; 44616#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 44637#$Ultimate##0 ~n := #in~n; 44712#L25 assume !(~n <= 0); 44661#L26 call #t~ret0 := fact(~n - 1);< 44666#$Ultimate##0 ~n := #in~n; 44705#L25 assume ~n <= 0;#res := 1; 44704#factFINAL assume true; 44658#factEXIT >#66#return; 44656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44654#factFINAL assume true; 44614#factEXIT >#72#return; 44629#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 44956#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 44457#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 44442#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 44443#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 44719#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 44721#$Ultimate##0 ~n := #in~n; 44726#L25 assume !(~n <= 0); 44660#L26 call #t~ret0 := fact(~n - 1);< 44666#$Ultimate##0 ~n := #in~n; 44706#L25 assume !(~n <= 0); 44698#L26 call #t~ret0 := fact(~n - 1);< 44711#$Ultimate##0 ~n := #in~n; 44806#L25 assume ~n <= 0;#res := 1; 44805#factFINAL assume true; 44804#factEXIT >#66#return; 44703#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44710#factFINAL assume true; 44697#factEXIT >#66#return; 44700#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44903#factFINAL assume true; 44877#factEXIT >#68#return; 44621#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 44637#$Ultimate##0 ~n := #in~n; 44712#L25 assume !(~n <= 0); 44661#L26 call #t~ret0 := fact(~n - 1);< 44666#$Ultimate##0 ~n := #in~n; 44705#L25 assume ~n <= 0;#res := 1; 44704#factFINAL assume true; 44658#factEXIT >#66#return; 44656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44654#factFINAL assume true; 44614#factEXIT >#70#return; 44624#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 44637#$Ultimate##0 ~n := #in~n; 44712#L25 assume !(~n <= 0); 44661#L26 call #t~ret0 := fact(~n - 1);< 44666#$Ultimate##0 ~n := #in~n; 44705#L25 assume ~n <= 0;#res := 1; 44704#factFINAL assume true; 44658#factEXIT >#66#return; 44656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 44654#factFINAL assume true; 44614#factEXIT >#72#return; 44630#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 44815#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 44694#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 44695#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 44807#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 44415#L30-5 [2023-02-18 08:55:59,945 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:55:59,946 INFO L85 PathProgramCache]: Analyzing trace with hash 259084417, now seen corresponding path program 7 times [2023-02-18 08:55:59,946 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:55:59,946 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1661677266] [2023-02-18 08:55:59,946 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:55:59,946 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:55:59,951 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:55:59,952 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [596463109] [2023-02-18 08:55:59,952 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:55:59,952 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:55:59,952 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:55:59,954 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-18 08:55:59,955 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-18 08:56:00,038 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:56:00,040 INFO L263 TraceCheckSpWp]: Trace formula consists of 382 conjuncts, 10 conjunts are in the unsatisfiable core [2023-02-18 08:56:00,042 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:00,058 INFO L134 CoverageAnalysis]: Checked inductivity of 1135 backedges. 651 proven. 3 refuted. 0 times theorem prover too weak. 481 trivial. 0 not checked. [2023-02-18 08:56:00,059 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:00,087 INFO L134 CoverageAnalysis]: Checked inductivity of 1135 backedges. 101 proven. 92 refuted. 0 times theorem prover too weak. 942 trivial. 0 not checked. [2023-02-18 08:56:00,088 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:00,088 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1661677266] [2023-02-18 08:56:00,088 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:00,088 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [596463109] [2023-02-18 08:56:00,088 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [596463109] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:00,088 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:00,088 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 10] total 11 [2023-02-18 08:56:00,089 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1000516082] [2023-02-18 08:56:00,089 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:00,089 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:56:00,089 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:00,089 INFO L85 PathProgramCache]: Analyzing trace with hash 971396742, now seen corresponding path program 9 times [2023-02-18 08:56:00,089 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:00,089 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [97444269] [2023-02-18 08:56:00,090 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:00,090 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:00,094 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:00,094 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1023275874] [2023-02-18 08:56:00,094 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:56:00,095 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:00,095 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:00,097 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-18 08:56:00,098 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-18 08:56:00,156 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 9 check-sat command(s) [2023-02-18 08:56:00,156 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:00,157 INFO L263 TraceCheckSpWp]: Trace formula consists of 142 conjuncts, 9 conjunts are in the unsatisfiable core [2023-02-18 08:56:00,159 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:00,173 INFO L134 CoverageAnalysis]: Checked inductivity of 1933 backedges. 135 proven. 1 refuted. 0 times theorem prover too weak. 1797 trivial. 0 not checked. [2023-02-18 08:56:00,173 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:00,201 INFO L134 CoverageAnalysis]: Checked inductivity of 1933 backedges. 135 proven. 1 refuted. 0 times theorem prover too weak. 1797 trivial. 0 not checked. [2023-02-18 08:56:00,201 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:00,202 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [97444269] [2023-02-18 08:56:00,202 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:00,202 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1023275874] [2023-02-18 08:56:00,202 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1023275874] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:00,202 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:00,202 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [6, 6] total 8 [2023-02-18 08:56:00,202 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1107011144] [2023-02-18 08:56:00,202 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:00,203 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:00,203 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:00,203 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2023-02-18 08:56:00,203 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=28, Invalid=82, Unknown=0, NotChecked=0, Total=110 [2023-02-18 08:56:00,203 INFO L87 Difference]: Start difference. First operand 571 states and 757 transitions. cyclomatic complexity: 203 Second operand has 11 states, 10 states have (on average 4.8) internal successors, (48), 11 states have internal predecessors, (48), 7 states have call successors, (21), 2 states have call predecessors, (21), 4 states have return successors, (21), 5 states have call predecessors, (21), 7 states have call successors, (21) [2023-02-18 08:56:00,338 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:00,338 INFO L93 Difference]: Finished difference Result 671 states and 891 transitions. [2023-02-18 08:56:00,339 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 671 states and 891 transitions. [2023-02-18 08:56:00,341 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 61 [2023-02-18 08:56:00,344 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 671 states to 665 states and 885 transitions. [2023-02-18 08:56:00,344 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 45 [2023-02-18 08:56:00,344 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 45 [2023-02-18 08:56:00,344 INFO L73 IsDeterministic]: Start isDeterministic. Operand 665 states and 885 transitions. [2023-02-18 08:56:00,344 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:00,344 INFO L218 hiAutomatonCegarLoop]: Abstraction has 665 states and 885 transitions. [2023-02-18 08:56:00,344 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 665 states and 885 transitions. [2023-02-18 08:56:00,351 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 665 to 561. [2023-02-18 08:56:00,352 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 561 states, 363 states have (on average 1.0909090909090908) internal successors, (396), 374 states have internal predecessors, (396), 118 states have call successors, (120), 58 states have call predecessors, (120), 80 states have return successors, (213), 128 states have call predecessors, (213), 118 states have call successors, (213) [2023-02-18 08:56:00,353 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 561 states to 561 states and 729 transitions. [2023-02-18 08:56:00,353 INFO L240 hiAutomatonCegarLoop]: Abstraction has 561 states and 729 transitions. [2023-02-18 08:56:00,354 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2023-02-18 08:56:00,354 INFO L428 stractBuchiCegarLoop]: Abstraction has 561 states and 729 transitions. [2023-02-18 08:56:00,354 INFO L335 stractBuchiCegarLoop]: ======== Iteration 22 ============ [2023-02-18 08:56:00,354 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 561 states and 729 transitions. [2023-02-18 08:56:00,356 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 55 [2023-02-18 08:56:00,356 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:00,356 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:00,357 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [24, 24, 15, 9, 9, 9, 9, 6, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:00,357 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [31, 31, 19, 19, 19, 19, 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-18 08:56:00,357 INFO L748 eck$LassoCheckResult]: Stem: 47777#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 47729#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; 47730#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 47754#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; 47744#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 47745#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 47759#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 47727#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 47728#$Ultimate##0 ~n := #in~n; 48246#L25 assume ~n <= 0;#res := 1; 48245#factFINAL assume true; 48238#factEXIT >#68#return; 47768#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 47769#$Ultimate##0 ~n := #in~n; 48258#L25 assume ~n <= 0;#res := 1; 48240#factFINAL assume true; 48083#factEXIT >#70#return; 48084#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 48113#$Ultimate##0 ~n := #in~n; 48115#L25 assume ~n <= 0;#res := 1; 48114#factFINAL assume true; 48112#factEXIT >#72#return; 48110#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 48104#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 48102#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 48100#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 48099#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 48095#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 48098#$Ultimate##0 ~n := #in~n; 48111#L25 assume !(~n <= 0); 48107#L26 call #t~ret0 := fact(~n - 1);< 48109#$Ultimate##0 ~n := #in~n; 48119#L25 assume ~n <= 0;#res := 1; 48116#factFINAL assume true; 48105#factEXIT >#66#return; 48103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 48101#factFINAL assume true; 48094#factEXIT >#74#return; 48096#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 48121#$Ultimate##0 ~n := #in~n; 48124#L25 assume ~n <= 0;#res := 1; 48123#factFINAL assume true; 48120#factEXIT >#76#return; 48066#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 48118#$Ultimate##0 ~n := #in~n; 48117#L25 assume !(~n <= 0); 48106#L26 call #t~ret0 := fact(~n - 1);< 48109#$Ultimate##0 ~n := #in~n; 48119#L25 assume ~n <= 0;#res := 1; 48116#factFINAL assume true; 48105#factEXIT >#66#return; 48108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 48166#factFINAL assume true; 48065#factEXIT >#78#return; 48064#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 48063#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 48062#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 48060#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 48052#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 48047#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 48049#$Ultimate##0 ~n := #in~n; 48059#L25 assume !(~n <= 0); 48056#L26 call #t~ret0 := fact(~n - 1);< 48058#$Ultimate##0 ~n := #in~n; 48073#L25 assume !(~n <= 0); 48057#L26 call #t~ret0 := fact(~n - 1);< 48072#$Ultimate##0 ~n := #in~n; 48082#L25 assume ~n <= 0;#res := 1; 48081#factFINAL assume true; 48079#factEXIT >#66#return; 48080#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 48070#factFINAL assume true; 48071#factEXIT >#66#return; 48054#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 48050#factFINAL assume true; 48046#factEXIT >#74#return; 48041#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 48042#$Ultimate##0 ~n := #in~n; 48061#L25 assume ~n <= 0;#res := 1; 48043#factFINAL assume true; 48040#factEXIT >#76#return; 47742#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 47772#$Ultimate##0 ~n := #in~n; 47773#L25 assume !(~n <= 0); 47714#L26 call #t~ret0 := fact(~n - 1);< 47743#$Ultimate##0 ~n := #in~n; 47764#L25 assume ~n <= 0;#res := 1; 47765#factFINAL assume true; 47713#factEXIT >#66#return; 47717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47761#factFINAL assume true; 48244#factEXIT >#78#return; 47793#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 47797#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 47796#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 47795#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 47751#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 47746#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 47747#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 47757#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 47758#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 47726#$Ultimate##0 ~n := #in~n; 48023#L25 assume !(~n <= 0); 47963#L26 call #t~ret0 := fact(~n - 1);< 47968#$Ultimate##0 ~n := #in~n; 47972#L25 assume ~n <= 0;#res := 1; 47970#factFINAL assume true; 47960#factEXIT >#66#return; 47966#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 48020#factFINAL assume true; 48017#factEXIT >#68#return; 48014#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 48016#$Ultimate##0 ~n := #in~n; 48026#L25 assume ~n <= 0;#res := 1; 48024#factFINAL assume true; 48012#factEXIT >#70#return; 47971#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 48010#$Ultimate##0 ~n := #in~n; 48029#L25 assume !(~n <= 0); 47964#L26 call #t~ret0 := fact(~n - 1);< 47968#$Ultimate##0 ~n := #in~n; 47972#L25 assume ~n <= 0;#res := 1; 47970#factFINAL assume true; 47960#factEXIT >#66#return; 47967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 48028#factFINAL assume true; 48009#factEXIT >#72#return; 48003#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 48001#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 47999#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 47996#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 47994#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 47983#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 47984#$Ultimate##0 ~n := #in~n; 47998#L25 assume !(~n <= 0); 47961#L26 call #t~ret0 := fact(~n - 1);< 47968#$Ultimate##0 ~n := #in~n; 47972#L25 assume ~n <= 0;#res := 1; 47970#factFINAL assume true; 47960#factEXIT >#66#return; 47965#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47992#factFINAL assume true; 47979#factEXIT >#68#return; 47925#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 47956#$Ultimate##0 ~n := #in~n; 47975#L25 assume !(~n <= 0); 47962#L26 call #t~ret0 := fact(~n - 1);< 47968#$Ultimate##0 ~n := #in~n; 47972#L25 assume ~n <= 0;#res := 1; 47970#factFINAL assume true; 47960#factEXIT >#66#return; 47959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47958#factFINAL assume true; 47919#factEXIT >#70#return; 47718#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 47719#$Ultimate##0 ~n := #in~n; 48239#L25 assume ~n <= 0;#res := 1; 48178#factFINAL assume true; 48176#factEXIT >#72#return; 48175#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 48174#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 48172#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 48170#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 47876#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 47706#L30-5 [2023-02-18 08:56:00,357 INFO L750 eck$LassoCheckResult]: Loop: 47706#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 47707#$Ultimate##0 ~n := #in~n; 47798#L25 assume !(~n <= 0); 47735#L26 call #t~ret0 := fact(~n - 1);< 47741#$Ultimate##0 ~n := #in~n; 47770#L25 assume !(~n <= 0); 47711#L26 call #t~ret0 := fact(~n - 1);< 47952#$Ultimate##0 ~n := #in~n; 47763#L25 assume ~n <= 0;#res := 1; 47720#factFINAL assume true; 47710#factEXIT >#66#return; 47712#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47760#factFINAL assume true; 47909#factEXIT >#66#return; 47908#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47907#factFINAL assume true; 47906#factEXIT >#74#return; 47739#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 47707#$Ultimate##0 ~n := #in~n; 47798#L25 assume !(~n <= 0); 47735#L26 call #t~ret0 := fact(~n - 1);< 47741#$Ultimate##0 ~n := #in~n; 47770#L25 assume !(~n <= 0); 47711#L26 call #t~ret0 := fact(~n - 1);< 47952#$Ultimate##0 ~n := #in~n; 47763#L25 assume ~n <= 0;#res := 1; 47720#factFINAL assume true; 47710#factEXIT >#66#return; 47712#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47760#factFINAL assume true; 47909#factEXIT >#66#return; 47908#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47907#factFINAL assume true; 47906#factEXIT >#76#return; 47740#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 47707#$Ultimate##0 ~n := #in~n; 47798#L25 assume !(~n <= 0); 47735#L26 call #t~ret0 := fact(~n - 1);< 47741#$Ultimate##0 ~n := #in~n; 47771#L25 assume ~n <= 0;#res := 1; 47933#factFINAL assume true; 47917#factEXIT >#66#return; 47915#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47913#factFINAL assume true; 47780#factEXIT >#78#return; 47731#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 47732#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 47755#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 47776#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 47749#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 47750#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 48019#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 48018#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 47725#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 47726#$Ultimate##0 ~n := #in~n; 48023#L25 assume !(~n <= 0); 47963#L26 call #t~ret0 := fact(~n - 1);< 47968#$Ultimate##0 ~n := #in~n; 47974#L25 assume !(~n <= 0); 47987#L26 call #t~ret0 := fact(~n - 1);< 48032#$Ultimate##0 ~n := #in~n; 48038#L25 assume ~n <= 0;#res := 1; 48037#factFINAL assume true; 48036#factEXIT >#66#return; 47988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 48031#factFINAL assume true; 47985#factEXIT >#66#return; 47991#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 48022#factFINAL assume true; 48021#factEXIT >#68#return; 48015#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 48016#$Ultimate##0 ~n := #in~n; 48026#L25 assume ~n <= 0;#res := 1; 48024#factFINAL assume true; 48012#factEXIT >#70#return; 48006#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 48008#$Ultimate##0 ~n := #in~n; 48027#L25 assume !(~n <= 0); 47986#L26 call #t~ret0 := fact(~n - 1);< 48025#$Ultimate##0 ~n := #in~n; 47974#L25 assume !(~n <= 0); 47987#L26 call #t~ret0 := fact(~n - 1);< 48032#$Ultimate##0 ~n := #in~n; 48038#L25 assume ~n <= 0;#res := 1; 48037#factFINAL assume true; 48036#factEXIT >#66#return; 47988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 48031#factFINAL assume true; 47985#factEXIT >#66#return; 47990#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 48011#factFINAL assume true; 48004#factEXIT >#72#return; 48007#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 48230#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 48228#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 48223#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 48221#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 47982#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 47984#$Ultimate##0 ~n := #in~n; 47998#L25 assume !(~n <= 0); 47961#L26 call #t~ret0 := fact(~n - 1);< 47968#$Ultimate##0 ~n := #in~n; 47974#L25 assume !(~n <= 0); 47987#L26 call #t~ret0 := fact(~n - 1);< 48032#$Ultimate##0 ~n := #in~n; 48038#L25 assume ~n <= 0;#res := 1; 48037#factFINAL assume true; 48036#factEXIT >#66#return; 47988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 48031#factFINAL assume true; 47985#factEXIT >#66#return; 47989#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 48220#factFINAL assume true; 48218#factEXIT >#68#return; 47927#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 47956#$Ultimate##0 ~n := #in~n; 47975#L25 assume ~n <= 0;#res := 1; 48178#factFINAL assume true; 48176#factEXIT >#70#return; 47923#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 47932#$Ultimate##0 ~n := #in~n; 47969#L25 assume !(~n <= 0); 47962#L26 call #t~ret0 := fact(~n - 1);< 47968#$Ultimate##0 ~n := #in~n; 47974#L25 assume !(~n <= 0); 47987#L26 call #t~ret0 := fact(~n - 1);< 48032#$Ultimate##0 ~n := #in~n; 48038#L25 assume ~n <= 0;#res := 1; 48037#factFINAL assume true; 48036#factEXIT >#66#return; 47988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 48031#factFINAL assume true; 47985#factEXIT >#66#return; 47978#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47954#factFINAL assume true; 47955#factEXIT >#72#return; 47752#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 47753#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 47762#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 47766#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 47767#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 47980#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 47984#$Ultimate##0 ~n := #in~n; 47998#L25 assume !(~n <= 0); 47961#L26 call #t~ret0 := fact(~n - 1);< 47968#$Ultimate##0 ~n := #in~n; 47974#L25 assume !(~n <= 0); 47987#L26 call #t~ret0 := fact(~n - 1);< 48032#$Ultimate##0 ~n := #in~n; 48038#L25 assume ~n <= 0;#res := 1; 48037#factFINAL assume true; 48036#factEXIT >#66#return; 47988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 48031#factFINAL assume true; 47985#factEXIT >#66#return; 47989#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 48220#factFINAL assume true; 48218#factEXIT >#68#return; 47921#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 47956#$Ultimate##0 ~n := #in~n; 47975#L25 assume !(~n <= 0); 47962#L26 call #t~ret0 := fact(~n - 1);< 47968#$Ultimate##0 ~n := #in~n; 47974#L25 assume !(~n <= 0); 47987#L26 call #t~ret0 := fact(~n - 1);< 48032#$Ultimate##0 ~n := #in~n; 48038#L25 assume ~n <= 0;#res := 1; 48037#factFINAL assume true; 48036#factEXIT >#66#return; 47988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 48031#factFINAL assume true; 47985#factEXIT >#66#return; 47978#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47954#factFINAL assume true; 47955#factEXIT >#70#return; 47922#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 47956#$Ultimate##0 ~n := #in~n; 47975#L25 assume !(~n <= 0); 47962#L26 call #t~ret0 := fact(~n - 1);< 47968#$Ultimate##0 ~n := #in~n; 47974#L25 assume !(~n <= 0); 47987#L26 call #t~ret0 := fact(~n - 1);< 48032#$Ultimate##0 ~n := #in~n; 48038#L25 assume ~n <= 0;#res := 1; 48037#factFINAL assume true; 48036#factEXIT >#66#return; 47988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 48031#factFINAL assume true; 47985#factEXIT >#66#return; 47978#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47954#factFINAL assume true; 47955#factEXIT >#72#return; 47931#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 48173#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 48171#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 48169#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 48168#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 47706#L30-5 [2023-02-18 08:56:00,358 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:00,358 INFO L85 PathProgramCache]: Analyzing trace with hash -1554997895, now seen corresponding path program 8 times [2023-02-18 08:56:00,358 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:00,358 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1290534725] [2023-02-18 08:56:00,358 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:00,358 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:00,363 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:00,363 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1571733049] [2023-02-18 08:56:00,363 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:56:00,363 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:00,364 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:00,366 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-18 08:56:00,367 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-18 08:56:00,440 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:56:00,440 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:00,442 INFO L263 TraceCheckSpWp]: Trace formula consists of 394 conjuncts, 13 conjunts are in the unsatisfiable core [2023-02-18 08:56:00,444 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:00,469 INFO L134 CoverageAnalysis]: Checked inductivity of 1243 backedges. 727 proven. 5 refuted. 0 times theorem prover too weak. 511 trivial. 0 not checked. [2023-02-18 08:56:00,469 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:00,526 INFO L134 CoverageAnalysis]: Checked inductivity of 1243 backedges. 127 proven. 74 refuted. 0 times theorem prover too weak. 1042 trivial. 0 not checked. [2023-02-18 08:56:00,526 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:00,527 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1290534725] [2023-02-18 08:56:00,527 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:00,527 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1571733049] [2023-02-18 08:56:00,527 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1571733049] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:00,527 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:00,527 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 11] total 16 [2023-02-18 08:56:00,527 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [259209937] [2023-02-18 08:56:00,527 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:00,528 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:56:00,528 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:00,528 INFO L85 PathProgramCache]: Analyzing trace with hash 1734576326, now seen corresponding path program 10 times [2023-02-18 08:56:00,528 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:00,528 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [914214095] [2023-02-18 08:56:00,528 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:00,528 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:00,533 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:00,534 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1276382566] [2023-02-18 08:56:00,534 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:56:00,534 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:00,534 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:00,537 INFO L229 MonitoredProcess]: Starting monitored process 108 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:00,537 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (108)] Waiting until timeout for monitored process [2023-02-18 08:56:00,615 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:56:00,616 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:00,617 INFO L263 TraceCheckSpWp]: Trace formula consists of 440 conjuncts, 15 conjunts are in the unsatisfiable core [2023-02-18 08:56:00,619 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:00,650 INFO L134 CoverageAnalysis]: Checked inductivity of 2239 backedges. 888 proven. 78 refuted. 0 times theorem prover too weak. 1273 trivial. 0 not checked. [2023-02-18 08:56:00,650 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:00,745 INFO L134 CoverageAnalysis]: Checked inductivity of 2239 backedges. 12 proven. 638 refuted. 0 times theorem prover too weak. 1589 trivial. 0 not checked. [2023-02-18 08:56:00,745 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:00,745 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [914214095] [2023-02-18 08:56:00,745 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:00,745 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1276382566] [2023-02-18 08:56:00,745 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1276382566] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:00,745 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:00,745 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 14] total 17 [2023-02-18 08:56:00,745 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1569037362] [2023-02-18 08:56:00,745 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:00,746 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:00,746 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:00,746 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2023-02-18 08:56:00,746 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=51, Invalid=189, Unknown=0, NotChecked=0, Total=240 [2023-02-18 08:56:00,746 INFO L87 Difference]: Start difference. First operand 561 states and 729 transitions. cyclomatic complexity: 183 Second operand has 16 states, 14 states have (on average 4.357142857142857) internal successors, (61), 16 states have internal predecessors, (61), 10 states have call successors, (28), 2 states have call predecessors, (28), 4 states have return successors, (28), 9 states have call predecessors, (28), 10 states have call successors, (28) [2023-02-18 08:56:00,962 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:00,962 INFO L93 Difference]: Finished difference Result 634 states and 805 transitions. [2023-02-18 08:56:00,962 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 634 states and 805 transitions. [2023-02-18 08:56:00,964 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 68 [2023-02-18 08:56:00,967 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 634 states to 607 states and 778 transitions. [2023-02-18 08:56:00,967 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 55 [2023-02-18 08:56:00,967 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 55 [2023-02-18 08:56:00,967 INFO L73 IsDeterministic]: Start isDeterministic. Operand 607 states and 778 transitions. [2023-02-18 08:56:00,967 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:00,967 INFO L218 hiAutomatonCegarLoop]: Abstraction has 607 states and 778 transitions. [2023-02-18 08:56:00,967 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 607 states and 778 transitions. [2023-02-18 08:56:00,973 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 607 to 549. [2023-02-18 08:56:00,974 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 549 states, 355 states have (on average 1.0845070422535212) internal successors, (385), 363 states have internal predecessors, (385), 118 states have call successors, (120), 58 states have call predecessors, (120), 76 states have return successors, (199), 127 states have call predecessors, (199), 118 states have call successors, (199) [2023-02-18 08:56:00,975 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 549 states to 549 states and 704 transitions. [2023-02-18 08:56:00,975 INFO L240 hiAutomatonCegarLoop]: Abstraction has 549 states and 704 transitions. [2023-02-18 08:56:00,975 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 18 states. [2023-02-18 08:56:00,975 INFO L428 stractBuchiCegarLoop]: Abstraction has 549 states and 704 transitions. [2023-02-18 08:56:00,976 INFO L335 stractBuchiCegarLoop]: ======== Iteration 23 ============ [2023-02-18 08:56:00,976 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 549 states and 704 transitions. [2023-02-18 08:56:00,977 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 55 [2023-02-18 08:56:00,977 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:00,977 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:00,978 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [25, 25, 15, 10, 10, 10, 10, 6, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:00,978 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [27, 27, 15, 15, 15, 15, 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-18 08:56:00,978 INFO L748 eck$LassoCheckResult]: Stem: 51169#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 51124#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; 51125#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 51149#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; 51139#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 51140#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 51533#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 51118#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 51119#$Ultimate##0 ~n := #in~n; 51526#L25 assume ~n <= 0;#res := 1; 51524#factFINAL assume true; 51522#factEXIT >#68#return; 51161#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 51162#$Ultimate##0 ~n := #in~n; 51527#L25 assume ~n <= 0;#res := 1; 51525#factFINAL assume true; 51523#factEXIT >#70#return; 51114#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 51115#$Ultimate##0 ~n := #in~n; 51530#L25 assume ~n <= 0;#res := 1; 51529#factFINAL assume true; 51528#factEXIT >#72#return; 51144#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 51145#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 51154#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 51547#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 51153#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 51106#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 51107#$Ultimate##0 ~n := #in~n; 51634#L25 assume !(~n <= 0); 51622#L26 call #t~ret0 := fact(~n - 1);< 51625#$Ultimate##0 ~n := #in~n; 51633#L25 assume ~n <= 0;#res := 1; 51630#factFINAL assume true; 51621#factEXIT >#66#return; 51624#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51641#factFINAL assume true; 51601#factEXIT >#74#return; 51549#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 51555#$Ultimate##0 ~n := #in~n; 51596#L25 assume ~n <= 0;#res := 1; 51595#factFINAL assume true; 51554#factEXIT >#76#return; 51508#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 51509#$Ultimate##0 ~n := #in~n; 51626#L25 assume !(~n <= 0); 51623#L26 call #t~ret0 := fact(~n - 1);< 51625#$Ultimate##0 ~n := #in~n; 51633#L25 assume ~n <= 0;#res := 1; 51630#factFINAL assume true; 51621#factEXIT >#66#return; 51619#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51614#factFINAL assume true; 51507#factEXIT >#78#return; 51506#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 51505#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 51504#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 51503#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 51458#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 51451#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 51456#$Ultimate##0 ~n := #in~n; 51492#L25 assume !(~n <= 0); 51488#L26 call #t~ret0 := fact(~n - 1);< 51490#$Ultimate##0 ~n := #in~n; 51517#L25 assume !(~n <= 0); 51489#L26 call #t~ret0 := fact(~n - 1);< 51513#$Ultimate##0 ~n := #in~n; 51537#L25 assume ~n <= 0;#res := 1; 51536#factFINAL assume true; 51534#factEXIT >#66#return; 51535#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51511#factFINAL assume true; 51512#factEXIT >#66#return; 51485#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51484#factFINAL assume true; 51450#factEXIT >#74#return; 51448#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 51449#$Ultimate##0 ~n := #in~n; 51499#L25 assume ~n <= 0;#res := 1; 51498#factFINAL assume true; 51447#factEXIT >#76#return; 51445#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 51446#$Ultimate##0 ~n := #in~n; 51500#L25 assume !(~n <= 0); 51471#L26 call #t~ret0 := fact(~n - 1);< 51474#$Ultimate##0 ~n := #in~n; 51480#L25 assume !(~n <= 0); 51470#L26 call #t~ret0 := fact(~n - 1);< 51479#$Ultimate##0 ~n := #in~n; 51495#L25 assume ~n <= 0;#res := 1; 51494#factFINAL assume true; 51493#factEXIT >#66#return; 51491#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51486#factFINAL assume true; 51483#factEXIT >#66#return; 51473#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51502#factFINAL assume true; 51444#factEXIT >#78#return; 51212#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 51443#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 51442#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 51441#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 51148#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 51141#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 51142#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 51152#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 51116#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 51117#$Ultimate##0 ~n := #in~n; 51438#L25 assume !(~n <= 0); 51372#L26 call #t~ret0 := fact(~n - 1);< 51382#$Ultimate##0 ~n := #in~n; 51436#L25 assume ~n <= 0;#res := 1; 51414#factFINAL assume true; 51402#factEXIT >#66#return; 51403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51461#factFINAL assume true; 51460#factEXIT >#68#return; 51418#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 51419#$Ultimate##0 ~n := #in~n; 51432#L25 assume ~n <= 0;#res := 1; 51422#factFINAL assume true; 51415#factEXIT >#70#return; 51411#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 51424#$Ultimate##0 ~n := #in~n; 51429#L25 assume !(~n <= 0); 51376#L26 call #t~ret0 := fact(~n - 1);< 51382#$Ultimate##0 ~n := #in~n; 51436#L25 assume ~n <= 0;#res := 1; 51414#factFINAL assume true; 51402#factEXIT >#66#return; 51405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51427#factFINAL assume true; 51423#factEXIT >#72#return; 51412#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 51421#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 51420#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 51406#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 51399#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 51367#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 51368#$Ultimate##0 ~n := #in~n; 51383#L25 assume !(~n <= 0); 51374#L26 call #t~ret0 := fact(~n - 1);< 51382#$Ultimate##0 ~n := #in~n; 51436#L25 assume ~n <= 0;#res := 1; 51414#factFINAL assume true; 51402#factEXIT >#66#return; 51398#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51394#factFINAL assume true; 51390#factEXIT >#68#return; 51341#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 51360#$Ultimate##0 ~n := #in~n; 51496#L25 assume !(~n <= 0); 51375#L26 call #t~ret0 := fact(~n - 1);< 51382#$Ultimate##0 ~n := #in~n; 51436#L25 assume ~n <= 0;#res := 1; 51414#factFINAL assume true; 51402#factEXIT >#66#return; 51404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51387#factFINAL assume true; 51352#factEXIT >#70#return; 51340#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 51348#$Ultimate##0 ~n := #in~n; 51362#L25 assume ~n <= 0;#res := 1; 51361#factFINAL assume true; 51339#factEXIT >#72#return; 51327#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 51328#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 51189#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 51190#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 51181#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 51104#L30-5 [2023-02-18 08:56:00,978 INFO L750 eck$LassoCheckResult]: Loop: 51104#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 51105#$Ultimate##0 ~n := #in~n; 51170#L25 assume !(~n <= 0); 51130#L26 call #t~ret0 := fact(~n - 1);< 51136#$Ultimate##0 ~n := #in~n; 51163#L25 assume !(~n <= 0); 51109#L26 call #t~ret0 := fact(~n - 1);< 51184#$Ultimate##0 ~n := #in~n; 51159#L25 assume ~n <= 0;#res := 1; 51120#factFINAL assume true; 51108#factEXIT >#66#return; 51110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51155#factFINAL assume true; 51175#factEXIT >#66#return; 51173#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51172#factFINAL assume true; 51171#factEXIT >#74#return; 51131#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 51105#$Ultimate##0 ~n := #in~n; 51170#L25 assume !(~n <= 0); 51130#L26 call #t~ret0 := fact(~n - 1);< 51136#$Ultimate##0 ~n := #in~n; 51163#L25 assume !(~n <= 0); 51109#L26 call #t~ret0 := fact(~n - 1);< 51184#$Ultimate##0 ~n := #in~n; 51159#L25 assume ~n <= 0;#res := 1; 51120#factFINAL assume true; 51108#factEXIT >#66#return; 51110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51155#factFINAL assume true; 51175#factEXIT >#66#return; 51173#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51172#factFINAL assume true; 51171#factEXIT >#76#return; 51135#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 51105#$Ultimate##0 ~n := #in~n; 51170#L25 assume !(~n <= 0); 51130#L26 call #t~ret0 := fact(~n - 1);< 51136#$Ultimate##0 ~n := #in~n; 51164#L25 assume ~n <= 0;#res := 1; 51183#factFINAL assume true; 51180#factEXIT >#66#return; 51177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51176#factFINAL assume true; 51174#factEXIT >#78#return; 51126#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 51127#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 51150#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 51168#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 51146#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 51147#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 51434#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 51433#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 51431#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 51117#$Ultimate##0 ~n := #in~n; 51438#L25 assume !(~n <= 0); 51372#L26 call #t~ret0 := fact(~n - 1);< 51382#$Ultimate##0 ~n := #in~n; 51437#L25 assume !(~n <= 0); 51373#L26 call #t~ret0 := fact(~n - 1);< 51386#$Ultimate##0 ~n := #in~n; 51516#L25 assume ~n <= 0;#res := 1; 51515#factFINAL assume true; 51510#factEXIT >#66#return; 51378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51385#factFINAL assume true; 51371#factEXIT >#66#return; 51379#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51435#factFINAL assume true; 51430#factEXIT >#68#return; 51417#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 51419#$Ultimate##0 ~n := #in~n; 51432#L25 assume ~n <= 0;#res := 1; 51422#factFINAL assume true; 51415#factEXIT >#70#return; 51410#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 51413#$Ultimate##0 ~n := #in~n; 51428#L25 assume !(~n <= 0); 51377#L26 call #t~ret0 := fact(~n - 1);< 51426#$Ultimate##0 ~n := #in~n; 51437#L25 assume !(~n <= 0); 51373#L26 call #t~ret0 := fact(~n - 1);< 51386#$Ultimate##0 ~n := #in~n; 51516#L25 assume ~n <= 0;#res := 1; 51515#factFINAL assume true; 51510#factEXIT >#66#return; 51378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51385#factFINAL assume true; 51371#factEXIT >#66#return; 51381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51425#factFINAL assume true; 51408#factEXIT >#72#return; 51407#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 51400#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 51396#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 51395#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 51389#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 51365#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 51368#$Ultimate##0 ~n := #in~n; 51383#L25 assume !(~n <= 0); 51374#L26 call #t~ret0 := fact(~n - 1);< 51382#$Ultimate##0 ~n := #in~n; 51437#L25 assume !(~n <= 0); 51373#L26 call #t~ret0 := fact(~n - 1);< 51386#$Ultimate##0 ~n := #in~n; 51516#L25 assume ~n <= 0;#res := 1; 51515#factFINAL assume true; 51510#factEXIT >#66#return; 51378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51385#factFINAL assume true; 51371#factEXIT >#66#return; 51370#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51369#factFINAL assume true; 51363#factEXIT >#68#return; 51345#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 51360#$Ultimate##0 ~n := #in~n; 51496#L25 assume ~n <= 0;#res := 1; 51361#factFINAL assume true; 51339#factEXIT >#70#return; 51347#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 51388#$Ultimate##0 ~n := #in~n; 51497#L25 assume !(~n <= 0); 51375#L26 call #t~ret0 := fact(~n - 1);< 51382#$Ultimate##0 ~n := #in~n; 51436#L25 assume ~n <= 0;#res := 1; 51414#factFINAL assume true; 51402#factEXIT >#66#return; 51404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51387#factFINAL assume true; 51352#factEXIT >#72#return; 51357#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 51521#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 51520#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 51519#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 51518#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 51364#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 51368#$Ultimate##0 ~n := #in~n; 51383#L25 assume !(~n <= 0); 51374#L26 call #t~ret0 := fact(~n - 1);< 51382#$Ultimate##0 ~n := #in~n; 51437#L25 assume !(~n <= 0); 51373#L26 call #t~ret0 := fact(~n - 1);< 51386#$Ultimate##0 ~n := #in~n; 51516#L25 assume ~n <= 0;#res := 1; 51515#factFINAL assume true; 51510#factEXIT >#66#return; 51378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51385#factFINAL assume true; 51371#factEXIT >#66#return; 51370#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51369#factFINAL assume true; 51363#factEXIT >#68#return; 51343#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 51360#$Ultimate##0 ~n := #in~n; 51496#L25 assume !(~n <= 0); 51375#L26 call #t~ret0 := fact(~n - 1);< 51382#$Ultimate##0 ~n := #in~n; 51436#L25 assume ~n <= 0;#res := 1; 51414#factFINAL assume true; 51402#factEXIT >#66#return; 51404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 51387#factFINAL assume true; 51352#factEXIT >#70#return; 51346#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 51360#$Ultimate##0 ~n := #in~n; 51496#L25 assume ~n <= 0;#res := 1; 51361#factFINAL assume true; 51339#factEXIT >#72#return; 51327#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 51328#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 51189#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 51190#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 51181#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 51104#L30-5 [2023-02-18 08:56:00,978 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:00,978 INFO L85 PathProgramCache]: Analyzing trace with hash -897777039, now seen corresponding path program 9 times [2023-02-18 08:56:00,978 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:00,978 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [770834621] [2023-02-18 08:56:00,979 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:00,979 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:00,984 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:00,984 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2001246765] [2023-02-18 08:56:00,984 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:56:00,984 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:00,984 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:00,991 INFO L229 MonitoredProcess]: Starting monitored process 109 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:00,991 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (109)] Waiting until timeout for monitored process [2023-02-18 08:56:01,088 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 11 check-sat command(s) [2023-02-18 08:56:01,089 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:01,089 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:01,128 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:01,148 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:01,149 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:01,149 INFO L85 PathProgramCache]: Analyzing trace with hash -1352342650, now seen corresponding path program 11 times [2023-02-18 08:56:01,149 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:01,149 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [80612153] [2023-02-18 08:56:01,149 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:01,149 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:01,154 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:01,163 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1411876343] [2023-02-18 08:56:01,163 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:56:01,163 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:01,163 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:01,166 INFO L229 MonitoredProcess]: Starting monitored process 110 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:01,166 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (110)] Waiting until timeout for monitored process [2023-02-18 08:56:01,240 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 17 check-sat command(s) [2023-02-18 08:56:01,240 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:01,241 INFO L263 TraceCheckSpWp]: Trace formula consists of 237 conjuncts, 7 conjunts are in the unsatisfiable core [2023-02-18 08:56:01,242 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:01,264 INFO L134 CoverageAnalysis]: Checked inductivity of 1651 backedges. 779 proven. 2 refuted. 0 times theorem prover too weak. 870 trivial. 0 not checked. [2023-02-18 08:56:01,264 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:01,280 INFO L134 CoverageAnalysis]: Checked inductivity of 1651 backedges. 83 proven. 26 refuted. 0 times theorem prover too weak. 1542 trivial. 0 not checked. [2023-02-18 08:56:01,280 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:01,280 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [80612153] [2023-02-18 08:56:01,280 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:01,281 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1411876343] [2023-02-18 08:56:01,281 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1411876343] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:01,281 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:01,281 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 8 [2023-02-18 08:56:01,281 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1266797779] [2023-02-18 08:56:01,281 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:01,282 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:01,282 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:01,282 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2023-02-18 08:56:01,282 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=16, Invalid=40, Unknown=0, NotChecked=0, Total=56 [2023-02-18 08:56:01,282 INFO L87 Difference]: Start difference. First operand 549 states and 704 transitions. cyclomatic complexity: 170 Second operand has 8 states, 7 states have (on average 4.857142857142857) internal successors, (34), 8 states have internal predecessors, (34), 4 states have call successors, (16), 2 states have call predecessors, (16), 3 states have return successors, (16), 4 states have call predecessors, (16), 4 states have call successors, (16) [2023-02-18 08:56:01,362 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:01,362 INFO L93 Difference]: Finished difference Result 542 states and 687 transitions. [2023-02-18 08:56:01,362 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 542 states and 687 transitions. [2023-02-18 08:56:01,364 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 54 [2023-02-18 08:56:01,366 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 542 states to 541 states and 685 transitions. [2023-02-18 08:56:01,366 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 42 [2023-02-18 08:56:01,366 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 42 [2023-02-18 08:56:01,366 INFO L73 IsDeterministic]: Start isDeterministic. Operand 541 states and 685 transitions. [2023-02-18 08:56:01,367 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:01,367 INFO L218 hiAutomatonCegarLoop]: Abstraction has 541 states and 685 transitions. [2023-02-18 08:56:01,367 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 541 states and 685 transitions. [2023-02-18 08:56:01,372 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 541 to 533. [2023-02-18 08:56:01,373 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 533 states, 345 states have (on average 1.0869565217391304) internal successors, (375), 354 states have internal predecessors, (375), 112 states have call successors, (114), 58 states have call predecessors, (114), 76 states have return successors, (185), 120 states have call predecessors, (185), 112 states have call successors, (185) [2023-02-18 08:56:01,374 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 533 states to 533 states and 674 transitions. [2023-02-18 08:56:01,374 INFO L240 hiAutomatonCegarLoop]: Abstraction has 533 states and 674 transitions. [2023-02-18 08:56:01,374 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2023-02-18 08:56:01,374 INFO L428 stractBuchiCegarLoop]: Abstraction has 533 states and 674 transitions. [2023-02-18 08:56:01,374 INFO L335 stractBuchiCegarLoop]: ======== Iteration 24 ============ [2023-02-18 08:56:01,374 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 533 states and 674 transitions. [2023-02-18 08:56:01,376 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 54 [2023-02-18 08:56:01,376 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:01,376 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:01,377 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [26, 26, 15, 11, 11, 11, 11, 6, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:01,377 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [32, 32, 20, 20, 20, 20, 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-18 08:56:01,377 INFO L748 eck$LassoCheckResult]: Stem: 53317#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 53268#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; 53269#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 53292#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; 53282#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 53283#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 53633#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 53260#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 53261#$Ultimate##0 ~n := #in~n; 53638#L25 assume ~n <= 0;#res := 1; 53637#factFINAL assume true; 53636#factEXIT >#68#return; 53308#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 53309#$Ultimate##0 ~n := #in~n; 53643#L25 assume ~n <= 0;#res := 1; 53642#factFINAL assume true; 53641#factEXIT >#70#return; 53256#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 53257#$Ultimate##0 ~n := #in~n; 53674#L25 assume ~n <= 0;#res := 1; 53673#factFINAL assume true; 53672#factEXIT >#72#return; 53671#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 53669#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 53667#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 53303#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 53297#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 53248#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 53249#$Ultimate##0 ~n := #in~n; 53757#L25 assume !(~n <= 0); 53754#L26 call #t~ret0 := fact(~n - 1);< 53756#$Ultimate##0 ~n := #in~n; 53761#L25 assume ~n <= 0;#res := 1; 53758#factFINAL assume true; 53752#factEXIT >#66#return; 53750#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53748#factFINAL assume true; 53747#factEXIT >#74#return; 53681#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 53745#$Ultimate##0 ~n := #in~n; 53751#L25 assume ~n <= 0;#res := 1; 53749#factFINAL assume true; 53744#factEXIT >#76#return; 53266#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 53496#$Ultimate##0 ~n := #in~n; 53760#L25 assume !(~n <= 0); 53753#L26 call #t~ret0 := fact(~n - 1);< 53756#$Ultimate##0 ~n := #in~n; 53761#L25 assume ~n <= 0;#res := 1; 53758#factFINAL assume true; 53752#factEXIT >#66#return; 53755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53265#factFINAL assume true; 53267#factEXIT >#78#return; 53495#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 53477#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 53470#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 53452#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 53448#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 53443#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 53446#$Ultimate##0 ~n := #in~n; 53491#L25 assume !(~n <= 0); 53487#L26 call #t~ret0 := fact(~n - 1);< 53489#$Ultimate##0 ~n := #in~n; 53500#L25 assume !(~n <= 0); 53488#L26 call #t~ret0 := fact(~n - 1);< 53499#$Ultimate##0 ~n := #in~n; 53661#L25 assume ~n <= 0;#res := 1; 53660#factFINAL assume true; 53658#factEXIT >#66#return; 53659#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53497#factFINAL assume true; 53498#factEXIT >#66#return; 53483#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53482#factFINAL assume true; 53442#factEXIT >#74#return; 53440#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 53441#$Ultimate##0 ~n := #in~n; 53494#L25 assume ~n <= 0;#res := 1; 53485#factFINAL assume true; 53439#factEXIT >#76#return; 53343#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 53344#$Ultimate##0 ~n := #in~n; 53468#L25 assume !(~n <= 0); 53458#L26 call #t~ret0 := fact(~n - 1);< 53462#$Ultimate##0 ~n := #in~n; 53475#L25 assume !(~n <= 0); 53457#L26 call #t~ret0 := fact(~n - 1);< 53472#$Ultimate##0 ~n := #in~n; 53670#L25 assume ~n <= 0;#res := 1; 53668#factFINAL assume true; 53666#factEXIT >#66#return; 53665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53664#factFINAL assume true; 53465#factEXIT >#66#return; 53460#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53463#factFINAL assume true; 53454#factEXIT >#78#return; 53338#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 53336#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 53335#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 53334#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 53291#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 53284#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 53285#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 53295#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 53296#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 53259#$Ultimate##0 ~n := #in~n; 53626#L25 assume !(~n <= 0); 53540#L26 call #t~ret0 := fact(~n - 1);< 53546#$Ultimate##0 ~n := #in~n; 53590#L25 assume ~n <= 0;#res := 1; 53588#factFINAL assume true; 53584#factEXIT >#66#return; 53587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53625#factFINAL assume true; 53623#factEXIT >#68#return; 53619#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 53621#$Ultimate##0 ~n := #in~n; 53624#L25 assume ~n <= 0;#res := 1; 53622#factFINAL assume true; 53618#factEXIT >#70#return; 53589#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 53617#$Ultimate##0 ~n := #in~n; 53627#L25 assume !(~n <= 0); 53536#L26 call #t~ret0 := fact(~n - 1);< 53546#$Ultimate##0 ~n := #in~n; 53590#L25 assume ~n <= 0;#res := 1; 53588#factFINAL assume true; 53584#factEXIT >#66#return; 53585#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53778#factFINAL assume true; 53616#factEXIT >#72#return; 53615#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 53614#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 53613#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 53612#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 53611#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 53595#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 53597#$Ultimate##0 ~n := #in~n; 53607#L25 assume !(~n <= 0); 53539#L26 call #t~ret0 := fact(~n - 1);< 53546#$Ultimate##0 ~n := #in~n; 53556#L25 assume !(~n <= 0); 53541#L26 call #t~ret0 := fact(~n - 1);< 53553#$Ultimate##0 ~n := #in~n; 53561#L25 assume ~n <= 0;#res := 1; 53559#factFINAL assume true; 53552#factEXIT >#66#return; 53543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53549#factFINAL assume true; 53535#factEXIT >#66#return; 53544#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53605#factFINAL assume true; 53593#factEXIT >#68#return; 53516#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 53528#$Ultimate##0 ~n := #in~n; 53630#L25 assume !(~n <= 0); 53537#L26 call #t~ret0 := fact(~n - 1);< 53546#$Ultimate##0 ~n := #in~n; 53590#L25 assume ~n <= 0;#res := 1; 53588#factFINAL assume true; 53584#factEXIT >#66#return; 53583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53527#factFINAL assume true; 53515#factEXIT >#70#return; 53521#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 53528#$Ultimate##0 ~n := #in~n; 53630#L25 assume ~n <= 0;#res := 1; 53652#factFINAL assume true; 53650#factEXIT >#72#return; 53646#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 53647#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 53639#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 53640#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 53347#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 53246#L30-5 [2023-02-18 08:56:01,378 INFO L750 eck$LassoCheckResult]: Loop: 53246#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 53247#$Ultimate##0 ~n := #in~n; 53337#L25 assume !(~n <= 0); 53251#L26 call #t~ret0 := fact(~n - 1);< 53279#$Ultimate##0 ~n := #in~n; 53310#L25 assume !(~n <= 0); 53263#L26 call #t~ret0 := fact(~n - 1);< 53511#$Ultimate##0 ~n := #in~n; 53304#L25 assume ~n <= 0;#res := 1; 53262#factFINAL assume true; 53264#factEXIT >#66#return; 53506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53510#factFINAL assume true; 53505#factEXIT >#66#return; 53504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53503#factFINAL assume true; 53502#factEXIT >#74#return; 53275#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 53247#$Ultimate##0 ~n := #in~n; 53337#L25 assume !(~n <= 0); 53251#L26 call #t~ret0 := fact(~n - 1);< 53279#$Ultimate##0 ~n := #in~n; 53311#L25 assume ~n <= 0;#res := 1; 53548#factFINAL assume true; 53250#factEXIT >#66#return; 53252#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53299#factFINAL assume true; 53320#factEXIT >#76#return; 53276#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 53247#$Ultimate##0 ~n := #in~n; 53337#L25 assume !(~n <= 0); 53251#L26 call #t~ret0 := fact(~n - 1);< 53279#$Ultimate##0 ~n := #in~n; 53311#L25 assume ~n <= 0;#res := 1; 53548#factFINAL assume true; 53250#factEXIT >#66#return; 53252#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53299#factFINAL assume true; 53320#factEXIT >#78#return; 53270#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 53271#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 53293#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 53315#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 53289#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 53290#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 53301#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 53302#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 53258#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 53259#$Ultimate##0 ~n := #in~n; 53626#L25 assume !(~n <= 0); 53540#L26 call #t~ret0 := fact(~n - 1);< 53546#$Ultimate##0 ~n := #in~n; 53556#L25 assume !(~n <= 0); 53541#L26 call #t~ret0 := fact(~n - 1);< 53553#$Ultimate##0 ~n := #in~n; 53561#L25 assume ~n <= 0;#res := 1; 53559#factFINAL assume true; 53552#factEXIT >#66#return; 53543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53549#factFINAL assume true; 53535#factEXIT >#66#return; 53545#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53632#factFINAL assume true; 53631#factEXIT >#68#return; 53620#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 53621#$Ultimate##0 ~n := #in~n; 53624#L25 assume ~n <= 0;#res := 1; 53622#factFINAL assume true; 53618#factEXIT >#70#return; 53550#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 53608#$Ultimate##0 ~n := #in~n; 53598#L25 assume !(~n <= 0); 53538#L26 call #t~ret0 := fact(~n - 1);< 53551#$Ultimate##0 ~n := #in~n; 53556#L25 assume !(~n <= 0); 53541#L26 call #t~ret0 := fact(~n - 1);< 53553#$Ultimate##0 ~n := #in~n; 53561#L25 assume ~n <= 0;#res := 1; 53559#factFINAL assume true; 53552#factEXIT >#66#return; 53543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53549#factFINAL assume true; 53535#factEXIT >#66#return; 53542#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53628#factFINAL assume true; 53629#factEXIT >#72#return; 53287#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 53288#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 53298#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 53316#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 53662#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 53594#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 53597#$Ultimate##0 ~n := #in~n; 53607#L25 assume !(~n <= 0); 53539#L26 call #t~ret0 := fact(~n - 1);< 53546#$Ultimate##0 ~n := #in~n; 53556#L25 assume !(~n <= 0); 53541#L26 call #t~ret0 := fact(~n - 1);< 53553#$Ultimate##0 ~n := #in~n; 53561#L25 assume ~n <= 0;#res := 1; 53559#factFINAL assume true; 53552#factEXIT >#66#return; 53543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53549#factFINAL assume true; 53535#factEXIT >#66#return; 53544#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53605#factFINAL assume true; 53593#factEXIT >#68#return; 53517#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 53528#$Ultimate##0 ~n := #in~n; 53630#L25 assume !(~n <= 0); 53537#L26 call #t~ret0 := fact(~n - 1);< 53546#$Ultimate##0 ~n := #in~n; 53556#L25 assume !(~n <= 0); 53541#L26 call #t~ret0 := fact(~n - 1);< 53553#$Ultimate##0 ~n := #in~n; 53561#L25 assume ~n <= 0;#res := 1; 53559#factFINAL assume true; 53552#factEXIT >#66#return; 53543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53549#factFINAL assume true; 53535#factEXIT >#66#return; 53534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53533#factFINAL assume true; 53529#factEXIT >#70#return; 53520#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 53528#$Ultimate##0 ~n := #in~n; 53630#L25 assume !(~n <= 0); 53537#L26 call #t~ret0 := fact(~n - 1);< 53546#$Ultimate##0 ~n := #in~n; 53556#L25 assume !(~n <= 0); 53541#L26 call #t~ret0 := fact(~n - 1);< 53553#$Ultimate##0 ~n := #in~n; 53561#L25 assume ~n <= 0;#res := 1; 53559#factFINAL assume true; 53552#factEXIT >#66#return; 53543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53549#factFINAL assume true; 53535#factEXIT >#66#return; 53534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53533#factFINAL assume true; 53529#factEXIT >#72#return; 53525#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 53657#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 53656#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 53655#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 53654#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 53596#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 53597#$Ultimate##0 ~n := #in~n; 53607#L25 assume !(~n <= 0); 53539#L26 call #t~ret0 := fact(~n - 1);< 53546#$Ultimate##0 ~n := #in~n; 53556#L25 assume !(~n <= 0); 53541#L26 call #t~ret0 := fact(~n - 1);< 53553#$Ultimate##0 ~n := #in~n; 53561#L25 assume ~n <= 0;#res := 1; 53559#factFINAL assume true; 53552#factEXIT >#66#return; 53543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53549#factFINAL assume true; 53535#factEXIT >#66#return; 53544#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53605#factFINAL assume true; 53593#factEXIT >#68#return; 53516#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 53528#$Ultimate##0 ~n := #in~n; 53630#L25 assume !(~n <= 0); 53537#L26 call #t~ret0 := fact(~n - 1);< 53546#$Ultimate##0 ~n := #in~n; 53556#L25 assume !(~n <= 0); 53541#L26 call #t~ret0 := fact(~n - 1);< 53553#$Ultimate##0 ~n := #in~n; 53561#L25 assume ~n <= 0;#res := 1; 53559#factFINAL assume true; 53552#factEXIT >#66#return; 53543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53549#factFINAL assume true; 53535#factEXIT >#66#return; 53534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53533#factFINAL assume true; 53529#factEXIT >#70#return; 53521#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 53528#$Ultimate##0 ~n := #in~n; 53630#L25 assume !(~n <= 0); 53537#L26 call #t~ret0 := fact(~n - 1);< 53546#$Ultimate##0 ~n := #in~n; 53556#L25 assume !(~n <= 0); 53541#L26 call #t~ret0 := fact(~n - 1);< 53553#$Ultimate##0 ~n := #in~n; 53561#L25 assume ~n <= 0;#res := 1; 53559#factFINAL assume true; 53552#factEXIT >#66#return; 53543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53549#factFINAL assume true; 53535#factEXIT >#66#return; 53534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53533#factFINAL assume true; 53529#factEXIT >#72#return; 53526#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 53644#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 53645#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 53634#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 53635#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 53246#L30-5 [2023-02-18 08:56:01,378 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:01,378 INFO L85 PathProgramCache]: Analyzing trace with hash 1888665529, now seen corresponding path program 10 times [2023-02-18 08:56:01,378 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:01,378 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1136965809] [2023-02-18 08:56:01,378 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:01,378 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:01,384 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:01,384 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1005842194] [2023-02-18 08:56:01,384 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:56:01,384 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:01,384 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:01,387 INFO L229 MonitoredProcess]: Starting monitored process 111 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:01,387 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (111)] Waiting until timeout for monitored process [2023-02-18 08:56:01,466 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:56:01,466 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:01,468 INFO L263 TraceCheckSpWp]: Trace formula consists of 418 conjuncts, 9 conjunts are in the unsatisfiable core [2023-02-18 08:56:01,470 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:01,486 INFO L134 CoverageAnalysis]: Checked inductivity of 1477 backedges. 478 proven. 28 refuted. 0 times theorem prover too weak. 971 trivial. 0 not checked. [2023-02-18 08:56:01,486 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:01,514 INFO L134 CoverageAnalysis]: Checked inductivity of 1477 backedges. 182 proven. 51 refuted. 0 times theorem prover too weak. 1244 trivial. 0 not checked. [2023-02-18 08:56:01,514 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:01,514 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1136965809] [2023-02-18 08:56:01,514 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:01,514 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1005842194] [2023-02-18 08:56:01,515 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1005842194] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:01,515 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:01,515 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 9] total 10 [2023-02-18 08:56:01,515 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1145063999] [2023-02-18 08:56:01,515 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:01,515 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:56:01,515 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:01,515 INFO L85 PathProgramCache]: Analyzing trace with hash 1162411966, now seen corresponding path program 12 times [2023-02-18 08:56:01,515 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:01,515 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [257718699] [2023-02-18 08:56:01,515 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:01,516 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:01,520 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:01,520 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1057313310] [2023-02-18 08:56:01,520 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:56:01,520 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:01,520 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:01,523 INFO L229 MonitoredProcess]: Starting monitored process 112 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:01,524 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (112)] Waiting until timeout for monitored process [2023-02-18 08:56:01,610 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 25 check-sat command(s) [2023-02-18 08:56:01,610 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:01,612 INFO L263 TraceCheckSpWp]: Trace formula consists of 300 conjuncts, 19 conjunts are in the unsatisfiable core [2023-02-18 08:56:01,614 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:01,669 INFO L134 CoverageAnalysis]: Checked inductivity of 2401 backedges. 423 proven. 278 refuted. 0 times theorem prover too weak. 1700 trivial. 0 not checked. [2023-02-18 08:56:01,669 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:01,782 INFO L134 CoverageAnalysis]: Checked inductivity of 2401 backedges. 424 proven. 283 refuted. 0 times theorem prover too weak. 1694 trivial. 0 not checked. [2023-02-18 08:56:01,782 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:01,782 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [257718699] [2023-02-18 08:56:01,782 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:01,782 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1057313310] [2023-02-18 08:56:01,782 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1057313310] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:01,782 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:01,782 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 16] total 20 [2023-02-18 08:56:01,782 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2110903102] [2023-02-18 08:56:01,782 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:01,783 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:01,783 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:01,783 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2023-02-18 08:56:01,783 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=66, Unknown=0, NotChecked=0, Total=90 [2023-02-18 08:56:01,783 INFO L87 Difference]: Start difference. First operand 533 states and 674 transitions. cyclomatic complexity: 156 Second operand has 10 states, 9 states have (on average 5.333333333333333) internal successors, (48), 10 states have internal predecessors, (48), 8 states have call successors, (19), 2 states have call predecessors, (19), 4 states have return successors, (19), 6 states have call predecessors, (19), 8 states have call successors, (19) [2023-02-18 08:56:01,949 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:01,949 INFO L93 Difference]: Finished difference Result 663 states and 893 transitions. [2023-02-18 08:56:01,950 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 663 states and 893 transitions. [2023-02-18 08:56:01,952 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 54 [2023-02-18 08:56:01,955 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 663 states to 663 states and 893 transitions. [2023-02-18 08:56:01,955 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 59 [2023-02-18 08:56:01,955 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 59 [2023-02-18 08:56:01,955 INFO L73 IsDeterministic]: Start isDeterministic. Operand 663 states and 893 transitions. [2023-02-18 08:56:01,955 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:01,956 INFO L218 hiAutomatonCegarLoop]: Abstraction has 663 states and 893 transitions. [2023-02-18 08:56:01,956 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 663 states and 893 transitions. [2023-02-18 08:56:01,963 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 663 to 561. [2023-02-18 08:56:01,963 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 561 states, 365 states have (on average 1.0876712328767124) internal successors, (397), 375 states have internal predecessors, (397), 120 states have call successors, (122), 58 states have call predecessors, (122), 76 states have return successors, (195), 127 states have call predecessors, (195), 120 states have call successors, (195) [2023-02-18 08:56:01,965 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 561 states to 561 states and 714 transitions. [2023-02-18 08:56:01,965 INFO L240 hiAutomatonCegarLoop]: Abstraction has 561 states and 714 transitions. [2023-02-18 08:56:01,965 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2023-02-18 08:56:01,965 INFO L428 stractBuchiCegarLoop]: Abstraction has 561 states and 714 transitions. [2023-02-18 08:56:01,966 INFO L335 stractBuchiCegarLoop]: ======== Iteration 25 ============ [2023-02-18 08:56:01,966 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 561 states and 714 transitions. [2023-02-18 08:56:01,967 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 54 [2023-02-18 08:56:01,967 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:01,967 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:01,968 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [25, 25, 15, 10, 10, 10, 10, 6, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:01,968 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [28, 28, 16, 16, 16, 16, 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-18 08:56:01,968 INFO L748 eck$LassoCheckResult]: Stem: 56818#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 56773#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; 56774#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 56797#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; 56819#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 57141#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 57140#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 57138#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 57139#$Ultimate##0 ~n := #in~n; 57143#L25 assume ~n <= 0;#res := 1; 57142#factFINAL assume true; 57137#factEXIT >#68#return; 57132#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 57133#$Ultimate##0 ~n := #in~n; 57151#L25 assume ~n <= 0;#res := 1; 57150#factFINAL assume true; 57131#factEXIT >#70#return; 57114#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 57115#$Ultimate##0 ~n := #in~n; 57119#L25 assume ~n <= 0;#res := 1; 57118#factFINAL assume true; 57113#factEXIT >#72#return; 57110#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 57109#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 57108#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 57100#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 57095#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 57088#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 57093#$Ultimate##0 ~n := #in~n; 57117#L25 assume !(~n <= 0); 57103#L26 call #t~ret0 := fact(~n - 1);< 57105#$Ultimate##0 ~n := #in~n; 57116#L25 assume ~n <= 0;#res := 1; 57111#factFINAL assume true; 57101#factEXIT >#66#return; 57096#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57094#factFINAL assume true; 57087#factEXIT >#74#return; 57081#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 57083#$Ultimate##0 ~n := #in~n; 57163#L25 assume ~n <= 0;#res := 1; 57161#factFINAL assume true; 57080#factEXIT >#76#return; 57082#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 57122#$Ultimate##0 ~n := #in~n; 57120#L25 assume !(~n <= 0); 57102#L26 call #t~ret0 := fact(~n - 1);< 57105#$Ultimate##0 ~n := #in~n; 57116#L25 assume ~n <= 0;#res := 1; 57111#factFINAL assume true; 57101#factEXIT >#66#return; 57104#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57147#factFINAL assume true; 57144#factEXIT >#78#return; 57022#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 57020#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 57006#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 56998#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 56995#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 56971#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 56973#$Ultimate##0 ~n := #in~n; 56987#L25 assume !(~n <= 0); 56983#L26 call #t~ret0 := fact(~n - 1);< 56985#$Ultimate##0 ~n := #in~n; 57043#L25 assume !(~n <= 0); 56984#L26 call #t~ret0 := fact(~n - 1);< 57042#$Ultimate##0 ~n := #in~n; 57052#L25 assume ~n <= 0;#res := 1; 57051#factFINAL assume true; 57049#factEXIT >#66#return; 57050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57040#factFINAL assume true; 57041#factEXIT >#66#return; 56979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 56978#factFINAL assume true; 56970#factEXIT >#74#return; 56964#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 56965#$Ultimate##0 ~n := #in~n; 57031#L25 assume ~n <= 0;#res := 1; 57030#factFINAL assume true; 56963#factEXIT >#76#return; 56961#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 56962#$Ultimate##0 ~n := #in~n; 57017#L25 assume !(~n <= 0); 57002#L26 call #t~ret0 := fact(~n - 1);< 57005#$Ultimate##0 ~n := #in~n; 57016#L25 assume !(~n <= 0); 57001#L26 call #t~ret0 := fact(~n - 1);< 57014#$Ultimate##0 ~n := #in~n; 57029#L25 assume ~n <= 0;#res := 1; 57028#factFINAL assume true; 57027#factEXIT >#66#return; 57023#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57021#factFINAL assume true; 57019#factEXIT >#66#return; 57003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57048#factFINAL assume true; 56960#factEXIT >#78#return; 56959#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 56958#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 56957#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 56956#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 56795#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 56796#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 56951#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 57282#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 57280#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 56770#$Ultimate##0 ~n := #in~n; 57286#L25 assume !(~n <= 0); 57233#L26 call #t~ret0 := fact(~n - 1);< 57240#$Ultimate##0 ~n := #in~n; 57255#L25 assume ~n <= 0;#res := 1; 57253#factFINAL assume true; 57249#factEXIT >#66#return; 57250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57284#factFINAL assume true; 57279#factEXIT >#68#return; 57277#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 56814#$Ultimate##0 ~n := #in~n; 57283#L25 assume ~n <= 0;#res := 1; 57281#factFINAL assume true; 57276#factEXIT >#70#return; 56766#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 57275#$Ultimate##0 ~n := #in~n; 57289#L25 assume !(~n <= 0); 57234#L26 call #t~ret0 := fact(~n - 1);< 57240#$Ultimate##0 ~n := #in~n; 57255#L25 assume ~n <= 0;#res := 1; 57253#factFINAL assume true; 57249#factEXIT >#66#return; 57251#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 56765#factFINAL assume true; 56768#factEXIT >#72#return; 57274#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 57263#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 57264#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 57258#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 57259#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 57244#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 56772#$Ultimate##0 ~n := #in~n; 57254#L25 assume !(~n <= 0); 57236#L26 call #t~ret0 := fact(~n - 1);< 57240#$Ultimate##0 ~n := #in~n; 57255#L25 assume ~n <= 0;#res := 1; 57253#factFINAL assume true; 57249#factEXIT >#66#return; 57248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57247#factFINAL assume true; 57243#factEXIT >#68#return; 56754#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 57229#$Ultimate##0 ~n := #in~n; 57242#L25 assume !(~n <= 0); 57235#L26 call #t~ret0 := fact(~n - 1);< 57240#$Ultimate##0 ~n := #in~n; 57255#L25 assume ~n <= 0;#res := 1; 57253#factFINAL assume true; 57249#factEXIT >#66#return; 57252#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57306#factFINAL assume true; 57222#factEXIT >#70#return; 56757#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 56761#$Ultimate##0 ~n := #in~n; 56809#L25 assume ~n <= 0;#res := 1; 56810#factFINAL assume true; 56753#factEXIT >#72#return; 56760#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 56793#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 56806#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 57305#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 57304#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 56779#L30-5 [2023-02-18 08:56:01,968 INFO L750 eck$LassoCheckResult]: Loop: 56779#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 56747#$Ultimate##0 ~n := #in~n; 56821#L25 assume !(~n <= 0); 56763#L26 call #t~ret0 := fact(~n - 1);< 56784#$Ultimate##0 ~n := #in~n; 56815#L25 assume !(~n <= 0); 56751#L26 call #t~ret0 := fact(~n - 1);< 56901#$Ultimate##0 ~n := #in~n; 56904#L25 assume ~n <= 0;#res := 1; 56902#factFINAL assume true; 56750#factEXIT >#66#return; 56752#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 56762#factFINAL assume true; 56764#factEXIT >#66#return; 56900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 56836#factFINAL assume true; 56837#factEXIT >#74#return; 56783#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 56747#$Ultimate##0 ~n := #in~n; 56821#L25 assume !(~n <= 0); 56763#L26 call #t~ret0 := fact(~n - 1);< 56784#$Ultimate##0 ~n := #in~n; 56815#L25 assume !(~n <= 0); 56751#L26 call #t~ret0 := fact(~n - 1);< 56901#$Ultimate##0 ~n := #in~n; 56904#L25 assume ~n <= 0;#res := 1; 56902#factFINAL assume true; 56750#factEXIT >#66#return; 56752#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 56762#factFINAL assume true; 56764#factEXIT >#66#return; 56900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 56836#factFINAL assume true; 56837#factEXIT >#76#return; 56781#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 56747#$Ultimate##0 ~n := #in~n; 56821#L25 assume !(~n <= 0); 56763#L26 call #t~ret0 := fact(~n - 1);< 56784#$Ultimate##0 ~n := #in~n; 56807#L25 assume ~n <= 0;#res := 1; 56808#factFINAL assume true; 56849#factEXIT >#66#return; 56840#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 56841#factFINAL assume true; 56822#factEXIT >#78#return; 56775#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 56776#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 56798#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 56817#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 56794#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 56788#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 56789#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 56811#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 56769#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 56770#$Ultimate##0 ~n := #in~n; 57286#L25 assume !(~n <= 0); 57233#L26 call #t~ret0 := fact(~n - 1);< 57240#$Ultimate##0 ~n := #in~n; 57256#L25 assume !(~n <= 0); 57232#L26 call #t~ret0 := fact(~n - 1);< 57269#$Ultimate##0 ~n := #in~n; 57271#L25 assume ~n <= 0;#res := 1; 57270#factFINAL assume true; 57268#factEXIT >#66#return; 57238#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57262#factFINAL assume true; 57231#factEXIT >#66#return; 57237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57288#factFINAL assume true; 57287#factEXIT >#68#return; 56813#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 56814#$Ultimate##0 ~n := #in~n; 57283#L25 assume ~n <= 0;#res := 1; 57281#factFINAL assume true; 57276#factEXIT >#70#return; 56786#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 57290#$Ultimate##0 ~n := #in~n; 57285#L25 assume !(~n <= 0); 56785#L26 call #t~ret0 := fact(~n - 1);< 56787#$Ultimate##0 ~n := #in~n; 57256#L25 assume !(~n <= 0); 57232#L26 call #t~ret0 := fact(~n - 1);< 57269#$Ultimate##0 ~n := #in~n; 57271#L25 assume ~n <= 0;#res := 1; 57270#factFINAL assume true; 57268#factEXIT >#66#return; 57238#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57262#factFINAL assume true; 57231#factEXIT >#66#return; 56804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 56805#factFINAL assume true; 57296#factEXIT >#72#return; 57295#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 57294#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 57293#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 57292#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 57265#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 57246#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 56772#$Ultimate##0 ~n := #in~n; 57254#L25 assume !(~n <= 0); 57236#L26 call #t~ret0 := fact(~n - 1);< 57240#$Ultimate##0 ~n := #in~n; 57256#L25 assume !(~n <= 0); 57232#L26 call #t~ret0 := fact(~n - 1);< 57269#$Ultimate##0 ~n := #in~n; 57271#L25 assume ~n <= 0;#res := 1; 57270#factFINAL assume true; 57268#factEXIT >#66#return; 57238#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57262#factFINAL assume true; 57231#factEXIT >#66#return; 57239#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57273#factFINAL assume true; 57272#factEXIT >#68#return; 56756#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 57229#$Ultimate##0 ~n := #in~n; 57242#L25 assume !(~n <= 0); 57235#L26 call #t~ret0 := fact(~n - 1);< 57240#$Ultimate##0 ~n := #in~n; 57255#L25 assume ~n <= 0;#res := 1; 57253#factFINAL assume true; 57249#factEXIT >#66#return; 57252#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57306#factFINAL assume true; 57222#factEXIT >#70#return; 56759#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 57229#$Ultimate##0 ~n := #in~n; 57242#L25 assume !(~n <= 0); 57235#L26 call #t~ret0 := fact(~n - 1);< 57240#$Ultimate##0 ~n := #in~n; 57255#L25 assume ~n <= 0;#res := 1; 57253#factFINAL assume true; 57249#factEXIT >#66#return; 57252#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57306#factFINAL assume true; 57222#factEXIT >#72#return; 57226#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 57303#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 57299#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 57300#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 57291#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 56771#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 56772#$Ultimate##0 ~n := #in~n; 57254#L25 assume !(~n <= 0); 57236#L26 call #t~ret0 := fact(~n - 1);< 57240#$Ultimate##0 ~n := #in~n; 57256#L25 assume !(~n <= 0); 57232#L26 call #t~ret0 := fact(~n - 1);< 57269#$Ultimate##0 ~n := #in~n; 57271#L25 assume ~n <= 0;#res := 1; 57270#factFINAL assume true; 57268#factEXIT >#66#return; 57238#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57262#factFINAL assume true; 57231#factEXIT >#66#return; 57239#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57273#factFINAL assume true; 57272#factEXIT >#68#return; 56755#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 57229#$Ultimate##0 ~n := #in~n; 57242#L25 assume !(~n <= 0); 57235#L26 call #t~ret0 := fact(~n - 1);< 57240#$Ultimate##0 ~n := #in~n; 57255#L25 assume ~n <= 0;#res := 1; 57253#factFINAL assume true; 57249#factEXIT >#66#return; 57252#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57306#factFINAL assume true; 57222#factEXIT >#70#return; 56758#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 57229#$Ultimate##0 ~n := #in~n; 57242#L25 assume ~n <= 0;#res := 1; 56810#factFINAL assume true; 56753#factEXIT >#72#return; 56760#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 56793#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 56806#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 57305#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 57304#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 56779#L30-5 [2023-02-18 08:56:01,969 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:01,969 INFO L85 PathProgramCache]: Analyzing trace with hash -897777039, now seen corresponding path program 11 times [2023-02-18 08:56:01,969 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:01,969 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1584798797] [2023-02-18 08:56:01,969 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:01,969 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:01,974 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:01,974 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1581388996] [2023-02-18 08:56:01,974 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:56:01,974 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:01,975 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:01,977 INFO L229 MonitoredProcess]: Starting monitored process 113 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:01,978 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (113)] Waiting until timeout for monitored process [2023-02-18 08:56:02,076 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 11 check-sat command(s) [2023-02-18 08:56:02,077 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:02,077 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:02,123 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:02,145 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:02,145 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:02,145 INFO L85 PathProgramCache]: Analyzing trace with hash -802620978, now seen corresponding path program 13 times [2023-02-18 08:56:02,145 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:02,145 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [949856844] [2023-02-18 08:56:02,145 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:02,145 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:02,150 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:02,150 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1712731378] [2023-02-18 08:56:02,150 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:56:02,150 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:02,150 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:02,153 INFO L229 MonitoredProcess]: Starting monitored process 114 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:02,154 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (114)] Waiting until timeout for monitored process [2023-02-18 08:56:02,230 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:56:02,232 INFO L263 TraceCheckSpWp]: Trace formula consists of 404 conjuncts, 15 conjunts are in the unsatisfiable core [2023-02-18 08:56:02,233 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:02,262 INFO L134 CoverageAnalysis]: Checked inductivity of 1789 backedges. 762 proven. 78 refuted. 0 times theorem prover too weak. 949 trivial. 0 not checked. [2023-02-18 08:56:02,262 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:02,333 INFO L134 CoverageAnalysis]: Checked inductivity of 1789 backedges. 12 proven. 554 refuted. 0 times theorem prover too weak. 1223 trivial. 0 not checked. [2023-02-18 08:56:02,333 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:02,333 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [949856844] [2023-02-18 08:56:02,334 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:02,334 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1712731378] [2023-02-18 08:56:02,334 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1712731378] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:02,334 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:02,334 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 14] total 17 [2023-02-18 08:56:02,334 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [468844544] [2023-02-18 08:56:02,334 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:02,335 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:02,335 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:02,335 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 17 interpolants. [2023-02-18 08:56:02,336 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=51, Invalid=221, Unknown=0, NotChecked=0, Total=272 [2023-02-18 08:56:02,336 INFO L87 Difference]: Start difference. First operand 561 states and 714 transitions. cyclomatic complexity: 168 Second operand has 17 states, 14 states have (on average 3.2857142857142856) internal successors, (46), 14 states have internal predecessors, (46), 11 states have call successors, (18), 2 states have call predecessors, (18), 7 states have return successors, (20), 9 states have call predecessors, (20), 11 states have call successors, (20) [2023-02-18 08:56:02,587 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:02,587 INFO L93 Difference]: Finished difference Result 800 states and 1124 transitions. [2023-02-18 08:56:02,587 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 800 states and 1124 transitions. [2023-02-18 08:56:02,590 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 107 [2023-02-18 08:56:02,614 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 800 states to 782 states and 1084 transitions. [2023-02-18 08:56:02,614 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 70 [2023-02-18 08:56:02,614 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 70 [2023-02-18 08:56:02,614 INFO L73 IsDeterministic]: Start isDeterministic. Operand 782 states and 1084 transitions. [2023-02-18 08:56:02,614 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:02,614 INFO L218 hiAutomatonCegarLoop]: Abstraction has 782 states and 1084 transitions. [2023-02-18 08:56:02,615 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 782 states and 1084 transitions. [2023-02-18 08:56:02,624 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 782 to 606. [2023-02-18 08:56:02,625 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 606 states, 385 states have (on average 1.0831168831168831) internal successors, (417), 395 states have internal predecessors, (417), 135 states have call successors, (137), 58 states have call predecessors, (137), 86 states have return successors, (276), 152 states have call predecessors, (276), 135 states have call successors, (276) [2023-02-18 08:56:02,626 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 606 states to 606 states and 830 transitions. [2023-02-18 08:56:02,626 INFO L240 hiAutomatonCegarLoop]: Abstraction has 606 states and 830 transitions. [2023-02-18 08:56:02,627 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2023-02-18 08:56:02,627 INFO L428 stractBuchiCegarLoop]: Abstraction has 606 states and 830 transitions. [2023-02-18 08:56:02,627 INFO L335 stractBuchiCegarLoop]: ======== Iteration 26 ============ [2023-02-18 08:56:02,627 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 606 states and 830 transitions. [2023-02-18 08:56:02,629 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 61 [2023-02-18 08:56:02,629 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:02,629 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:02,630 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [25, 25, 15, 10, 10, 10, 10, 6, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:02,630 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [32, 32, 20, 20, 20, 20, 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-18 08:56:02,630 INFO L748 eck$LassoCheckResult]: Stem: 59288#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 59238#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; 59239#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 59264#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; 59255#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 59256#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 59692#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 59232#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 59233#$Ultimate##0 ~n := #in~n; 59719#L25 assume ~n <= 0;#res := 1; 59716#factFINAL assume true; 59712#factEXIT >#68#return; 59281#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 59282#$Ultimate##0 ~n := #in~n; 59708#L25 assume ~n <= 0;#res := 1; 59706#factFINAL assume true; 59703#factEXIT >#70#return; 59699#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 59700#$Ultimate##0 ~n := #in~n; 59705#L25 assume ~n <= 0;#res := 1; 59702#factFINAL assume true; 59698#factEXIT >#72#return; 59696#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 59695#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 59693#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 59694#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 59269#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 59214#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 59215#$Ultimate##0 ~n := #in~n; 59764#L25 assume !(~n <= 0); 59759#L26 call #t~ret0 := fact(~n - 1);< 59762#$Ultimate##0 ~n := #in~n; 59766#L25 assume ~n <= 0;#res := 1; 59763#factFINAL assume true; 59758#factEXIT >#66#return; 59757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59756#factFINAL assume true; 59754#factEXIT >#74#return; 59592#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 59594#$Ultimate##0 ~n := #in~n; 59808#L25 assume ~n <= 0;#res := 1; 59806#factFINAL assume true; 59804#factEXIT >#76#return; 59569#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 59570#$Ultimate##0 ~n := #in~n; 59765#L25 assume !(~n <= 0); 59760#L26 call #t~ret0 := fact(~n - 1);< 59762#$Ultimate##0 ~n := #in~n; 59766#L25 assume ~n <= 0;#res := 1; 59763#factFINAL assume true; 59758#factEXIT >#66#return; 59761#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59769#factFINAL assume true; 59768#factEXIT >#78#return; 59559#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 59556#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 59551#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 59545#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 59515#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 59509#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 59511#$Ultimate##0 ~n := #in~n; 59550#L25 assume !(~n <= 0); 59548#L26 call #t~ret0 := fact(~n - 1);< 59549#$Ultimate##0 ~n := #in~n; 59555#L25 assume !(~n <= 0); 59547#L26 call #t~ret0 := fact(~n - 1);< 59554#$Ultimate##0 ~n := #in~n; 59565#L25 assume ~n <= 0;#res := 1; 59564#factFINAL assume true; 59560#factEXIT >#66#return; 59561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59552#factFINAL assume true; 59553#factEXIT >#66#return; 59544#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59543#factFINAL assume true; 59508#factEXIT >#74#return; 59497#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 59498#$Ultimate##0 ~n := #in~n; 59526#L25 assume ~n <= 0;#res := 1; 59525#factFINAL assume true; 59496#factEXIT >#76#return; 59465#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 59466#$Ultimate##0 ~n := #in~n; 59563#L25 assume !(~n <= 0); 59521#L26 call #t~ret0 := fact(~n - 1);< 59524#$Ultimate##0 ~n := #in~n; 59532#L25 assume !(~n <= 0); 59519#L26 call #t~ret0 := fact(~n - 1);< 59531#$Ultimate##0 ~n := #in~n; 59540#L25 assume ~n <= 0;#res := 1; 59539#factFINAL assume true; 59538#factEXIT >#66#return; 59537#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59536#factFINAL assume true; 59535#factEXIT >#66#return; 59522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59578#factFINAL assume true; 59464#factEXIT >#78#return; 59462#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 59460#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 59458#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 59457#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 59456#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 59454#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 59455#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 59657#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 59230#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 59231#$Ultimate##0 ~n := #in~n; 59662#L25 assume !(~n <= 0); 59601#L26 call #t~ret0 := fact(~n - 1);< 59610#$Ultimate##0 ~n := #in~n; 59629#L25 assume ~n <= 0;#res := 1; 59624#factFINAL assume true; 59620#factEXIT >#66#return; 59622#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59660#factFINAL assume true; 59659#factEXIT >#68#return; 59648#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 59652#$Ultimate##0 ~n := #in~n; 59658#L25 assume ~n <= 0;#res := 1; 59656#factFINAL assume true; 59646#factEXIT >#70#return; 59651#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 59670#$Ultimate##0 ~n := #in~n; 59664#L25 assume !(~n <= 0); 59603#L26 call #t~ret0 := fact(~n - 1);< 59610#$Ultimate##0 ~n := #in~n; 59629#L25 assume ~n <= 0;#res := 1; 59624#factFINAL assume true; 59620#factEXIT >#66#return; 59623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59688#factFINAL assume true; 59685#factEXIT >#72#return; 59684#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 59683#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 59681#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 59679#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 59677#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 59628#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 59665#$Ultimate##0 ~n := #in~n; 59666#L25 assume !(~n <= 0); 59599#L26 call #t~ret0 := fact(~n - 1);< 59610#$Ultimate##0 ~n := #in~n; 59629#L25 assume ~n <= 0;#res := 1; 59624#factFINAL assume true; 59620#factEXIT >#66#return; 59621#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59710#factFINAL assume true; 59697#factEXIT >#68#return; 59226#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 59590#$Ultimate##0 ~n := #in~n; 59612#L25 assume !(~n <= 0); 59600#L26 call #t~ret0 := fact(~n - 1);< 59610#$Ultimate##0 ~n := #in~n; 59629#L25 assume ~n <= 0;#res := 1; 59624#factFINAL assume true; 59620#factEXIT >#66#return; 59619#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59618#factFINAL assume true; 59579#factEXIT >#70#return; 59222#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 59229#$Ultimate##0 ~n := #in~n; 59280#L25 assume ~n <= 0;#res := 1; 59237#factFINAL assume true; 59219#factEXIT >#72#return; 59228#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 59260#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 59270#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 59287#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 59292#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 59212#L30-5 [2023-02-18 08:56:02,631 INFO L750 eck$LassoCheckResult]: Loop: 59212#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 59213#$Ultimate##0 ~n := #in~n; 59291#L25 assume !(~n <= 0); 59217#L26 call #t~ret0 := fact(~n - 1);< 59251#$Ultimate##0 ~n := #in~n; 59283#L25 assume !(~n <= 0); 59235#L26 call #t~ret0 := fact(~n - 1);< 59484#$Ultimate##0 ~n := #in~n; 59485#L25 assume ~n <= 0;#res := 1; 59234#factFINAL assume true; 59236#factEXIT >#66#return; 59576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59817#factFINAL assume true; 59816#factEXIT >#66#return; 59815#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59814#factFINAL assume true; 59812#factEXIT >#74#return; 59248#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 59213#$Ultimate##0 ~n := #in~n; 59291#L25 assume !(~n <= 0); 59217#L26 call #t~ret0 := fact(~n - 1);< 59251#$Ultimate##0 ~n := #in~n; 59278#L25 assume ~n <= 0;#res := 1; 59279#factFINAL assume true; 59216#factEXIT >#66#return; 59218#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59813#factFINAL assume true; 59294#factEXIT >#76#return; 59244#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 59213#$Ultimate##0 ~n := #in~n; 59291#L25 assume !(~n <= 0); 59217#L26 call #t~ret0 := fact(~n - 1);< 59251#$Ultimate##0 ~n := #in~n; 59278#L25 assume ~n <= 0;#res := 1; 59279#factFINAL assume true; 59216#factEXIT >#66#return; 59218#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59813#factFINAL assume true; 59294#factEXIT >#78#return; 59240#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 59241#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 59265#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 59286#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 59261#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 59262#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 59663#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 59661#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 59655#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 59231#$Ultimate##0 ~n := #in~n; 59662#L25 assume !(~n <= 0); 59601#L26 call #t~ret0 := fact(~n - 1);< 59610#$Ultimate##0 ~n := #in~n; 59630#L25 assume !(~n <= 0); 59602#L26 call #t~ret0 := fact(~n - 1);< 59640#$Ultimate##0 ~n := #in~n; 59644#L25 assume ~n <= 0;#res := 1; 59641#factFINAL assume true; 59639#factEXIT >#66#return; 59638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59635#factFINAL assume true; 59598#factEXIT >#66#return; 59606#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59667#factFINAL assume true; 59654#factEXIT >#68#return; 59647#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 59652#$Ultimate##0 ~n := #in~n; 59658#L25 assume ~n <= 0;#res := 1; 59656#factFINAL assume true; 59646#factEXIT >#70#return; 59636#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 59645#$Ultimate##0 ~n := #in~n; 59643#L25 assume !(~n <= 0); 59604#L26 call #t~ret0 := fact(~n - 1);< 59637#$Ultimate##0 ~n := #in~n; 59630#L25 assume !(~n <= 0); 59602#L26 call #t~ret0 := fact(~n - 1);< 59640#$Ultimate##0 ~n := #in~n; 59644#L25 assume ~n <= 0;#res := 1; 59641#factFINAL assume true; 59639#factEXIT >#66#return; 59638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59635#factFINAL assume true; 59598#factEXIT >#66#return; 59607#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59691#factFINAL assume true; 59687#factEXIT >#72#return; 59676#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 59674#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 59672#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 59671#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 59669#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 59627#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 59665#$Ultimate##0 ~n := #in~n; 59666#L25 assume !(~n <= 0); 59599#L26 call #t~ret0 := fact(~n - 1);< 59610#$Ultimate##0 ~n := #in~n; 59630#L25 assume !(~n <= 0); 59602#L26 call #t~ret0 := fact(~n - 1);< 59640#$Ultimate##0 ~n := #in~n; 59644#L25 assume ~n <= 0;#res := 1; 59641#factFINAL assume true; 59639#factEXIT >#66#return; 59638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59635#factFINAL assume true; 59598#factEXIT >#66#return; 59605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59673#factFINAL assume true; 59668#factEXIT >#68#return; 59223#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 59590#$Ultimate##0 ~n := #in~n; 59612#L25 assume !(~n <= 0); 59600#L26 call #t~ret0 := fact(~n - 1);< 59610#$Ultimate##0 ~n := #in~n; 59629#L25 assume ~n <= 0;#res := 1; 59624#factFINAL assume true; 59620#factEXIT >#66#return; 59619#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59618#factFINAL assume true; 59579#factEXIT >#70#return; 59225#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 59590#$Ultimate##0 ~n := #in~n; 59612#L25 assume !(~n <= 0); 59600#L26 call #t~ret0 := fact(~n - 1);< 59610#$Ultimate##0 ~n := #in~n; 59630#L25 assume !(~n <= 0); 59602#L26 call #t~ret0 := fact(~n - 1);< 59640#$Ultimate##0 ~n := #in~n; 59644#L25 assume ~n <= 0;#res := 1; 59641#factFINAL assume true; 59639#factEXIT >#66#return; 59638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59635#factFINAL assume true; 59598#factEXIT >#66#return; 59608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59632#factFINAL assume true; 59617#factEXIT >#72#return; 59586#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 59713#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 59711#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 59276#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 59277#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 59626#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 59665#$Ultimate##0 ~n := #in~n; 59666#L25 assume !(~n <= 0); 59599#L26 call #t~ret0 := fact(~n - 1);< 59610#$Ultimate##0 ~n := #in~n; 59630#L25 assume !(~n <= 0); 59602#L26 call #t~ret0 := fact(~n - 1);< 59640#$Ultimate##0 ~n := #in~n; 59630#L25 assume !(~n <= 0); 59602#L26 call #t~ret0 := fact(~n - 1);< 59640#$Ultimate##0 ~n := #in~n; 59644#L25 assume ~n <= 0;#res := 1; 59641#factFINAL assume true; 59639#factEXIT >#66#return; 59638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59635#factFINAL assume true; 59598#factEXIT >#66#return; 59609#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59642#factFINAL assume true; 59633#factEXIT >#66#return; 59634#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59690#factFINAL assume true; 59689#factEXIT >#68#return; 59220#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 59590#$Ultimate##0 ~n := #in~n; 59612#L25 assume !(~n <= 0); 59600#L26 call #t~ret0 := fact(~n - 1);< 59610#$Ultimate##0 ~n := #in~n; 59630#L25 assume !(~n <= 0); 59602#L26 call #t~ret0 := fact(~n - 1);< 59640#$Ultimate##0 ~n := #in~n; 59644#L25 assume ~n <= 0;#res := 1; 59641#factFINAL assume true; 59639#factEXIT >#66#return; 59638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59635#factFINAL assume true; 59598#factEXIT >#66#return; 59608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59632#factFINAL assume true; 59617#factEXIT >#70#return; 59227#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 59590#$Ultimate##0 ~n := #in~n; 59612#L25 assume !(~n <= 0); 59600#L26 call #t~ret0 := fact(~n - 1);< 59610#$Ultimate##0 ~n := #in~n; 59630#L25 assume !(~n <= 0); 59602#L26 call #t~ret0 := fact(~n - 1);< 59640#$Ultimate##0 ~n := #in~n; 59644#L25 assume ~n <= 0;#res := 1; 59641#factFINAL assume true; 59639#factEXIT >#66#return; 59638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59635#factFINAL assume true; 59598#factEXIT >#66#return; 59608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 59632#factFINAL assume true; 59617#factEXIT >#72#return; 59587#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 59682#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 59680#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 59678#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 59675#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 59212#L30-5 [2023-02-18 08:56:02,631 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:02,631 INFO L85 PathProgramCache]: Analyzing trace with hash -897777039, now seen corresponding path program 12 times [2023-02-18 08:56:02,632 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:02,632 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1708651027] [2023-02-18 08:56:02,632 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:02,632 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:02,637 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:02,638 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1914945233] [2023-02-18 08:56:02,638 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:56:02,638 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:02,638 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:02,641 INFO L229 MonitoredProcess]: Starting monitored process 115 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:02,641 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (115)] Waiting until timeout for monitored process [2023-02-18 08:56:02,750 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 11 check-sat command(s) [2023-02-18 08:56:02,750 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:02,750 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:02,793 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:02,822 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:02,822 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:02,823 INFO L85 PathProgramCache]: Analyzing trace with hash -1354446082, now seen corresponding path program 14 times [2023-02-18 08:56:02,823 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:02,823 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [347661426] [2023-02-18 08:56:02,823 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:02,823 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:02,828 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:02,828 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1252722008] [2023-02-18 08:56:02,828 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:56:02,829 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:02,829 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:02,831 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-18 08:56:02,832 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-18 08:56:02,922 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:56:02,922 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:02,924 INFO L263 TraceCheckSpWp]: Trace formula consists of 452 conjuncts, 20 conjunts are in the unsatisfiable core [2023-02-18 08:56:02,927 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:02,973 INFO L134 CoverageAnalysis]: Checked inductivity of 2401 backedges. 1309 proven. 149 refuted. 0 times theorem prover too weak. 943 trivial. 0 not checked. [2023-02-18 08:56:02,973 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:03,098 INFO L134 CoverageAnalysis]: Checked inductivity of 2401 backedges. 245 proven. 362 refuted. 0 times theorem prover too weak. 1794 trivial. 0 not checked. [2023-02-18 08:56:03,098 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:03,098 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [347661426] [2023-02-18 08:56:03,098 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:03,098 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1252722008] [2023-02-18 08:56:03,099 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1252722008] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:03,099 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:03,099 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 17] total 23 [2023-02-18 08:56:03,099 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [381823304] [2023-02-18 08:56:03,099 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:03,099 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:03,099 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:03,100 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 23 interpolants. [2023-02-18 08:56:03,100 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=75, Invalid=431, Unknown=0, NotChecked=0, Total=506 [2023-02-18 08:56:03,100 INFO L87 Difference]: Start difference. First operand 606 states and 830 transitions. cyclomatic complexity: 239 Second operand has 23 states, 19 states have (on average 3.1578947368421053) internal successors, (60), 23 states have internal predecessors, (60), 14 states have call successors, (29), 2 states have call predecessors, (29), 7 states have return successors, (30), 10 states have call predecessors, (30), 14 states have call successors, (30) [2023-02-18 08:56:03,818 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:03,818 INFO L93 Difference]: Finished difference Result 851 states and 1169 transitions. [2023-02-18 08:56:03,818 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 851 states and 1169 transitions. [2023-02-18 08:56:03,821 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 192 [2023-02-18 08:56:03,825 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 851 states to 849 states and 1164 transitions. [2023-02-18 08:56:03,825 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 90 [2023-02-18 08:56:03,825 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 90 [2023-02-18 08:56:03,826 INFO L73 IsDeterministic]: Start isDeterministic. Operand 849 states and 1164 transitions. [2023-02-18 08:56:03,826 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:03,826 INFO L218 hiAutomatonCegarLoop]: Abstraction has 849 states and 1164 transitions. [2023-02-18 08:56:03,826 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 849 states and 1164 transitions. [2023-02-18 08:56:03,834 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 849 to 649. [2023-02-18 08:56:03,835 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 649 states, 414 states have (on average 1.0917874396135265) internal successors, (452), 419 states have internal predecessors, (452), 149 states have call successors, (151), 67 states have call predecessors, (151), 86 states have return successors, (292), 162 states have call predecessors, (292), 149 states have call successors, (292) [2023-02-18 08:56:03,837 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 649 states to 649 states and 895 transitions. [2023-02-18 08:56:03,837 INFO L240 hiAutomatonCegarLoop]: Abstraction has 649 states and 895 transitions. [2023-02-18 08:56:03,837 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 30 states. [2023-02-18 08:56:03,838 INFO L428 stractBuchiCegarLoop]: Abstraction has 649 states and 895 transitions. [2023-02-18 08:56:03,838 INFO L335 stractBuchiCegarLoop]: ======== Iteration 27 ============ [2023-02-18 08:56:03,838 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 649 states and 895 transitions. [2023-02-18 08:56:03,839 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 86 [2023-02-18 08:56:03,839 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:03,839 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:03,840 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [25, 25, 15, 10, 10, 10, 10, 6, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:03,840 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [36, 36, 24, 24, 24, 24, 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-18 08:56:03,841 INFO L748 eck$LassoCheckResult]: Stem: 62042#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 61992#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; 61993#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 62018#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; 62043#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 62406#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 62405#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 62403#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 62404#$Ultimate##0 ~n := #in~n; 62408#L25 assume ~n <= 0;#res := 1; 62407#factFINAL assume true; 62402#factEXIT >#68#return; 62399#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 62400#$Ultimate##0 ~n := #in~n; 62414#L25 assume ~n <= 0;#res := 1; 62411#factFINAL assume true; 62398#factEXIT >#70#return; 62386#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 62387#$Ultimate##0 ~n := #in~n; 62401#L25 assume ~n <= 0;#res := 1; 62397#factFINAL assume true; 62385#factEXIT >#72#return; 62381#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 62380#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 62378#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 62372#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 62368#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 62363#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 62364#$Ultimate##0 ~n := #in~n; 62391#L25 assume !(~n <= 0); 62374#L26 call #t~ret0 := fact(~n - 1);< 62377#$Ultimate##0 ~n := #in~n; 62393#L25 assume ~n <= 0;#res := 1; 62379#factFINAL assume true; 62373#factEXIT >#66#return; 62371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62367#factFINAL assume true; 62362#factEXIT >#74#return; 62330#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 62337#$Ultimate##0 ~n := #in~n; 62413#L25 assume ~n <= 0;#res := 1; 62410#factFINAL assume true; 62333#factEXIT >#76#return; 62268#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 62269#$Ultimate##0 ~n := #in~n; 62394#L25 assume !(~n <= 0); 62375#L26 call #t~ret0 := fact(~n - 1);< 62377#$Ultimate##0 ~n := #in~n; 62393#L25 assume ~n <= 0;#res := 1; 62379#factFINAL assume true; 62373#factEXIT >#66#return; 62376#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62412#factFINAL assume true; 62409#factEXIT >#78#return; 62171#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 62170#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 62168#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 62166#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 62163#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 62157#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 62162#$Ultimate##0 ~n := #in~n; 62285#L25 assume !(~n <= 0); 62283#L26 call #t~ret0 := fact(~n - 1);< 62284#$Ultimate##0 ~n := #in~n; 62289#L25 assume !(~n <= 0); 62282#L26 call #t~ret0 := fact(~n - 1);< 62288#$Ultimate##0 ~n := #in~n; 62295#L25 assume ~n <= 0;#res := 1; 62294#factFINAL assume true; 62292#factEXIT >#66#return; 62293#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62286#factFINAL assume true; 62287#factEXIT >#66#return; 62280#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62270#factFINAL assume true; 62156#factEXIT >#74#return; 62056#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 62057#$Ultimate##0 ~n := #in~n; 62211#L25 assume ~n <= 0;#res := 1; 62059#factFINAL assume true; 62055#factEXIT >#76#return; 62051#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 62112#$Ultimate##0 ~n := #in~n; 62271#L25 assume !(~n <= 0); 62206#L26 call #t~ret0 := fact(~n - 1);< 62210#$Ultimate##0 ~n := #in~n; 62218#L25 assume !(~n <= 0); 62205#L26 call #t~ret0 := fact(~n - 1);< 62216#$Ultimate##0 ~n := #in~n; 62230#L25 assume ~n <= 0;#res := 1; 62228#factFINAL assume true; 62226#factEXIT >#66#return; 62224#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62222#factFINAL assume true; 62220#factEXIT >#66#return; 62209#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62279#factFINAL assume true; 62050#factEXIT >#78#return; 62052#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 62254#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 62253#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 62252#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 62251#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 62249#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 62250#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 62559#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 61988#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 61989#$Ultimate##0 ~n := #in~n; 62525#L25 assume !(~n <= 0); 62488#L26 call #t~ret0 := fact(~n - 1);< 62516#$Ultimate##0 ~n := #in~n; 62500#L25 assume ~n <= 0;#res := 1; 62501#factFINAL assume true; 62485#factEXIT >#66#return; 62493#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62573#factFINAL assume true; 62571#factEXIT >#68#return; 62552#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 62036#$Ultimate##0 ~n := #in~n; 62557#L25 assume ~n <= 0;#res := 1; 62555#factFINAL assume true; 62551#factEXIT >#70#return; 61986#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 62531#$Ultimate##0 ~n := #in~n; 62532#L25 assume !(~n <= 0); 62489#L26 call #t~ret0 := fact(~n - 1);< 62516#$Ultimate##0 ~n := #in~n; 62500#L25 assume ~n <= 0;#res := 1; 62501#factFINAL assume true; 62485#factEXIT >#66#return; 62026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 61984#factFINAL assume true; 61987#factEXIT >#72#return; 62549#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 62582#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 62580#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 62578#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 62023#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 61990#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 61991#$Ultimate##0 ~n := #in~n; 62520#L25 assume !(~n <= 0); 62008#L26 call #t~ret0 := fact(~n - 1);< 62513#$Ultimate##0 ~n := #in~n; 62500#L25 assume ~n <= 0;#res := 1; 62501#factFINAL assume true; 62485#factEXIT >#66#return; 62491#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62586#factFINAL assume true; 62584#factEXIT >#68#return; 62469#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 61965#$Ultimate##0 ~n := #in~n; 62495#L25 assume !(~n <= 0); 62486#L26 call #t~ret0 := fact(~n - 1);< 62516#$Ultimate##0 ~n := #in~n; 62500#L25 assume ~n <= 0;#res := 1; 62501#factFINAL assume true; 62485#factEXIT >#66#return; 62492#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62530#factFINAL assume true; 62529#factEXIT >#70#return; 61971#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 61982#$Ultimate##0 ~n := #in~n; 62588#L25 assume ~n <= 0;#res := 1; 62522#factFINAL assume true; 61969#factEXIT >#72#return; 61981#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 62015#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 62027#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 62596#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 62466#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 61962#L30-5 [2023-02-18 08:56:03,841 INFO L750 eck$LassoCheckResult]: Loop: 61962#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 61963#$Ultimate##0 ~n := #in~n; 62045#L25 assume !(~n <= 0); 61998#L26 call #t~ret0 := fact(~n - 1);< 62006#$Ultimate##0 ~n := #in~n; 62037#L25 assume !(~n <= 0); 61967#L26 call #t~ret0 := fact(~n - 1);< 62058#$Ultimate##0 ~n := #in~n; 62037#L25 assume !(~n <= 0); 61967#L26 call #t~ret0 := fact(~n - 1);< 62058#$Ultimate##0 ~n := #in~n; 62030#L25 assume ~n <= 0;#res := 1; 61983#factFINAL assume true; 61966#factEXIT >#66#return; 61968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62610#factFINAL assume true; 62606#factEXIT >#66#return; 62024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62025#factFINAL assume true; 62604#factEXIT >#66#return; 62600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62601#factFINAL assume true; 62608#factEXIT >#74#return; 62001#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 61963#$Ultimate##0 ~n := #in~n; 62045#L25 assume !(~n <= 0); 61998#L26 call #t~ret0 := fact(~n - 1);< 62006#$Ultimate##0 ~n := #in~n; 62037#L25 assume !(~n <= 0); 61967#L26 call #t~ret0 := fact(~n - 1);< 62058#$Ultimate##0 ~n := #in~n; 62037#L25 assume !(~n <= 0); 61967#L26 call #t~ret0 := fact(~n - 1);< 62058#$Ultimate##0 ~n := #in~n; 62030#L25 assume ~n <= 0;#res := 1; 61983#factFINAL assume true; 61966#factEXIT >#66#return; 61968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62610#factFINAL assume true; 62606#factEXIT >#66#return; 62024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62025#factFINAL assume true; 62604#factEXIT >#66#return; 62600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62601#factFINAL assume true; 62608#factEXIT >#76#return; 62002#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 61963#$Ultimate##0 ~n := #in~n; 62045#L25 assume !(~n <= 0); 61998#L26 call #t~ret0 := fact(~n - 1);< 62006#$Ultimate##0 ~n := #in~n; 62038#L25 assume ~n <= 0;#res := 1; 62605#factFINAL assume true; 62602#factEXIT >#66#return; 62603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62609#factFINAL assume true; 62597#factEXIT >#78#return; 61994#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 61995#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 62019#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 62041#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 62016#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 62010#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 62011#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 62021#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 62022#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 61989#$Ultimate##0 ~n := #in~n; 62525#L25 assume !(~n <= 0); 62488#L26 call #t~ret0 := fact(~n - 1);< 62516#$Ultimate##0 ~n := #in~n; 62514#L25 assume !(~n <= 0); 62497#L26 call #t~ret0 := fact(~n - 1);< 62508#$Ultimate##0 ~n := #in~n; 62514#L25 assume !(~n <= 0); 62497#L26 call #t~ret0 := fact(~n - 1);< 62508#$Ultimate##0 ~n := #in~n; 62515#L25 assume ~n <= 0;#res := 1; 62509#factFINAL assume true; 62503#factEXIT >#66#return; 62504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62542#factFINAL assume true; 62539#factEXIT >#66#return; 62502#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62496#factFINAL assume true; 62498#factEXIT >#66#return; 62505#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62585#factFINAL assume true; 62583#factEXIT >#68#return; 62035#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 62036#$Ultimate##0 ~n := #in~n; 62557#L25 assume ~n <= 0;#res := 1; 62555#factFINAL assume true; 62551#factEXIT >#70#return; 62033#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 62039#$Ultimate##0 ~n := #in~n; 62031#L25 assume !(~n <= 0); 62034#L26 call #t~ret0 := fact(~n - 1);< 62499#$Ultimate##0 ~n := #in~n; 62514#L25 assume !(~n <= 0); 62497#L26 call #t~ret0 := fact(~n - 1);< 62508#$Ultimate##0 ~n := #in~n; 62515#L25 assume ~n <= 0;#res := 1; 62509#factFINAL assume true; 62503#factEXIT >#66#return; 62504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62542#factFINAL assume true; 62539#factEXIT >#66#return; 62506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62561#factFINAL assume true; 62547#factEXIT >#72#return; 62550#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 62568#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 62567#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 62566#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 62565#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 62517#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 62523#$Ultimate##0 ~n := #in~n; 62519#L25 assume !(~n <= 0); 62490#L26 call #t~ret0 := fact(~n - 1);< 62516#$Ultimate##0 ~n := #in~n; 62514#L25 assume !(~n <= 0); 62497#L26 call #t~ret0 := fact(~n - 1);< 62508#$Ultimate##0 ~n := #in~n; 62514#L25 assume !(~n <= 0); 62497#L26 call #t~ret0 := fact(~n - 1);< 62508#$Ultimate##0 ~n := #in~n; 62515#L25 assume ~n <= 0;#res := 1; 62509#factFINAL assume true; 62503#factEXIT >#66#return; 62504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62542#factFINAL assume true; 62539#factEXIT >#66#return; 62502#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62496#factFINAL assume true; 62498#factEXIT >#66#return; 62507#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62564#factFINAL assume true; 62563#factEXIT >#68#return; 61973#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 62482#$Ultimate##0 ~n := #in~n; 62589#L25 assume !(~n <= 0); 62486#L26 call #t~ret0 := fact(~n - 1);< 62516#$Ultimate##0 ~n := #in~n; 62514#L25 assume !(~n <= 0); 62497#L26 call #t~ret0 := fact(~n - 1);< 62508#$Ultimate##0 ~n := #in~n; 62515#L25 assume ~n <= 0;#res := 1; 62509#factFINAL assume true; 62503#factEXIT >#66#return; 62504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62542#factFINAL assume true; 62539#factEXIT >#66#return; 62540#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62480#factFINAL assume true; 62481#factEXIT >#70#return; 61977#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 62482#$Ultimate##0 ~n := #in~n; 62589#L25 assume !(~n <= 0); 62486#L26 call #t~ret0 := fact(~n - 1);< 62516#$Ultimate##0 ~n := #in~n; 62500#L25 assume ~n <= 0;#res := 1; 62501#factFINAL assume true; 62485#factEXIT >#66#return; 62492#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62530#factFINAL assume true; 62529#factEXIT >#72#return; 62478#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 62574#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 62570#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 62569#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 62528#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 62518#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 62523#$Ultimate##0 ~n := #in~n; 62519#L25 assume !(~n <= 0); 62490#L26 call #t~ret0 := fact(~n - 1);< 62516#$Ultimate##0 ~n := #in~n; 62514#L25 assume !(~n <= 0); 62497#L26 call #t~ret0 := fact(~n - 1);< 62508#$Ultimate##0 ~n := #in~n; 62514#L25 assume !(~n <= 0); 62497#L26 call #t~ret0 := fact(~n - 1);< 62508#$Ultimate##0 ~n := #in~n; 62515#L25 assume ~n <= 0;#res := 1; 62509#factFINAL assume true; 62503#factEXIT >#66#return; 62504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62542#factFINAL assume true; 62539#factEXIT >#66#return; 62502#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62496#factFINAL assume true; 62498#factEXIT >#66#return; 62507#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62564#factFINAL assume true; 62563#factEXIT >#68#return; 61978#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 62482#$Ultimate##0 ~n := #in~n; 62589#L25 assume !(~n <= 0); 62486#L26 call #t~ret0 := fact(~n - 1);< 62516#$Ultimate##0 ~n := #in~n; 62514#L25 assume !(~n <= 0); 62497#L26 call #t~ret0 := fact(~n - 1);< 62508#$Ultimate##0 ~n := #in~n; 62515#L25 assume ~n <= 0;#res := 1; 62509#factFINAL assume true; 62503#factEXIT >#66#return; 62504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62542#factFINAL assume true; 62539#factEXIT >#66#return; 62540#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62480#factFINAL assume true; 62481#factEXIT >#70#return; 61974#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 62482#$Ultimate##0 ~n := #in~n; 62589#L25 assume !(~n <= 0); 62486#L26 call #t~ret0 := fact(~n - 1);< 62516#$Ultimate##0 ~n := #in~n; 62500#L25 assume ~n <= 0;#res := 1; 62501#factFINAL assume true; 62485#factEXIT >#66#return; 62492#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 62530#factFINAL assume true; 62529#factEXIT >#72#return; 62476#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 62562#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 62560#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 62533#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 62527#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 61962#L30-5 [2023-02-18 08:56:03,841 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:03,841 INFO L85 PathProgramCache]: Analyzing trace with hash -897777039, now seen corresponding path program 13 times [2023-02-18 08:56:03,842 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:03,842 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2023298729] [2023-02-18 08:56:03,842 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:03,842 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:03,846 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:03,847 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [224331796] [2023-02-18 08:56:03,847 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:56:03,847 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:03,847 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:03,850 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-18 08:56:03,850 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-18 08:56:03,945 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:03,945 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:03,986 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:04,007 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:04,008 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:04,008 INFO L85 PathProgramCache]: Analyzing trace with hash -1573227554, now seen corresponding path program 15 times [2023-02-18 08:56:04,008 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:04,008 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [696588261] [2023-02-18 08:56:04,008 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:04,008 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:04,030 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:04,030 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1020404548] [2023-02-18 08:56:04,030 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:56:04,030 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:04,031 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:04,033 INFO L229 MonitoredProcess]: Starting monitored process 118 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:04,034 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (118)] Waiting until timeout for monitored process [2023-02-18 08:56:04,106 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 11 check-sat command(s) [2023-02-18 08:56:04,106 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:04,107 INFO L263 TraceCheckSpWp]: Trace formula consists of 173 conjuncts, 9 conjunts are in the unsatisfiable core [2023-02-18 08:56:04,109 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:04,123 INFO L134 CoverageAnalysis]: Checked inductivity of 3109 backedges. 170 proven. 1 refuted. 0 times theorem prover too weak. 2938 trivial. 0 not checked. [2023-02-18 08:56:04,123 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:04,172 INFO L134 CoverageAnalysis]: Checked inductivity of 3109 backedges. 170 proven. 1 refuted. 0 times theorem prover too weak. 2938 trivial. 0 not checked. [2023-02-18 08:56:04,173 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:04,173 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [696588261] [2023-02-18 08:56:04,173 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:04,173 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1020404548] [2023-02-18 08:56:04,173 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1020404548] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:04,173 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:04,173 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [6, 6] total 8 [2023-02-18 08:56:04,174 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1380613785] [2023-02-18 08:56:04,174 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:04,174 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:04,174 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:04,174 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2023-02-18 08:56:04,174 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=20, Invalid=52, Unknown=0, NotChecked=0, Total=72 [2023-02-18 08:56:04,175 INFO L87 Difference]: Start difference. First operand 649 states and 895 transitions. cyclomatic complexity: 261 Second operand has 9 states, 6 states have (on average 4.666666666666667) internal successors, (28), 9 states have internal predecessors, (28), 4 states have call successors, (14), 1 states have call predecessors, (14), 2 states have return successors, (14), 5 states have call predecessors, (14), 4 states have call successors, (14) [2023-02-18 08:56:04,263 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:04,263 INFO L93 Difference]: Finished difference Result 649 states and 887 transitions. [2023-02-18 08:56:04,263 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 649 states and 887 transitions. [2023-02-18 08:56:04,266 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 86 [2023-02-18 08:56:04,269 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 649 states to 649 states and 887 transitions. [2023-02-18 08:56:04,269 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 53 [2023-02-18 08:56:04,269 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 53 [2023-02-18 08:56:04,269 INFO L73 IsDeterministic]: Start isDeterministic. Operand 649 states and 887 transitions. [2023-02-18 08:56:04,269 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:04,269 INFO L218 hiAutomatonCegarLoop]: Abstraction has 649 states and 887 transitions. [2023-02-18 08:56:04,270 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 649 states and 887 transitions. [2023-02-18 08:56:04,277 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 649 to 639. [2023-02-18 08:56:04,277 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 639 states, 404 states have (on average 1.0742574257425743) internal successors, (434), 411 states have internal predecessors, (434), 149 states have call successors, (151), 67 states have call predecessors, (151), 86 states have return successors, (292), 160 states have call predecessors, (292), 149 states have call successors, (292) [2023-02-18 08:56:04,279 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 639 states to 639 states and 877 transitions. [2023-02-18 08:56:04,279 INFO L240 hiAutomatonCegarLoop]: Abstraction has 639 states and 877 transitions. [2023-02-18 08:56:04,279 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2023-02-18 08:56:04,280 INFO L428 stractBuchiCegarLoop]: Abstraction has 639 states and 877 transitions. [2023-02-18 08:56:04,280 INFO L335 stractBuchiCegarLoop]: ======== Iteration 28 ============ [2023-02-18 08:56:04,280 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 639 states and 877 transitions. [2023-02-18 08:56:04,281 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 76 [2023-02-18 08:56:04,281 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:04,281 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:04,282 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [25, 25, 15, 10, 10, 10, 10, 6, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:04,282 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [29, 29, 17, 17, 17, 17, 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-18 08:56:04,283 INFO L748 eck$LassoCheckResult]: Stem: 64708#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 64659#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; 64660#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 64685#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; 64675#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 64676#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 65160#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 64651#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 64652#$Ultimate##0 ~n := #in~n; 65155#L25 assume ~n <= 0;#res := 1; 65154#factFINAL assume true; 65152#factEXIT >#68#return; 64700#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 64701#$Ultimate##0 ~n := #in~n; 65140#L25 assume ~n <= 0;#res := 1; 65138#factFINAL assume true; 65137#factEXIT >#70#return; 64641#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 64642#$Ultimate##0 ~n := #in~n; 65259#L25 assume ~n <= 0;#res := 1; 65257#factFINAL assume true; 65256#factEXIT >#72#return; 64680#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 64681#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 64692#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 64699#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 64690#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 64691#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 65177#$Ultimate##0 ~n := #in~n; 65204#L25 assume !(~n <= 0); 65199#L26 call #t~ret0 := fact(~n - 1);< 65202#$Ultimate##0 ~n := #in~n; 65217#L25 assume ~n <= 0;#res := 1; 65215#factFINAL assume true; 65198#factEXIT >#66#return; 65197#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65195#factFINAL assume true; 65174#factEXIT >#74#return; 65164#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 65226#$Ultimate##0 ~n := #in~n; 65233#L25 assume ~n <= 0;#res := 1; 65229#factFINAL assume true; 65224#factEXIT >#76#return; 65213#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 65221#$Ultimate##0 ~n := #in~n; 65218#L25 assume !(~n <= 0); 65200#L26 call #t~ret0 := fact(~n - 1);< 65202#$Ultimate##0 ~n := #in~n; 65217#L25 assume ~n <= 0;#res := 1; 65215#factFINAL assume true; 65198#factEXIT >#66#return; 65201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65237#factFINAL assume true; 65212#factEXIT >#78#return; 64910#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 64909#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 64908#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 64907#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 64904#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 64882#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 64885#$Ultimate##0 ~n := #in~n; 64938#L25 assume !(~n <= 0); 64901#L26 call #t~ret0 := fact(~n - 1);< 64902#$Ultimate##0 ~n := #in~n; 65009#L25 assume !(~n <= 0); 64900#L26 call #t~ret0 := fact(~n - 1);< 65008#$Ultimate##0 ~n := #in~n; 65015#L25 assume ~n <= 0;#res := 1; 65014#factFINAL assume true; 65012#factEXIT >#66#return; 65013#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65006#factFINAL assume true; 65007#factEXIT >#66#return; 64897#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 64896#factFINAL assume true; 64881#factEXIT >#74#return; 64883#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 64912#$Ultimate##0 ~n := #in~n; 64923#L25 assume ~n <= 0;#res := 1; 64921#factFINAL assume true; 64911#factEXIT >#76#return; 64876#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 64877#$Ultimate##0 ~n := #in~n; 64947#L25 assume !(~n <= 0); 64932#L26 call #t~ret0 := fact(~n - 1);< 64935#$Ultimate##0 ~n := #in~n; 64944#L25 assume !(~n <= 0); 64931#L26 call #t~ret0 := fact(~n - 1);< 64941#$Ultimate##0 ~n := #in~n; 64958#L25 assume ~n <= 0;#res := 1; 64956#factFINAL assume true; 64954#factEXIT >#66#return; 64952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 64950#factFINAL assume true; 64948#factEXIT >#66#return; 64934#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 64971#factFINAL assume true; 64970#factEXIT >#78#return; 64875#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 64969#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 64968#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 64967#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 64966#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 64964#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 64965#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 65129#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 64649#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 64650#$Ultimate##0 ~n := #in~n; 65122#L25 assume !(~n <= 0); 65051#L26 call #t~ret0 := fact(~n - 1);< 65072#$Ultimate##0 ~n := #in~n; 65078#L25 assume ~n <= 0;#res := 1; 65074#factFINAL assume true; 65047#factEXIT >#66#return; 65054#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65147#factFINAL assume true; 65144#factEXIT >#68#return; 65105#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 65109#$Ultimate##0 ~n := #in~n; 65113#L25 assume ~n <= 0;#res := 1; 65112#factFINAL assume true; 65104#factEXIT >#70#return; 65083#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 65093#$Ultimate##0 ~n := #in~n; 65103#L25 assume !(~n <= 0); 65052#L26 call #t~ret0 := fact(~n - 1);< 65072#$Ultimate##0 ~n := #in~n; 65078#L25 assume ~n <= 0;#res := 1; 65074#factFINAL assume true; 65047#factEXIT >#66#return; 65055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65143#factFINAL assume true; 65141#factEXIT >#72#return; 65087#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 65139#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 65134#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 65133#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 65132#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 65035#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 65040#$Ultimate##0 ~n := #in~n; 65130#L25 assume !(~n <= 0); 65053#L26 call #t~ret0 := fact(~n - 1);< 65075#$Ultimate##0 ~n := #in~n; 65078#L25 assume ~n <= 0;#res := 1; 65074#factFINAL assume true; 65047#factEXIT >#66#return; 65056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65145#factFINAL assume true; 65142#factEXIT >#68#return; 64989#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 64710#$Ultimate##0 ~n := #in~n; 65120#L25 assume !(~n <= 0); 65048#L26 call #t~ret0 := fact(~n - 1);< 65072#$Ultimate##0 ~n := #in~n; 65078#L25 assume ~n <= 0;#res := 1; 65074#factFINAL assume true; 65047#factEXIT >#66#return; 65045#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65032#factFINAL assume true; 65031#factEXIT >#70#return; 65002#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 65023#$Ultimate##0 ~n := #in~n; 65025#L25 assume ~n <= 0;#res := 1; 65024#factFINAL assume true; 65020#factEXIT >#72#return; 65019#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 65017#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 65018#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 65091#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 65090#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 64670#L30-5 [2023-02-18 08:56:04,283 INFO L750 eck$LassoCheckResult]: Loop: 64670#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 64638#$Ultimate##0 ~n := #in~n; 64729#L25 assume !(~n <= 0); 64644#L26 call #t~ret0 := fact(~n - 1);< 64672#$Ultimate##0 ~n := #in~n; 64702#L25 assume !(~n <= 0); 64654#L26 call #t~ret0 := fact(~n - 1);< 64974#$Ultimate##0 ~n := #in~n; 64695#L25 assume ~n <= 0;#res := 1; 64696#factFINAL assume true; 65156#factEXIT >#66#return; 64693#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 64653#factFINAL assume true; 64655#factEXIT >#66#return; 65028#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65026#factFINAL assume true; 65027#factEXIT >#74#return; 64665#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 64638#$Ultimate##0 ~n := #in~n; 64729#L25 assume !(~n <= 0); 64644#L26 call #t~ret0 := fact(~n - 1);< 64672#$Ultimate##0 ~n := #in~n; 64703#L25 assume ~n <= 0;#res := 1; 65258#factFINAL assume true; 64643#factEXIT >#66#return; 64645#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65271#factFINAL assume true; 64711#factEXIT >#76#return; 64668#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 64638#$Ultimate##0 ~n := #in~n; 64729#L25 assume !(~n <= 0); 64644#L26 call #t~ret0 := fact(~n - 1);< 64672#$Ultimate##0 ~n := #in~n; 64703#L25 assume ~n <= 0;#res := 1; 65258#factFINAL assume true; 64643#factEXIT >#66#return; 64645#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65271#factFINAL assume true; 64711#factEXIT >#78#return; 64661#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 64662#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 64686#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 64707#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 64682#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 64683#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 64698#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 64688#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 64689#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 64650#$Ultimate##0 ~n := #in~n; 65122#L25 assume !(~n <= 0); 65051#L26 call #t~ret0 := fact(~n - 1);< 65072#$Ultimate##0 ~n := #in~n; 65124#L25 assume !(~n <= 0); 65067#L26 call #t~ret0 := fact(~n - 1);< 65096#$Ultimate##0 ~n := #in~n; 65126#L25 assume ~n <= 0;#res := 1; 65125#factFINAL assume true; 65116#factEXIT >#66#return; 65115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65114#factFINAL assume true; 65097#factEXIT >#66#return; 65099#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65111#factFINAL assume true; 65110#factEXIT >#68#return; 65106#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 65109#$Ultimate##0 ~n := #in~n; 65113#L25 assume ~n <= 0;#res := 1; 65112#factFINAL assume true; 65104#factEXIT >#70#return; 65082#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 65088#$Ultimate##0 ~n := #in~n; 65102#L25 assume !(~n <= 0); 65066#L26 call #t~ret0 := fact(~n - 1);< 65101#$Ultimate##0 ~n := #in~n; 65124#L25 assume !(~n <= 0); 65067#L26 call #t~ret0 := fact(~n - 1);< 65096#$Ultimate##0 ~n := #in~n; 65126#L25 assume ~n <= 0;#res := 1; 65125#factFINAL assume true; 65116#factEXIT >#66#return; 65115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65114#factFINAL assume true; 65097#factEXIT >#66#return; 65069#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65092#factFINAL assume true; 65080#factEXIT >#72#return; 65086#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 65058#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 65046#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 65044#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 65043#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 65037#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 65040#$Ultimate##0 ~n := #in~n; 65130#L25 assume !(~n <= 0); 65053#L26 call #t~ret0 := fact(~n - 1);< 65075#$Ultimate##0 ~n := #in~n; 65121#L25 assume !(~n <= 0); 65117#L26 call #t~ret0 := fact(~n - 1);< 65118#$Ultimate##0 ~n := #in~n; 65126#L25 assume ~n <= 0;#res := 1; 65125#factFINAL assume true; 65116#factEXIT >#66#return; 65115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65114#factFINAL assume true; 65097#factEXIT >#66#return; 65098#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65060#factFINAL assume true; 65033#factEXIT >#68#return; 64986#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 64710#$Ultimate##0 ~n := #in~n; 65120#L25 assume !(~n <= 0); 65048#L26 call #t~ret0 := fact(~n - 1);< 65072#$Ultimate##0 ~n := #in~n; 65078#L25 assume ~n <= 0;#res := 1; 65074#factFINAL assume true; 65047#factEXIT >#66#return; 65045#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65032#factFINAL assume true; 65031#factEXIT >#70#return; 65021#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 65030#$Ultimate##0 ~n := #in~n; 65136#L25 assume !(~n <= 0); 65050#L26 call #t~ret0 := fact(~n - 1);< 65057#$Ultimate##0 ~n := #in~n; 65078#L25 assume ~n <= 0;#res := 1; 65074#factFINAL assume true; 65047#factEXIT >#66#return; 65045#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65032#factFINAL assume true; 65031#factEXIT >#72#return; 65004#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 65161#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 65158#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 65157#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 65146#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 65039#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 65040#$Ultimate##0 ~n := #in~n; 65130#L25 assume !(~n <= 0); 65053#L26 call #t~ret0 := fact(~n - 1);< 65075#$Ultimate##0 ~n := #in~n; 65121#L25 assume !(~n <= 0); 65117#L26 call #t~ret0 := fact(~n - 1);< 65118#$Ultimate##0 ~n := #in~n; 65126#L25 assume ~n <= 0;#res := 1; 65125#factFINAL assume true; 65116#factEXIT >#66#return; 65115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65114#factFINAL assume true; 65097#factEXIT >#66#return; 65098#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65060#factFINAL assume true; 65033#factEXIT >#68#return; 64995#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 64710#$Ultimate##0 ~n := #in~n; 65120#L25 assume !(~n <= 0); 65048#L26 call #t~ret0 := fact(~n - 1);< 65072#$Ultimate##0 ~n := #in~n; 65124#L25 assume !(~n <= 0); 65067#L26 call #t~ret0 := fact(~n - 1);< 65096#$Ultimate##0 ~n := #in~n; 65124#L25 assume !(~n <= 0); 65067#L26 call #t~ret0 := fact(~n - 1);< 65096#$Ultimate##0 ~n := #in~n; 65126#L25 assume ~n <= 0;#res := 1; 65125#factFINAL assume true; 65116#factEXIT >#66#return; 65115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65114#factFINAL assume true; 65097#factEXIT >#66#return; 65071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65094#factFINAL assume true; 65065#factEXIT >#66#return; 65070#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 65089#factFINAL assume true; 65059#factEXIT >#70#return; 65002#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 65023#$Ultimate##0 ~n := #in~n; 65025#L25 assume ~n <= 0;#res := 1; 65024#factFINAL assume true; 65020#factEXIT >#72#return; 65019#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 65017#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 65018#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 65091#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 65090#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 64670#L30-5 [2023-02-18 08:56:04,283 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:04,283 INFO L85 PathProgramCache]: Analyzing trace with hash -897777039, now seen corresponding path program 14 times [2023-02-18 08:56:04,283 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:04,284 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [242140359] [2023-02-18 08:56:04,284 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:04,284 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:04,288 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:04,288 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1973959587] [2023-02-18 08:56:04,288 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:56:04,289 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:04,289 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:04,291 INFO L229 MonitoredProcess]: Starting monitored process 119 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:04,292 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (119)] Waiting until timeout for monitored process [2023-02-18 08:56:04,384 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:56:04,384 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:04,384 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:04,421 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:04,441 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:04,441 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:04,442 INFO L85 PathProgramCache]: Analyzing trace with hash -628289722, now seen corresponding path program 16 times [2023-02-18 08:56:04,442 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:04,442 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [950270460] [2023-02-18 08:56:04,442 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:04,442 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:04,446 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:04,446 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [99630101] [2023-02-18 08:56:04,446 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:56:04,446 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:04,447 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:04,482 INFO L229 MonitoredProcess]: Starting monitored process 120 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:04,483 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (120)] Waiting until timeout for monitored process [2023-02-18 08:56:04,561 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:56:04,561 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:04,562 INFO L263 TraceCheckSpWp]: Trace formula consists of 416 conjuncts, 12 conjunts are in the unsatisfiable core [2023-02-18 08:56:04,564 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:04,588 INFO L134 CoverageAnalysis]: Checked inductivity of 1933 backedges. 448 proven. 21 refuted. 0 times theorem prover too weak. 1464 trivial. 0 not checked. [2023-02-18 08:56:04,588 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:04,648 INFO L134 CoverageAnalysis]: Checked inductivity of 1933 backedges. 336 proven. 34 refuted. 0 times theorem prover too weak. 1563 trivial. 0 not checked. [2023-02-18 08:56:04,648 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:04,648 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [950270460] [2023-02-18 08:56:04,648 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:04,648 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [99630101] [2023-02-18 08:56:04,648 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [99630101] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:04,648 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:04,649 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 12] total 13 [2023-02-18 08:56:04,649 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1766312835] [2023-02-18 08:56:04,649 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:04,649 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:04,650 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:04,650 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2023-02-18 08:56:04,651 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=38, Invalid=118, Unknown=0, NotChecked=0, Total=156 [2023-02-18 08:56:04,651 INFO L87 Difference]: Start difference. First operand 639 states and 877 transitions. cyclomatic complexity: 253 Second operand has 13 states, 12 states have (on average 3.8333333333333335) internal successors, (46), 13 states have internal predecessors, (46), 9 states have call successors, (18), 2 states have call predecessors, (18), 5 states have return successors, (19), 8 states have call predecessors, (19), 9 states have call successors, (19) [2023-02-18 08:56:04,885 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:04,885 INFO L93 Difference]: Finished difference Result 864 states and 1240 transitions. [2023-02-18 08:56:04,886 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 864 states and 1240 transitions. [2023-02-18 08:56:04,889 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 110 [2023-02-18 08:56:04,894 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 864 states to 864 states and 1240 transitions. [2023-02-18 08:56:04,894 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 72 [2023-02-18 08:56:04,895 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 72 [2023-02-18 08:56:04,895 INFO L73 IsDeterministic]: Start isDeterministic. Operand 864 states and 1240 transitions. [2023-02-18 08:56:04,895 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:04,895 INFO L218 hiAutomatonCegarLoop]: Abstraction has 864 states and 1240 transitions. [2023-02-18 08:56:04,896 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 864 states and 1240 transitions. [2023-02-18 08:56:04,907 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 864 to 694. [2023-02-18 08:56:04,908 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 694 states, 434 states have (on average 1.076036866359447) internal successors, (467), 444 states have internal predecessors, (467), 174 states have call successors, (176), 67 states have call predecessors, (176), 86 states have return successors, (337), 182 states have call predecessors, (337), 174 states have call successors, (337) [2023-02-18 08:56:04,910 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 694 states to 694 states and 980 transitions. [2023-02-18 08:56:04,910 INFO L240 hiAutomatonCegarLoop]: Abstraction has 694 states and 980 transitions. [2023-02-18 08:56:04,910 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2023-02-18 08:56:04,911 INFO L428 stractBuchiCegarLoop]: Abstraction has 694 states and 980 transitions. [2023-02-18 08:56:04,911 INFO L335 stractBuchiCegarLoop]: ======== Iteration 29 ============ [2023-02-18 08:56:04,911 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 694 states and 980 transitions. [2023-02-18 08:56:04,913 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 91 [2023-02-18 08:56:04,913 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:04,913 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:04,913 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [28, 28, 16, 12, 12, 12, 12, 6, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:04,914 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [27, 27, 15, 15, 15, 15, 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-18 08:56:04,914 INFO L748 eck$LassoCheckResult]: Stem: 67356#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 67300#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; 67301#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 67328#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; 67357#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 67746#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 67744#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 67742#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 67743#$Ultimate##0 ~n := #in~n; 67756#L25 assume ~n <= 0;#res := 1; 67753#factFINAL assume true; 67741#factEXIT >#68#return; 67738#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 67739#$Ultimate##0 ~n := #in~n; 67750#L25 assume ~n <= 0;#res := 1; 67748#factFINAL assume true; 67737#factEXIT >#70#return; 67719#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 67720#$Ultimate##0 ~n := #in~n; 67745#L25 assume ~n <= 0;#res := 1; 67736#factFINAL assume true; 67718#factEXIT >#72#return; 67717#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 67716#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 67714#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 67701#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 67698#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 67691#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 67695#$Ultimate##0 ~n := #in~n; 67734#L25 assume !(~n <= 0); 67710#L26 call #t~ret0 := fact(~n - 1);< 67713#$Ultimate##0 ~n := #in~n; 67728#L25 assume ~n <= 0;#res := 1; 67725#factFINAL assume true; 67709#factEXIT >#66#return; 67700#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67697#factFINAL assume true; 67690#factEXIT >#74#return; 67692#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 67731#$Ultimate##0 ~n := #in~n; 67733#L25 assume ~n <= 0;#res := 1; 67732#factFINAL assume true; 67729#factEXIT >#76#return; 67672#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 67727#$Ultimate##0 ~n := #in~n; 67726#L25 assume !(~n <= 0); 67711#L26 call #t~ret0 := fact(~n - 1);< 67713#$Ultimate##0 ~n := #in~n; 67728#L25 assume ~n <= 0;#res := 1; 67725#factFINAL assume true; 67709#factEXIT >#66#return; 67712#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67843#factFINAL assume true; 67671#factEXIT >#78#return; 67669#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 67667#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 67665#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 67664#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 67639#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 67610#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 67612#$Ultimate##0 ~n := #in~n; 67645#L25 assume !(~n <= 0); 67643#L26 call #t~ret0 := fact(~n - 1);< 67644#$Ultimate##0 ~n := #in~n; 67651#L25 assume !(~n <= 0); 67642#L26 call #t~ret0 := fact(~n - 1);< 67650#$Ultimate##0 ~n := #in~n; 67657#L25 assume ~n <= 0;#res := 1; 67656#factFINAL assume true; 67654#factEXIT >#66#return; 67655#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67648#factFINAL assume true; 67649#factEXIT >#66#return; 67638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67637#factFINAL assume true; 67609#factEXIT >#74#return; 67597#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 67598#$Ultimate##0 ~n := #in~n; 67602#L25 assume ~n <= 0;#res := 1; 67603#factFINAL assume true; 67596#factEXIT >#76#return; 67586#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 67587#$Ultimate##0 ~n := #in~n; 67628#L25 assume !(~n <= 0); 67616#L26 call #t~ret0 := fact(~n - 1);< 67621#$Ultimate##0 ~n := #in~n; 67630#L25 assume !(~n <= 0); 67617#L26 call #t~ret0 := fact(~n - 1);< 67626#$Ultimate##0 ~n := #in~n; 67636#L25 assume ~n <= 0;#res := 1; 67635#factFINAL assume true; 67634#factEXIT >#66#return; 67633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67632#factFINAL assume true; 67631#factEXIT >#66#return; 67619#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67659#factFINAL assume true; 67585#factEXIT >#78#return; 67584#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 67583#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 67582#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 67581#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 67327#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 67321#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 67323#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 67905#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 67293#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 67294#$Ultimate##0 ~n := #in~n; 67868#L25 assume !(~n <= 0); 67848#L26 call #t~ret0 := fact(~n - 1);< 67856#$Ultimate##0 ~n := #in~n; 67876#L25 assume ~n <= 0;#res := 1; 67877#factFINAL assume true; 67846#factEXIT >#66#return; 67853#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67865#factFINAL assume true; 67862#factEXIT >#68#return; 67864#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 67351#$Ultimate##0 ~n := #in~n; 67903#L25 assume ~n <= 0;#res := 1; 67902#factFINAL assume true; 67899#factEXIT >#70#return; 67337#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 67898#$Ultimate##0 ~n := #in~n; 67897#L25 assume !(~n <= 0); 67847#L26 call #t~ret0 := fact(~n - 1);< 67856#$Ultimate##0 ~n := #in~n; 67876#L25 assume ~n <= 0;#res := 1; 67877#factFINAL assume true; 67846#factEXIT >#66#return; 67852#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67936#factFINAL assume true; 67932#factEXIT >#72#return; 67929#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 67925#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 67923#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 67922#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 67920#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 67286#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 67295#$Ultimate##0 ~n := #in~n; 67896#L25 assume !(~n <= 0); 67317#L26 call #t~ret0 := fact(~n - 1);< 67889#$Ultimate##0 ~n := #in~n; 67876#L25 assume ~n <= 0;#res := 1; 67877#factFINAL assume true; 67846#factEXIT >#66#return; 67855#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67299#factFINAL assume true; 67284#factEXIT >#68#return; 67290#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 67280#$Ultimate##0 ~n := #in~n; 67861#L25 assume !(~n <= 0); 67849#L26 call #t~ret0 := fact(~n - 1);< 67856#$Ultimate##0 ~n := #in~n; 67876#L25 assume ~n <= 0;#res := 1; 67877#factFINAL assume true; 67846#factEXIT >#66#return; 67854#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67910#factFINAL assume true; 67909#factEXIT >#70#return; 67348#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 67292#$Ultimate##0 ~n := #in~n; 67347#L25 assume ~n <= 0;#res := 1; 67349#factFINAL assume true; 67950#factEXIT >#72#return; 67949#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 67948#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 67947#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 67946#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 67592#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 67308#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 67278#$Ultimate##0 ~n := #in~n; 67359#L25 assume !(~n <= 0); 67297#L26 call #t~ret0 := fact(~n - 1);< 67315#$Ultimate##0 ~n := #in~n; 67352#L25 assume !(~n <= 0); 67282#L26 call #t~ret0 := fact(~n - 1);< 67551#$Ultimate##0 ~n := #in~n; 67552#L25 assume ~n <= 0;#res := 1; 67663#factFINAL assume true; 67281#factEXIT >#66#return; 67283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67970#factFINAL assume true; 67969#factEXIT >#66#return; 67968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67382#factFINAL assume true; 67383#factEXIT >#74#return; 67309#L30-6 [2023-02-18 08:56:04,914 INFO L750 eck$LassoCheckResult]: Loop: 67309#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 67278#$Ultimate##0 ~n := #in~n; 67359#L25 assume !(~n <= 0); 67297#L26 call #t~ret0 := fact(~n - 1);< 67315#$Ultimate##0 ~n := #in~n; 67345#L25 assume ~n <= 0;#res := 1; 67346#factFINAL assume true; 67661#factEXIT >#66#return; 67662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67967#factFINAL assume true; 67360#factEXIT >#76#return; 67312#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 67278#$Ultimate##0 ~n := #in~n; 67359#L25 assume !(~n <= 0); 67297#L26 call #t~ret0 := fact(~n - 1);< 67315#$Ultimate##0 ~n := #in~n; 67345#L25 assume ~n <= 0;#res := 1; 67346#factFINAL assume true; 67661#factEXIT >#66#return; 67662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67967#factFINAL assume true; 67360#factEXIT >#78#return; 67302#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 67303#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 67329#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 67354#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 67326#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 67319#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 67320#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 67907#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 67863#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 67294#$Ultimate##0 ~n := #in~n; 67868#L25 assume !(~n <= 0); 67848#L26 call #t~ret0 := fact(~n - 1);< 67856#$Ultimate##0 ~n := #in~n; 67887#L25 assume !(~n <= 0); 67871#L26 call #t~ret0 := fact(~n - 1);< 67884#$Ultimate##0 ~n := #in~n; 67888#L25 assume ~n <= 0;#res := 1; 67885#factFINAL assume true; 67882#factEXIT >#66#return; 67883#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67919#factFINAL assume true; 67916#factEXIT >#66#return; 67866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67867#factFINAL assume true; 67906#factEXIT >#68#return; 67901#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 67351#$Ultimate##0 ~n := #in~n; 67903#L25 assume ~n <= 0;#res := 1; 67902#factFINAL assume true; 67899#factEXIT >#70#return; 67338#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 67894#$Ultimate##0 ~n := #in~n; 67891#L25 assume !(~n <= 0); 67870#L26 call #t~ret0 := fact(~n - 1);< 67890#$Ultimate##0 ~n := #in~n; 67887#L25 assume !(~n <= 0); 67871#L26 call #t~ret0 := fact(~n - 1);< 67884#$Ultimate##0 ~n := #in~n; 67888#L25 assume ~n <= 0;#res := 1; 67885#factFINAL assume true; 67882#factEXIT >#66#return; 67883#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67919#factFINAL assume true; 67916#factEXIT >#66#return; 67336#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67341#factFINAL assume true; 67927#factEXIT >#72#return; 67924#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 67921#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 67918#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 67915#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 67913#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 67289#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 67295#$Ultimate##0 ~n := #in~n; 67896#L25 assume !(~n <= 0); 67317#L26 call #t~ret0 := fact(~n - 1);< 67889#$Ultimate##0 ~n := #in~n; 67886#L25 assume !(~n <= 0); 67316#L26 call #t~ret0 := fact(~n - 1);< 67318#$Ultimate##0 ~n := #in~n; 67888#L25 assume ~n <= 0;#res := 1; 67885#factFINAL assume true; 67882#factEXIT >#66#return; 67883#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67919#factFINAL assume true; 67916#factEXIT >#66#return; 67914#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67912#factFINAL assume true; 67911#factEXIT >#68#return; 67775#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 67280#$Ultimate##0 ~n := #in~n; 67861#L25 assume !(~n <= 0); 67849#L26 call #t~ret0 := fact(~n - 1);< 67856#$Ultimate##0 ~n := #in~n; 67876#L25 assume ~n <= 0;#res := 1; 67877#factFINAL assume true; 67846#factEXIT >#66#return; 67854#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67910#factFINAL assume true; 67909#factEXIT >#70#return; 67858#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 67892#$Ultimate##0 ~n := #in~n; 67857#L25 assume !(~n <= 0); 67851#L26 call #t~ret0 := fact(~n - 1);< 67879#$Ultimate##0 ~n := #in~n; 67876#L25 assume ~n <= 0;#res := 1; 67877#factFINAL assume true; 67846#factEXIT >#66#return; 67854#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67910#factFINAL assume true; 67909#factEXIT >#72#return; 67788#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 67956#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 67955#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 67954#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 67333#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 67288#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 67295#$Ultimate##0 ~n := #in~n; 67896#L25 assume !(~n <= 0); 67317#L26 call #t~ret0 := fact(~n - 1);< 67889#$Ultimate##0 ~n := #in~n; 67886#L25 assume !(~n <= 0); 67316#L26 call #t~ret0 := fact(~n - 1);< 67318#$Ultimate##0 ~n := #in~n; 67888#L25 assume ~n <= 0;#res := 1; 67885#factFINAL assume true; 67882#factEXIT >#66#return; 67883#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67919#factFINAL assume true; 67916#factEXIT >#66#return; 67914#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67912#factFINAL assume true; 67911#factEXIT >#68#return; 67784#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 67280#$Ultimate##0 ~n := #in~n; 67861#L25 assume !(~n <= 0); 67849#L26 call #t~ret0 := fact(~n - 1);< 67856#$Ultimate##0 ~n := #in~n; 67876#L25 assume ~n <= 0;#res := 1; 67877#factFINAL assume true; 67846#factEXIT >#66#return; 67854#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67910#factFINAL assume true; 67909#factEXIT >#70#return; 67859#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 67892#$Ultimate##0 ~n := #in~n; 67857#L25 assume ~n <= 0;#res := 1; 67349#factFINAL assume true; 67950#factEXIT >#72#return; 67951#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 67963#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 67961#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 67960#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 67940#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 67307#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 67278#$Ultimate##0 ~n := #in~n; 67359#L25 assume !(~n <= 0); 67297#L26 call #t~ret0 := fact(~n - 1);< 67315#$Ultimate##0 ~n := #in~n; 67352#L25 assume !(~n <= 0); 67282#L26 call #t~ret0 := fact(~n - 1);< 67551#$Ultimate##0 ~n := #in~n; 67552#L25 assume ~n <= 0;#res := 1; 67663#factFINAL assume true; 67281#factEXIT >#66#return; 67283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67970#factFINAL assume true; 67969#factEXIT >#66#return; 67968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 67382#factFINAL assume true; 67383#factEXIT >#74#return; 67309#L30-6 [2023-02-18 08:56:04,914 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:04,915 INFO L85 PathProgramCache]: Analyzing trace with hash -1218392802, now seen corresponding path program 15 times [2023-02-18 08:56:04,915 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:04,915 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [213467756] [2023-02-18 08:56:04,915 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:04,915 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:04,921 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:04,921 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [897900925] [2023-02-18 08:56:04,922 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:56:04,922 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:04,922 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:04,930 INFO L229 MonitoredProcess]: Starting monitored process 121 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:04,930 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (121)] Waiting until timeout for monitored process [2023-02-18 08:56:05,035 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 11 check-sat command(s) [2023-02-18 08:56:05,035 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:05,035 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:05,079 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:05,102 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:05,103 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:05,103 INFO L85 PathProgramCache]: Analyzing trace with hash -1046253162, now seen corresponding path program 17 times [2023-02-18 08:56:05,103 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:05,103 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1578266141] [2023-02-18 08:56:05,104 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:05,104 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:05,108 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:05,108 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1727141616] [2023-02-18 08:56:05,108 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:56:05,108 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:05,108 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:05,111 INFO L229 MonitoredProcess]: Starting monitored process 122 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:05,111 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (122)] Waiting until timeout for monitored process [2023-02-18 08:56:05,219 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 22 check-sat command(s) [2023-02-18 08:56:05,220 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:05,221 INFO L263 TraceCheckSpWp]: Trace formula consists of 300 conjuncts, 10 conjunts are in the unsatisfiable core [2023-02-18 08:56:05,222 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:05,244 INFO L134 CoverageAnalysis]: Checked inductivity of 1651 backedges. 603 proven. 6 refuted. 0 times theorem prover too weak. 1042 trivial. 0 not checked. [2023-02-18 08:56:05,244 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:05,277 INFO L134 CoverageAnalysis]: Checked inductivity of 1651 backedges. 183 proven. 35 refuted. 0 times theorem prover too weak. 1433 trivial. 0 not checked. [2023-02-18 08:56:05,277 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:05,277 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1578266141] [2023-02-18 08:56:05,277 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:05,277 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1727141616] [2023-02-18 08:56:05,277 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1727141616] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:05,277 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:05,278 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 10] total 11 [2023-02-18 08:56:05,278 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [751176532] [2023-02-18 08:56:05,278 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:05,278 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:05,278 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:05,279 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2023-02-18 08:56:05,279 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=28, Invalid=82, Unknown=0, NotChecked=0, Total=110 [2023-02-18 08:56:05,279 INFO L87 Difference]: Start difference. First operand 694 states and 980 transitions. cyclomatic complexity: 301 Second operand has 11 states, 10 states have (on average 4.3) internal successors, (43), 11 states have internal predecessors, (43), 7 states have call successors, (18), 2 states have call predecessors, (18), 4 states have return successors, (18), 6 states have call predecessors, (18), 7 states have call successors, (18) [2023-02-18 08:56:05,417 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:05,417 INFO L93 Difference]: Finished difference Result 686 states and 951 transitions. [2023-02-18 08:56:05,417 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 686 states and 951 transitions. [2023-02-18 08:56:05,429 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 82 [2023-02-18 08:56:05,433 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 686 states to 686 states and 951 transitions. [2023-02-18 08:56:05,433 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 55 [2023-02-18 08:56:05,433 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 55 [2023-02-18 08:56:05,433 INFO L73 IsDeterministic]: Start isDeterministic. Operand 686 states and 951 transitions. [2023-02-18 08:56:05,433 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:05,433 INFO L218 hiAutomatonCegarLoop]: Abstraction has 686 states and 951 transitions. [2023-02-18 08:56:05,434 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 686 states and 951 transitions. [2023-02-18 08:56:05,446 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 686 to 677. [2023-02-18 08:56:05,446 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 677 states, 424 states have (on average 1.0778301886792452) internal successors, (457), 434 states have internal predecessors, (457), 167 states have call successors, (169), 67 states have call predecessors, (169), 86 states have return successors, (315), 175 states have call predecessors, (315), 167 states have call successors, (315) [2023-02-18 08:56:05,448 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 677 states to 677 states and 941 transitions. [2023-02-18 08:56:05,448 INFO L240 hiAutomatonCegarLoop]: Abstraction has 677 states and 941 transitions. [2023-02-18 08:56:05,449 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2023-02-18 08:56:05,449 INFO L428 stractBuchiCegarLoop]: Abstraction has 677 states and 941 transitions. [2023-02-18 08:56:05,449 INFO L335 stractBuchiCegarLoop]: ======== Iteration 30 ============ [2023-02-18 08:56:05,449 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 677 states and 941 transitions. [2023-02-18 08:56:05,450 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 82 [2023-02-18 08:56:05,450 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:05,451 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:05,451 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [28, 28, 16, 12, 12, 12, 12, 6, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:05,451 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [28, 28, 16, 16, 16, 16, 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-18 08:56:05,452 INFO L748 eck$LassoCheckResult]: Stem: 69792#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 69734#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; 69735#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 69762#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; 69793#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 70191#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 70189#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 70185#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 70186#$Ultimate##0 ~n := #in~n; 70190#L25 assume ~n <= 0;#res := 1; 70188#factFINAL assume true; 70184#factEXIT >#68#return; 70180#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 70181#$Ultimate##0 ~n := #in~n; 70187#L25 assume ~n <= 0;#res := 1; 70183#factFINAL assume true; 70179#factEXIT >#70#return; 70176#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 70177#$Ultimate##0 ~n := #in~n; 70182#L25 assume ~n <= 0;#res := 1; 70178#factFINAL assume true; 70175#factEXIT >#72#return; 70174#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 70173#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 70172#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 70171#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 70170#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 70130#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 70132#$Ultimate##0 ~n := #in~n; 70216#L25 assume !(~n <= 0); 70201#L26 call #t~ret0 := fact(~n - 1);< 70202#$Ultimate##0 ~n := #in~n; 70223#L25 assume ~n <= 0;#res := 1; 70220#factFINAL assume true; 70217#factEXIT >#66#return; 70192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70193#factFINAL assume true; 70129#factEXIT >#74#return; 70123#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 70124#$Ultimate##0 ~n := #in~n; 70229#L25 assume ~n <= 0;#res := 1; 70228#factFINAL assume true; 70225#factEXIT >#76#return; 70221#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 70224#$Ultimate##0 ~n := #in~n; 70222#L25 assume !(~n <= 0); 70218#L26 call #t~ret0 := fact(~n - 1);< 70202#$Ultimate##0 ~n := #in~n; 70223#L25 assume ~n <= 0;#res := 1; 70220#factFINAL assume true; 70217#factEXIT >#66#return; 70219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70246#factFINAL assume true; 70247#factEXIT >#78#return; 69738#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 69739#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 70057#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 70049#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 70046#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 70031#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 70033#$Ultimate##0 ~n := #in~n; 70077#L25 assume !(~n <= 0); 70042#L26 call #t~ret0 := fact(~n - 1);< 70044#$Ultimate##0 ~n := #in~n; 70084#L25 assume !(~n <= 0); 70043#L26 call #t~ret0 := fact(~n - 1);< 70083#$Ultimate##0 ~n := #in~n; 70121#L25 assume ~n <= 0;#res := 1; 70120#factFINAL assume true; 70118#factEXIT >#66#return; 70119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70081#factFINAL assume true; 70082#factEXIT >#66#return; 70038#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70037#factFINAL assume true; 70030#factEXIT >#74#return; 70024#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 70025#$Ultimate##0 ~n := #in~n; 70068#L25 assume ~n <= 0;#res := 1; 70067#factFINAL assume true; 70023#factEXIT >#76#return; 70019#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 70020#$Ultimate##0 ~n := #in~n; 70065#L25 assume !(~n <= 0); 70052#L26 call #t~ret0 := fact(~n - 1);< 70056#$Ultimate##0 ~n := #in~n; 70069#L25 assume !(~n <= 0); 70053#L26 call #t~ret0 := fact(~n - 1);< 70060#$Ultimate##0 ~n := #in~n; 70076#L25 assume ~n <= 0;#res := 1; 70075#factFINAL assume true; 70074#factEXIT >#66#return; 70072#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70070#factFINAL assume true; 70061#factEXIT >#66#return; 70054#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70058#factFINAL assume true; 70035#factEXIT >#78#return; 70015#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 70013#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 69825#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 69819#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 69761#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 69755#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 69756#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 70340#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 69722#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 69731#$Ultimate##0 ~n := #in~n; 70364#L25 assume !(~n <= 0); 69775#L26 call #t~ret0 := fact(~n - 1);< 70317#$Ultimate##0 ~n := #in~n; 69773#L25 assume ~n <= 0;#res := 1; 69779#factFINAL assume true; 70309#factEXIT >#66#return; 70310#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70350#factFINAL assume true; 70349#factEXIT >#68#return; 70337#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 69782#$Ultimate##0 ~n := #in~n; 70363#L25 assume ~n <= 0;#res := 1; 70362#factFINAL assume true; 70334#factEXIT >#70#return; 70330#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 70343#$Ultimate##0 ~n := #in~n; 70353#L25 assume !(~n <= 0); 69776#L26 call #t~ret0 := fact(~n - 1);< 70317#$Ultimate##0 ~n := #in~n; 69773#L25 assume ~n <= 0;#res := 1; 69779#factFINAL assume true; 70309#factEXIT >#66#return; 70311#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70345#factFINAL assume true; 70342#factEXIT >#72#return; 70333#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 70380#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 70379#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 70378#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 70377#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 69732#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 69733#$Ultimate##0 ~n := #in~n; 70324#L25 assume !(~n <= 0); 69751#L26 call #t~ret0 := fact(~n - 1);< 70321#$Ultimate##0 ~n := #in~n; 69773#L25 assume ~n <= 0;#res := 1; 69779#factFINAL assume true; 70309#factEXIT >#66#return; 70312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70360#factFINAL assume true; 70359#factEXIT >#68#return; 70109#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 69716#$Ultimate##0 ~n := #in~n; 70280#L25 assume !(~n <= 0); 69777#L26 call #t~ret0 := fact(~n - 1);< 70317#$Ultimate##0 ~n := #in~n; 69773#L25 assume ~n <= 0;#res := 1; 69779#factFINAL assume true; 70309#factEXIT >#66#return; 70303#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70302#factFINAL assume true; 70301#factEXIT >#70#return; 70296#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 70298#$Ultimate##0 ~n := #in~n; 70300#L25 assume ~n <= 0;#res := 1; 70299#factFINAL assume true; 70295#factEXIT >#72#return; 70294#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 70292#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 70293#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 70368#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 70366#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 69742#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 69714#$Ultimate##0 ~n := #in~n; 69818#L25 assume !(~n <= 0); 69728#L26 call #t~ret0 := fact(~n - 1);< 69749#$Ultimate##0 ~n := #in~n; 69783#L25 assume !(~n <= 0); 69718#L26 call #t~ret0 := fact(~n - 1);< 70008#$Ultimate##0 ~n := #in~n; 70009#L25 assume ~n <= 0;#res := 1; 70269#factFINAL assume true; 69717#factEXIT >#66#return; 69719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 69770#factFINAL assume true; 70278#factEXIT >#66#return; 70257#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70253#factFINAL assume true; 70254#factEXIT >#74#return; 69744#L30-6 [2023-02-18 08:56:05,452 INFO L750 eck$LassoCheckResult]: Loop: 69744#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 69714#$Ultimate##0 ~n := #in~n; 69818#L25 assume !(~n <= 0); 69728#L26 call #t~ret0 := fact(~n - 1);< 69749#$Ultimate##0 ~n := #in~n; 69772#L25 assume ~n <= 0;#res := 1; 69727#factFINAL assume true; 69729#factEXIT >#66#return; 70268#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70385#factFINAL assume true; 69796#factEXIT >#76#return; 69740#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 69714#$Ultimate##0 ~n := #in~n; 69818#L25 assume !(~n <= 0); 69728#L26 call #t~ret0 := fact(~n - 1);< 69749#$Ultimate##0 ~n := #in~n; 69772#L25 assume ~n <= 0;#res := 1; 69727#factFINAL assume true; 69729#factEXIT >#66#return; 70268#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70385#factFINAL assume true; 69796#factEXIT >#78#return; 69736#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 69737#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 69763#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 69791#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 69760#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 69753#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 69754#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 69766#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 69723#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 69731#$Ultimate##0 ~n := #in~n; 70364#L25 assume !(~n <= 0); 69775#L26 call #t~ret0 := fact(~n - 1);< 70317#$Ultimate##0 ~n := #in~n; 70356#L25 assume !(~n <= 0); 70259#L26 call #t~ret0 := fact(~n - 1);< 70355#$Ultimate##0 ~n := #in~n; 70358#L25 assume ~n <= 0;#res := 1; 70357#factFINAL assume true; 70354#factEXIT >#66#return; 70352#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70288#factFINAL assume true; 70289#factEXIT >#66#return; 69771#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 69730#factFINAL assume true; 69720#factEXIT >#68#return; 69724#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 69782#$Ultimate##0 ~n := #in~n; 70363#L25 assume ~n <= 0;#res := 1; 70362#factFINAL assume true; 70334#factEXIT >#70#return; 69725#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 69726#$Ultimate##0 ~n := #in~n; 70371#L25 assume !(~n <= 0); 70260#L26 call #t~ret0 := fact(~n - 1);< 70291#$Ultimate##0 ~n := #in~n; 70356#L25 assume !(~n <= 0); 70259#L26 call #t~ret0 := fact(~n - 1);< 70355#$Ultimate##0 ~n := #in~n; 70358#L25 assume ~n <= 0;#res := 1; 70357#factFINAL assume true; 70354#factEXIT >#66#return; 70352#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70288#factFINAL assume true; 70289#factEXIT >#66#return; 70263#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70365#factFINAL assume true; 70328#factEXIT >#72#return; 70331#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 70376#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 70374#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 70373#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 70372#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 70305#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 69733#$Ultimate##0 ~n := #in~n; 70324#L25 assume !(~n <= 0); 69751#L26 call #t~ret0 := fact(~n - 1);< 70321#$Ultimate##0 ~n := #in~n; 70308#L25 assume !(~n <= 0); 69750#L26 call #t~ret0 := fact(~n - 1);< 69752#$Ultimate##0 ~n := #in~n; 70358#L25 assume ~n <= 0;#res := 1; 70357#factFINAL assume true; 70354#factEXIT >#66#return; 70352#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70288#factFINAL assume true; 70289#factEXIT >#66#return; 70315#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70313#factFINAL assume true; 70304#factEXIT >#68#return; 70112#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 69716#$Ultimate##0 ~n := #in~n; 70280#L25 assume !(~n <= 0); 69777#L26 call #t~ret0 := fact(~n - 1);< 70317#$Ultimate##0 ~n := #in~n; 69773#L25 assume ~n <= 0;#res := 1; 69779#factFINAL assume true; 70309#factEXIT >#66#return; 70303#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70302#factFINAL assume true; 70301#factEXIT >#70#return; 70251#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 70252#$Ultimate##0 ~n := #in~n; 70375#L25 assume !(~n <= 0); 69774#L26 call #t~ret0 := fact(~n - 1);< 70267#$Ultimate##0 ~n := #in~n; 69773#L25 assume ~n <= 0;#res := 1; 69779#factFINAL assume true; 70309#factEXIT >#66#return; 70303#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70302#factFINAL assume true; 70301#factEXIT >#72#return; 70115#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 70383#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 70382#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 70381#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 69767#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 69768#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 69733#$Ultimate##0 ~n := #in~n; 70324#L25 assume !(~n <= 0); 69751#L26 call #t~ret0 := fact(~n - 1);< 70321#$Ultimate##0 ~n := #in~n; 70308#L25 assume !(~n <= 0); 69750#L26 call #t~ret0 := fact(~n - 1);< 69752#$Ultimate##0 ~n := #in~n; 70358#L25 assume ~n <= 0;#res := 1; 70357#factFINAL assume true; 70354#factEXIT >#66#return; 70352#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70288#factFINAL assume true; 70289#factEXIT >#66#return; 70315#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70313#factFINAL assume true; 70304#factEXIT >#68#return; 70103#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 69716#$Ultimate##0 ~n := #in~n; 70280#L25 assume !(~n <= 0); 69777#L26 call #t~ret0 := fact(~n - 1);< 70317#$Ultimate##0 ~n := #in~n; 70356#L25 assume !(~n <= 0); 70259#L26 call #t~ret0 := fact(~n - 1);< 70355#$Ultimate##0 ~n := #in~n; 70358#L25 assume ~n <= 0;#res := 1; 70357#factFINAL assume true; 70354#factEXIT >#66#return; 70352#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70288#factFINAL assume true; 70289#factEXIT >#66#return; 70255#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70256#factFINAL assume true; 70319#factEXIT >#70#return; 70114#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 70298#$Ultimate##0 ~n := #in~n; 70300#L25 assume ~n <= 0;#res := 1; 70299#factFINAL assume true; 70295#factEXIT >#72#return; 70297#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 70370#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 70287#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 70286#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 70281#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 69747#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 69714#$Ultimate##0 ~n := #in~n; 69818#L25 assume !(~n <= 0); 69728#L26 call #t~ret0 := fact(~n - 1);< 69749#$Ultimate##0 ~n := #in~n; 69783#L25 assume !(~n <= 0); 69718#L26 call #t~ret0 := fact(~n - 1);< 70008#$Ultimate##0 ~n := #in~n; 70009#L25 assume ~n <= 0;#res := 1; 70269#factFINAL assume true; 69717#factEXIT >#66#return; 69719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 69770#factFINAL assume true; 70278#factEXIT >#66#return; 70257#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 70253#factFINAL assume true; 70254#factEXIT >#74#return; 69744#L30-6 [2023-02-18 08:56:05,452 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:05,452 INFO L85 PathProgramCache]: Analyzing trace with hash -1218392802, now seen corresponding path program 16 times [2023-02-18 08:56:05,452 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:05,453 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1331769824] [2023-02-18 08:56:05,453 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:05,453 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:05,457 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:05,457 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2068624607] [2023-02-18 08:56:05,458 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:56:05,458 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:05,458 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:05,461 INFO L229 MonitoredProcess]: Starting monitored process 123 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:05,461 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (123)] Waiting until timeout for monitored process [2023-02-18 08:56:05,561 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:56:05,562 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:05,562 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:05,606 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:05,630 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:05,630 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:05,630 INFO L85 PathProgramCache]: Analyzing trace with hash -1083371490, now seen corresponding path program 18 times [2023-02-18 08:56:05,630 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:05,630 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1952525930] [2023-02-18 08:56:05,630 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:05,630 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:05,634 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:05,634 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1626842329] [2023-02-18 08:56:05,635 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:56:05,635 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:05,635 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:05,637 INFO L229 MonitoredProcess]: Starting monitored process 124 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:05,638 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (124)] Waiting until timeout for monitored process [2023-02-18 08:56:05,706 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 18 check-sat command(s) [2023-02-18 08:56:05,706 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:05,707 INFO L263 TraceCheckSpWp]: Trace formula consists of 218 conjuncts, 20 conjunts are in the unsatisfiable core [2023-02-18 08:56:05,709 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:05,764 INFO L134 CoverageAnalysis]: Checked inductivity of 1789 backedges. 333 proven. 164 refuted. 0 times theorem prover too weak. 1292 trivial. 0 not checked. [2023-02-18 08:56:05,764 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:05,879 INFO L134 CoverageAnalysis]: Checked inductivity of 1789 backedges. 339 proven. 163 refuted. 0 times theorem prover too weak. 1287 trivial. 0 not checked. [2023-02-18 08:56:05,879 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:05,879 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1952525930] [2023-02-18 08:56:05,879 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:05,880 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1626842329] [2023-02-18 08:56:05,880 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1626842329] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:05,880 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:05,880 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 18 [2023-02-18 08:56:05,880 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [98433854] [2023-02-18 08:56:05,880 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:05,880 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:05,880 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:05,881 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2023-02-18 08:56:05,881 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=55, Invalid=287, Unknown=0, NotChecked=0, Total=342 [2023-02-18 08:56:05,881 INFO L87 Difference]: Start difference. First operand 677 states and 941 transitions. cyclomatic complexity: 278 Second operand has 19 states, 15 states have (on average 3.0) internal successors, (45), 18 states have internal predecessors, (45), 11 states have call successors, (19), 1 states have call predecessors, (19), 6 states have return successors, (20), 9 states have call predecessors, (20), 11 states have call successors, (20) [2023-02-18 08:56:06,257 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:06,257 INFO L93 Difference]: Finished difference Result 852 states and 1201 transitions. [2023-02-18 08:56:06,257 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 852 states and 1201 transitions. [2023-02-18 08:56:06,265 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 78 [2023-02-18 08:56:06,270 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 852 states to 848 states and 1193 transitions. [2023-02-18 08:56:06,270 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 85 [2023-02-18 08:56:06,270 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 85 [2023-02-18 08:56:06,270 INFO L73 IsDeterministic]: Start isDeterministic. Operand 848 states and 1193 transitions. [2023-02-18 08:56:06,270 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:06,270 INFO L218 hiAutomatonCegarLoop]: Abstraction has 848 states and 1193 transitions. [2023-02-18 08:56:06,271 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 848 states and 1193 transitions. [2023-02-18 08:56:06,279 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 848 to 759. [2023-02-18 08:56:06,289 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 759 states, 477 states have (on average 1.0775681341719077) internal successors, (514), 488 states have internal predecessors, (514), 195 states have call successors, (197), 74 states have call predecessors, (197), 87 states have return successors, (353), 196 states have call predecessors, (353), 195 states have call successors, (353) [2023-02-18 08:56:06,296 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 759 states to 759 states and 1064 transitions. [2023-02-18 08:56:06,296 INFO L240 hiAutomatonCegarLoop]: Abstraction has 759 states and 1064 transitions. [2023-02-18 08:56:06,296 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2023-02-18 08:56:06,297 INFO L428 stractBuchiCegarLoop]: Abstraction has 759 states and 1064 transitions. [2023-02-18 08:56:06,297 INFO L335 stractBuchiCegarLoop]: ======== Iteration 31 ============ [2023-02-18 08:56:06,297 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 759 states and 1064 transitions. [2023-02-18 08:56:06,298 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 78 [2023-02-18 08:56:06,298 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:06,299 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:06,299 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [30, 30, 17, 13, 13, 13, 13, 6, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:06,299 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [33, 33, 21, 21, 21, 21, 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-18 08:56:06,300 INFO L748 eck$LassoCheckResult]: Stem: 72428#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 72382#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; 72383#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 72403#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; 72429#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 72839#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 72838#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 72831#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 72832#$Ultimate##0 ~n := #in~n; 72837#L25 assume ~n <= 0;#res := 1; 72836#factFINAL assume true; 72830#factEXIT >#68#return; 72824#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 72825#$Ultimate##0 ~n := #in~n; 72835#L25 assume ~n <= 0;#res := 1; 72829#factFINAL assume true; 72823#factEXIT >#70#return; 72820#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 72821#$Ultimate##0 ~n := #in~n; 72828#L25 assume ~n <= 0;#res := 1; 72822#factFINAL assume true; 72819#factEXIT >#72#return; 72817#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 72814#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 72810#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 72804#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 72802#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 72799#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 72800#$Ultimate##0 ~n := #in~n; 72813#L25 assume !(~n <= 0); 72807#L26 call #t~ret0 := fact(~n - 1);< 72809#$Ultimate##0 ~n := #in~n; 72815#L25 assume ~n <= 0;#res := 1; 72811#factFINAL assume true; 72805#factEXIT >#66#return; 72803#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 72801#factFINAL assume true; 72798#factEXIT >#74#return; 72415#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 72827#$Ultimate##0 ~n := #in~n; 72834#L25 assume ~n <= 0;#res := 1; 72833#factFINAL assume true; 72826#factEXIT >#76#return; 72812#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 72818#$Ultimate##0 ~n := #in~n; 72816#L25 assume !(~n <= 0); 72806#L26 call #t~ret0 := fact(~n - 1);< 72809#$Ultimate##0 ~n := #in~n; 72815#L25 assume ~n <= 0;#res := 1; 72811#factFINAL assume true; 72805#factEXIT >#66#return; 72808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 72845#factFINAL assume true; 72843#factEXIT >#78#return; 72784#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 72783#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 72781#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 72780#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 72726#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 72723#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 72725#$Ultimate##0 ~n := #in~n; 72765#L25 assume !(~n <= 0); 72763#L26 call #t~ret0 := fact(~n - 1);< 72764#$Ultimate##0 ~n := #in~n; 72770#L25 assume !(~n <= 0); 72762#L26 call #t~ret0 := fact(~n - 1);< 72769#$Ultimate##0 ~n := #in~n; 72779#L25 assume ~n <= 0;#res := 1; 72778#factFINAL assume true; 72776#factEXIT >#66#return; 72777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 72767#factFINAL assume true; 72768#factEXIT >#66#return; 72759#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 72757#factFINAL assume true; 72722#factEXIT >#74#return; 72703#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 72710#$Ultimate##0 ~n := #in~n; 72711#L25 assume ~n <= 0;#res := 1; 72702#factFINAL assume true; 72704#factEXIT >#76#return; 72476#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 72477#$Ultimate##0 ~n := #in~n; 72746#L25 assume !(~n <= 0); 72734#L26 call #t~ret0 := fact(~n - 1);< 72738#$Ultimate##0 ~n := #in~n; 72745#L25 assume !(~n <= 0); 72733#L26 call #t~ret0 := fact(~n - 1);< 72743#$Ultimate##0 ~n := #in~n; 72755#L25 assume ~n <= 0;#res := 1; 72754#factFINAL assume true; 72752#factEXIT >#66#return; 72750#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 72749#factFINAL assume true; 72748#factEXIT >#66#return; 72736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 72935#factFINAL assume true; 72475#factEXIT >#78#return; 72440#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 72441#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 72435#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 72436#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 72399#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 72400#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 72688#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 73022#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 72378#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 72379#$Ultimate##0 ~n := #in~n; 73041#L25 assume !(~n <= 0); 72980#L26 call #t~ret0 := fact(~n - 1);< 72987#$Ultimate##0 ~n := #in~n; 73040#L25 assume ~n <= 0;#res := 1; 73039#factFINAL assume true; 73032#factEXIT >#66#return; 73035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 73029#factFINAL assume true; 73028#factEXIT >#68#return; 73018#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 72420#$Ultimate##0 ~n := #in~n; 73027#L25 assume ~n <= 0;#res := 1; 73026#factFINAL assume true; 73015#factEXIT >#70#return; 72949#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 72952#$Ultimate##0 ~n := #in~n; 73066#L25 assume !(~n <= 0); 72978#L26 call #t~ret0 := fact(~n - 1);< 72987#$Ultimate##0 ~n := #in~n; 73040#L25 assume ~n <= 0;#res := 1; 73039#factFINAL assume true; 73032#factEXIT >#66#return; 73034#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 73071#factFINAL assume true; 72948#factEXIT >#72#return; 72951#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 73070#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 73069#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 73068#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 72942#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 72937#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 72381#$Ultimate##0 ~n := #in~n; 73045#L25 assume !(~n <= 0); 72981#L26 call #t~ret0 := fact(~n - 1);< 73043#$Ultimate##0 ~n := #in~n; 73040#L25 assume ~n <= 0;#res := 1; 73039#factFINAL assume true; 73032#factEXIT >#66#return; 73036#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 73073#factFINAL assume true; 72936#factEXIT >#68#return; 72894#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 72432#$Ultimate##0 ~n := #in~n; 72988#L25 assume !(~n <= 0); 72976#L26 call #t~ret0 := fact(~n - 1);< 72987#$Ultimate##0 ~n := #in~n; 73040#L25 assume ~n <= 0;#res := 1; 73039#factFINAL assume true; 73032#factEXIT >#66#return; 73030#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 72968#factFINAL assume true; 72934#factEXIT >#70#return; 72925#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 72931#$Ultimate##0 ~n := #in~n; 72933#L25 assume ~n <= 0;#res := 1; 72932#factFINAL assume true; 72924#factEXIT >#72#return; 72929#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 72964#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 72962#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 72957#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 72713#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 72445#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 72424#$Ultimate##0 ~n := #in~n; 72712#L25 assume !(~n <= 0); 72372#L26 call #t~ret0 := fact(~n - 1);< 72707#$Ultimate##0 ~n := #in~n; 72421#L25 assume !(~n <= 0); 72364#L26 call #t~ret0 := fact(~n - 1);< 72705#$Ultimate##0 ~n := #in~n; 72706#L25 assume ~n <= 0;#res := 1; 72889#factFINAL assume true; 72363#factEXIT >#66#return; 72365#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 72371#factFINAL assume true; 72374#factEXIT >#66#return; 72878#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 72793#factFINAL assume true; 72794#factEXIT >#74#return; 72423#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 72424#$Ultimate##0 ~n := #in~n; 72712#L25 assume !(~n <= 0); 72372#L26 call #t~ret0 := fact(~n - 1);< 72707#$Ultimate##0 ~n := #in~n; 72412#L25 assume ~n <= 0;#res := 1; 72413#factFINAL assume true; 72880#factEXIT >#66#return; 72881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 73117#factFINAL assume true; 72442#factEXIT >#76#return; 72430#L30-7 [2023-02-18 08:56:06,300 INFO L750 eck$LassoCheckResult]: Loop: 72430#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 72424#$Ultimate##0 ~n := #in~n; 72712#L25 assume !(~n <= 0); 72372#L26 call #t~ret0 := fact(~n - 1);< 72707#$Ultimate##0 ~n := #in~n; 72412#L25 assume ~n <= 0;#res := 1; 72413#factFINAL assume true; 72880#factEXIT >#66#return; 72881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 73117#factFINAL assume true; 72442#factEXIT >#78#return; 72384#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 72385#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 72404#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 72427#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 72398#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 72393#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 72394#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 72406#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 72407#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 72379#$Ultimate##0 ~n := #in~n; 73041#L25 assume !(~n <= 0); 72980#L26 call #t~ret0 := fact(~n - 1);< 72987#$Ultimate##0 ~n := #in~n; 73058#L25 assume !(~n <= 0); 72975#L26 call #t~ret0 := fact(~n - 1);< 73055#$Ultimate##0 ~n := #in~n; 73058#L25 assume !(~n <= 0); 72975#L26 call #t~ret0 := fact(~n - 1);< 73055#$Ultimate##0 ~n := #in~n; 73064#L25 assume ~n <= 0;#res := 1; 73062#factFINAL assume true; 73053#factEXIT >#66#return; 73052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 73049#factFINAL assume true; 72974#factEXIT >#66#return; 72983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 73078#factFINAL assume true; 72993#factEXIT >#66#return; 72995#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 73044#factFINAL assume true; 73042#factEXIT >#68#return; 73017#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 72420#$Ultimate##0 ~n := #in~n; 73027#L25 assume ~n <= 0;#res := 1; 73026#factFINAL assume true; 73015#factEXIT >#70#return; 72369#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 72370#$Ultimate##0 ~n := #in~n; 73065#L25 assume !(~n <= 0); 72977#L26 call #t~ret0 := fact(~n - 1);< 73050#$Ultimate##0 ~n := #in~n; 73058#L25 assume !(~n <= 0); 72975#L26 call #t~ret0 := fact(~n - 1);< 73055#$Ultimate##0 ~n := #in~n; 73064#L25 assume ~n <= 0;#res := 1; 73062#factFINAL assume true; 73053#factEXIT >#66#return; 73052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 73049#factFINAL assume true; 72974#factEXIT >#66#return; 72984#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 73111#factFINAL assume true; 73010#factEXIT >#72#return; 72401#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 72402#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 72411#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 73079#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 72408#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 72409#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 72961#$Ultimate##0 ~n := #in~n; 72997#L25 assume !(~n <= 0); 72982#L26 call #t~ret0 := fact(~n - 1);< 72987#$Ultimate##0 ~n := #in~n; 73058#L25 assume !(~n <= 0); 72975#L26 call #t~ret0 := fact(~n - 1);< 73055#$Ultimate##0 ~n := #in~n; 73058#L25 assume !(~n <= 0); 72975#L26 call #t~ret0 := fact(~n - 1);< 73055#$Ultimate##0 ~n := #in~n; 73064#L25 assume ~n <= 0;#res := 1; 73062#factFINAL assume true; 73053#factEXIT >#66#return; 73052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 73049#factFINAL assume true; 72974#factEXIT >#66#return; 72983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 73078#factFINAL assume true; 72993#factEXIT >#66#return; 72991#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 72990#factFINAL assume true; 72958#factEXIT >#68#return; 72900#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 72954#$Ultimate##0 ~n := #in~n; 72989#L25 assume !(~n <= 0); 72976#L26 call #t~ret0 := fact(~n - 1);< 72987#$Ultimate##0 ~n := #in~n; 73040#L25 assume ~n <= 0;#res := 1; 73039#factFINAL assume true; 73032#factEXIT >#66#return; 73030#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 72968#factFINAL assume true; 72934#factEXIT >#70#return; 72908#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 72954#$Ultimate##0 ~n := #in~n; 72989#L25 assume !(~n <= 0); 72976#L26 call #t~ret0 := fact(~n - 1);< 72987#$Ultimate##0 ~n := #in~n; 73040#L25 assume ~n <= 0;#res := 1; 73039#factFINAL assume true; 73032#factEXIT >#66#return; 73030#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 72968#factFINAL assume true; 72934#factEXIT >#72#return; 72919#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 73004#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 73002#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 73001#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 73000#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 72960#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 72961#$Ultimate##0 ~n := #in~n; 72997#L25 assume !(~n <= 0); 72982#L26 call #t~ret0 := fact(~n - 1);< 72987#$Ultimate##0 ~n := #in~n; 73058#L25 assume !(~n <= 0); 72975#L26 call #t~ret0 := fact(~n - 1);< 73055#$Ultimate##0 ~n := #in~n; 73064#L25 assume ~n <= 0;#res := 1; 73062#factFINAL assume true; 73053#factEXIT >#66#return; 73052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 73049#factFINAL assume true; 72974#factEXIT >#66#return; 72986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 73014#factFINAL assume true; 73003#factEXIT >#68#return; 72893#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 72954#$Ultimate##0 ~n := #in~n; 72989#L25 assume !(~n <= 0); 72976#L26 call #t~ret0 := fact(~n - 1);< 72987#$Ultimate##0 ~n := #in~n; 73058#L25 assume !(~n <= 0); 72975#L26 call #t~ret0 := fact(~n - 1);< 73055#$Ultimate##0 ~n := #in~n; 73064#L25 assume ~n <= 0;#res := 1; 73062#factFINAL assume true; 73053#factEXIT >#66#return; 73052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 73049#factFINAL assume true; 72974#factEXIT >#66#return; 72972#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 72970#factFINAL assume true; 72956#factEXIT >#70#return; 72922#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 72931#$Ultimate##0 ~n := #in~n; 72933#L25 assume ~n <= 0;#res := 1; 72932#factFINAL assume true; 72924#factEXIT >#72#return; 72930#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 72999#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 72998#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 72996#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 72992#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 72389#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 72360#$Ultimate##0 ~n := #in~n; 72437#L25 assume !(~n <= 0); 72373#L26 call #t~ret0 := fact(~n - 1);< 72390#$Ultimate##0 ~n := #in~n; 72421#L25 assume !(~n <= 0); 72364#L26 call #t~ret0 := fact(~n - 1);< 72705#$Ultimate##0 ~n := #in~n; 72421#L25 assume !(~n <= 0); 72364#L26 call #t~ret0 := fact(~n - 1);< 72705#$Ultimate##0 ~n := #in~n; 72706#L25 assume ~n <= 0;#res := 1; 72889#factFINAL assume true; 72363#factEXIT >#66#return; 72365#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 72371#factFINAL assume true; 72374#factEXIT >#66#return; 72883#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 72885#factFINAL assume true; 72882#factEXIT >#66#return; 72884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 73116#factFINAL assume true; 73115#factEXIT >#74#return; 72449#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 72424#$Ultimate##0 ~n := #in~n; 72712#L25 assume !(~n <= 0); 72372#L26 call #t~ret0 := fact(~n - 1);< 72707#$Ultimate##0 ~n := #in~n; 72421#L25 assume !(~n <= 0); 72364#L26 call #t~ret0 := fact(~n - 1);< 72705#$Ultimate##0 ~n := #in~n; 72421#L25 assume !(~n <= 0); 72364#L26 call #t~ret0 := fact(~n - 1);< 72705#$Ultimate##0 ~n := #in~n; 72706#L25 assume ~n <= 0;#res := 1; 72889#factFINAL assume true; 72363#factEXIT >#66#return; 72365#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 72371#factFINAL assume true; 72374#factEXIT >#66#return; 72883#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 72885#factFINAL assume true; 72882#factEXIT >#66#return; 72884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 73116#factFINAL assume true; 73115#factEXIT >#76#return; 72430#L30-7 [2023-02-18 08:56:06,300 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:06,300 INFO L85 PathProgramCache]: Analyzing trace with hash 1790720477, now seen corresponding path program 17 times [2023-02-18 08:56:06,301 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:06,301 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1653920966] [2023-02-18 08:56:06,301 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:06,301 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:06,309 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:06,310 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1533248854] [2023-02-18 08:56:06,310 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:56:06,310 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:06,310 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:06,313 INFO L229 MonitoredProcess]: Starting monitored process 125 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:06,314 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (125)] Waiting until timeout for monitored process [2023-02-18 08:56:06,444 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 11 check-sat command(s) [2023-02-18 08:56:06,444 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:06,444 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:06,488 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:06,512 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:06,513 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:06,513 INFO L85 PathProgramCache]: Analyzing trace with hash 1685201278, now seen corresponding path program 19 times [2023-02-18 08:56:06,513 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:06,513 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [285730423] [2023-02-18 08:56:06,513 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:06,513 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:06,517 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:06,517 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2139225461] [2023-02-18 08:56:06,517 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:56:06,518 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:06,518 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:06,524 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-18 08:56:06,525 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-18 08:56:06,610 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:56:06,611 INFO L263 TraceCheckSpWp]: Trace formula consists of 464 conjuncts, 17 conjunts are in the unsatisfiable core [2023-02-18 08:56:06,613 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:06,656 INFO L134 CoverageAnalysis]: Checked inductivity of 2569 backedges. 1198 proven. 60 refuted. 0 times theorem prover too weak. 1311 trivial. 0 not checked. [2023-02-18 08:56:06,656 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:06,784 INFO L134 CoverageAnalysis]: Checked inductivity of 2569 backedges. 98 proven. 632 refuted. 0 times theorem prover too weak. 1839 trivial. 0 not checked. [2023-02-18 08:56:06,784 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:06,784 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [285730423] [2023-02-18 08:56:06,784 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:06,784 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2139225461] [2023-02-18 08:56:06,785 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2139225461] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:06,785 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:06,785 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 17] total 20 [2023-02-18 08:56:06,785 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1122089142] [2023-02-18 08:56:06,785 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:06,785 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:06,785 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:06,786 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 20 interpolants. [2023-02-18 08:56:06,786 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=63, Invalid=317, Unknown=0, NotChecked=0, Total=380 [2023-02-18 08:56:06,787 INFO L87 Difference]: Start difference. First operand 759 states and 1064 transitions. cyclomatic complexity: 321 Second operand has 20 states, 17 states have (on average 3.1176470588235294) internal successors, (53), 18 states have internal predecessors, (53), 12 states have call successors, (25), 2 states have call predecessors, (25), 8 states have return successors, (28), 9 states have call predecessors, (28), 12 states have call successors, (28) [2023-02-18 08:56:07,213 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:07,213 INFO L93 Difference]: Finished difference Result 943 states and 1286 transitions. [2023-02-18 08:56:07,213 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 943 states and 1286 transitions. [2023-02-18 08:56:07,217 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 111 [2023-02-18 08:56:07,226 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 943 states to 942 states and 1285 transitions. [2023-02-18 08:56:07,227 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 92 [2023-02-18 08:56:07,227 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 92 [2023-02-18 08:56:07,227 INFO L73 IsDeterministic]: Start isDeterministic. Operand 942 states and 1285 transitions. [2023-02-18 08:56:07,227 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:07,227 INFO L218 hiAutomatonCegarLoop]: Abstraction has 942 states and 1285 transitions. [2023-02-18 08:56:07,228 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 942 states and 1285 transitions. [2023-02-18 08:56:07,235 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 942 to 768. [2023-02-18 08:56:07,236 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 768 states, 483 states have (on average 1.0766045548654244) internal successors, (520), 494 states have internal predecessors, (520), 197 states have call successors, (199), 76 states have call predecessors, (199), 88 states have return successors, (359), 197 states have call predecessors, (359), 197 states have call successors, (359) [2023-02-18 08:56:07,238 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 768 states to 768 states and 1078 transitions. [2023-02-18 08:56:07,238 INFO L240 hiAutomatonCegarLoop]: Abstraction has 768 states and 1078 transitions. [2023-02-18 08:56:07,238 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 22 states. [2023-02-18 08:56:07,238 INFO L428 stractBuchiCegarLoop]: Abstraction has 768 states and 1078 transitions. [2023-02-18 08:56:07,238 INFO L335 stractBuchiCegarLoop]: ======== Iteration 32 ============ [2023-02-18 08:56:07,239 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 768 states and 1078 transitions. [2023-02-18 08:56:07,240 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 78 [2023-02-18 08:56:07,240 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:07,240 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:07,241 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [30, 30, 17, 13, 13, 13, 13, 6, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:07,241 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [36, 36, 24, 24, 24, 24, 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-18 08:56:07,241 INFO L748 eck$LassoCheckResult]: Stem: 75433#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 75380#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; 75381#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 75408#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; 75434#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 75939#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 75937#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 75933#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 75934#$Ultimate##0 ~n := #in~n; 75938#L25 assume ~n <= 0;#res := 1; 75936#factFINAL assume true; 75932#factEXIT >#68#return; 75426#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 75427#$Ultimate##0 ~n := #in~n; 75935#L25 assume ~n <= 0;#res := 1; 75931#factFINAL assume true; 75929#factEXIT >#70#return; 75370#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 75371#$Ultimate##0 ~n := #in~n; 76017#L25 assume ~n <= 0;#res := 1; 76016#factFINAL assume true; 76015#factEXIT >#72#return; 76014#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 75415#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 75416#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 76032#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 75413#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 75414#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 76040#$Ultimate##0 ~n := #in~n; 76050#L25 assume !(~n <= 0); 76045#L26 call #t~ret0 := fact(~n - 1);< 76047#$Ultimate##0 ~n := #in~n; 76051#L25 assume ~n <= 0;#res := 1; 76048#factFINAL assume true; 76043#factEXIT >#66#return; 76042#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 76041#factFINAL assume true; 76038#factEXIT >#74#return; 76020#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 76055#$Ultimate##0 ~n := #in~n; 76056#L25 assume ~n <= 0;#res := 1; 76030#factFINAL assume true; 76031#factEXIT >#76#return; 76049#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 76053#$Ultimate##0 ~n := #in~n; 76052#L25 assume !(~n <= 0); 76044#L26 call #t~ret0 := fact(~n - 1);< 76047#$Ultimate##0 ~n := #in~n; 76051#L25 assume ~n <= 0;#res := 1; 76048#factFINAL assume true; 76043#factEXIT >#66#return; 76046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 76066#factFINAL assume true; 76058#factEXIT >#78#return; 75730#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 75727#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 75724#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 75721#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 75688#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 75682#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 75685#$Ultimate##0 ~n := #in~n; 75744#L25 assume !(~n <= 0); 75742#L26 call #t~ret0 := fact(~n - 1);< 75743#$Ultimate##0 ~n := #in~n; 75749#L25 assume !(~n <= 0); 75741#L26 call #t~ret0 := fact(~n - 1);< 75747#$Ultimate##0 ~n := #in~n; 75764#L25 assume ~n <= 0;#res := 1; 75763#factFINAL assume true; 75761#factEXIT >#66#return; 75762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75745#factFINAL assume true; 75746#factEXIT >#66#return; 75738#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75736#factFINAL assume true; 75681#factEXIT >#74#return; 75679#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 75680#$Ultimate##0 ~n := #in~n; 75739#L25 assume ~n <= 0;#res := 1; 75737#factFINAL assume true; 75678#factEXIT >#76#return; 75676#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 75677#$Ultimate##0 ~n := #in~n; 75711#L25 assume !(~n <= 0); 75699#L26 call #t~ret0 := fact(~n - 1);< 75702#$Ultimate##0 ~n := #in~n; 75713#L25 assume !(~n <= 0); 75697#L26 call #t~ret0 := fact(~n - 1);< 75709#$Ultimate##0 ~n := #in~n; 75719#L25 assume ~n <= 0;#res := 1; 75718#factFINAL assume true; 75717#factEXIT >#66#return; 75716#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75715#factFINAL assume true; 75714#factEXIT >#66#return; 75701#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75734#factFINAL assume true; 75695#factEXIT >#78#return; 75672#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 75665#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 75664#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 75663#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 75662#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 75660#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 75656#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 75411#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 75412#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 75373#$Ultimate##0 ~n := #in~n; 75605#L25 assume !(~n <= 0); 75525#L26 call #t~ret0 := fact(~n - 1);< 75561#$Ultimate##0 ~n := #in~n; 75537#L25 assume ~n <= 0;#res := 1; 75534#factFINAL assume true; 75523#factEXIT >#66#return; 75531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75595#factFINAL assume true; 75591#factEXIT >#68#return; 75582#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 75588#$Ultimate##0 ~n := #in~n; 75594#L25 assume ~n <= 0;#res := 1; 75590#factFINAL assume true; 75581#factEXIT >#70#return; 75576#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 75579#$Ultimate##0 ~n := #in~n; 75611#L25 assume !(~n <= 0); 75526#L26 call #t~ret0 := fact(~n - 1);< 75561#$Ultimate##0 ~n := #in~n; 75537#L25 assume ~n <= 0;#res := 1; 75534#factFINAL assume true; 75523#factEXIT >#66#return; 75532#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75634#factFINAL assume true; 75575#factEXIT >#72#return; 75578#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 75671#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 75647#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 75646#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 75645#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 75513#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 75515#$Ultimate##0 ~n := #in~n; 75536#L25 assume !(~n <= 0); 75524#L26 call #t~ret0 := fact(~n - 1);< 75533#$Ultimate##0 ~n := #in~n; 75537#L25 assume ~n <= 0;#res := 1; 75534#factFINAL assume true; 75523#factEXIT >#66#return; 75517#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75516#factFINAL assume true; 75508#factEXIT >#68#return; 75499#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 75506#$Ultimate##0 ~n := #in~n; 75563#L25 assume !(~n <= 0); 75527#L26 call #t~ret0 := fact(~n - 1);< 75561#$Ultimate##0 ~n := #in~n; 75537#L25 assume ~n <= 0;#res := 1; 75534#factFINAL assume true; 75523#factEXIT >#66#return; 75530#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75518#factFINAL assume true; 75519#factEXIT >#70#return; 75466#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 75481#$Ultimate##0 ~n := #in~n; 75507#L25 assume ~n <= 0;#res := 1; 75482#factFINAL assume true; 75464#factEXIT >#72#return; 75463#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 75461#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 75462#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 75640#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 75446#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 75395#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 75430#$Ultimate##0 ~n := #in~n; 75441#L25 assume !(~n <= 0); 75386#L26 call #t~ret0 := fact(~n - 1);< 75396#$Ultimate##0 ~n := #in~n; 75429#L25 assume !(~n <= 0); 75365#L26 call #t~ret0 := fact(~n - 1);< 75443#$Ultimate##0 ~n := #in~n; 75423#L25 assume ~n <= 0;#res := 1; 75376#factFINAL assume true; 75364#factEXIT >#66#return; 75366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75418#factFINAL assume true; 75457#factEXIT >#66#return; 75448#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75444#factFINAL assume true; 75445#factEXIT >#74#return; 75394#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 75430#$Ultimate##0 ~n := #in~n; 75441#L25 assume !(~n <= 0); 75386#L26 call #t~ret0 := fact(~n - 1);< 75396#$Ultimate##0 ~n := #in~n; 75442#L25 assume ~n <= 0;#res := 1; 75458#factFINAL assume true; 75454#factEXIT >#66#return; 75455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 76127#factFINAL assume true; 75437#factEXIT >#76#return; 75391#L30-7 [2023-02-18 08:56:07,242 INFO L750 eck$LassoCheckResult]: Loop: 75391#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 75430#$Ultimate##0 ~n := #in~n; 75441#L25 assume !(~n <= 0); 75386#L26 call #t~ret0 := fact(~n - 1);< 75396#$Ultimate##0 ~n := #in~n; 75442#L25 assume ~n <= 0;#res := 1; 75458#factFINAL assume true; 75454#factEXIT >#66#return; 75455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 76127#factFINAL assume true; 75437#factEXIT >#78#return; 75382#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 75383#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 75409#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 75420#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 75406#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 75399#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 75400#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 75598#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 75372#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 75373#$Ultimate##0 ~n := #in~n; 75605#L25 assume !(~n <= 0); 75525#L26 call #t~ret0 := fact(~n - 1);< 75561#$Ultimate##0 ~n := #in~n; 75629#L25 assume !(~n <= 0); 75552#L26 call #t~ret0 := fact(~n - 1);< 75626#$Ultimate##0 ~n := #in~n; 75629#L25 assume !(~n <= 0); 75552#L26 call #t~ret0 := fact(~n - 1);< 75626#$Ultimate##0 ~n := #in~n; 75632#L25 assume ~n <= 0;#res := 1; 75630#factFINAL assume true; 75624#factEXIT >#66#return; 75623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75621#factFINAL assume true; 75618#factEXIT >#66#return; 75557#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75720#factFINAL assume true; 75551#factEXIT >#66#return; 75559#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75610#factFINAL assume true; 75608#factEXIT >#68#return; 75585#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 75588#$Ultimate##0 ~n := #in~n; 75594#L25 assume ~n <= 0;#res := 1; 75590#factFINAL assume true; 75581#factEXIT >#70#return; 75587#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 75604#$Ultimate##0 ~n := #in~n; 75639#L25 assume !(~n <= 0); 75555#L26 call #t~ret0 := fact(~n - 1);< 75609#$Ultimate##0 ~n := #in~n; 75633#L25 assume !(~n <= 0); 75556#L26 call #t~ret0 := fact(~n - 1);< 75562#$Ultimate##0 ~n := #in~n; 75629#L25 assume !(~n <= 0); 75552#L26 call #t~ret0 := fact(~n - 1);< 75626#$Ultimate##0 ~n := #in~n; 75632#L25 assume ~n <= 0;#res := 1; 75630#factFINAL assume true; 75624#factEXIT >#66#return; 75623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75621#factFINAL assume true; 75618#factEXIT >#66#return; 75557#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75720#factFINAL assume true; 75551#factEXIT >#66#return; 75558#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75606#factFINAL assume true; 75600#factEXIT >#72#return; 75599#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 75597#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 75593#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 75589#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 75580#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 75546#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 75548#$Ultimate##0 ~n := #in~n; 75572#L25 assume !(~n <= 0); 75529#L26 call #t~ret0 := fact(~n - 1);< 75561#$Ultimate##0 ~n := #in~n; 75629#L25 assume !(~n <= 0); 75552#L26 call #t~ret0 := fact(~n - 1);< 75626#$Ultimate##0 ~n := #in~n; 75629#L25 assume !(~n <= 0); 75552#L26 call #t~ret0 := fact(~n - 1);< 75626#$Ultimate##0 ~n := #in~n; 75632#L25 assume ~n <= 0;#res := 1; 75630#factFINAL assume true; 75624#factEXIT >#66#return; 75623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75621#factFINAL assume true; 75618#factEXIT >#66#return; 75557#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75720#factFINAL assume true; 75551#factEXIT >#66#return; 75560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75568#factFINAL assume true; 75544#factEXIT >#68#return; 75465#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 75520#$Ultimate##0 ~n := #in~n; 75564#L25 assume !(~n <= 0); 75527#L26 call #t~ret0 := fact(~n - 1);< 75561#$Ultimate##0 ~n := #in~n; 75629#L25 assume !(~n <= 0); 75552#L26 call #t~ret0 := fact(~n - 1);< 75626#$Ultimate##0 ~n := #in~n; 75632#L25 assume ~n <= 0;#res := 1; 75630#factFINAL assume true; 75624#factEXIT >#66#return; 75623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75621#factFINAL assume true; 75618#factEXIT >#66#return; 75617#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75615#factFINAL assume true; 75483#factEXIT >#70#return; 75471#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 75520#$Ultimate##0 ~n := #in~n; 75564#L25 assume !(~n <= 0); 75527#L26 call #t~ret0 := fact(~n - 1);< 75561#$Ultimate##0 ~n := #in~n; 75629#L25 assume !(~n <= 0); 75552#L26 call #t~ret0 := fact(~n - 1);< 75626#$Ultimate##0 ~n := #in~n; 75629#L25 assume !(~n <= 0); 75552#L26 call #t~ret0 := fact(~n - 1);< 75626#$Ultimate##0 ~n := #in~n; 75632#L25 assume ~n <= 0;#res := 1; 75630#factFINAL assume true; 75624#factEXIT >#66#return; 75623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75621#factFINAL assume true; 75618#factEXIT >#66#return; 75557#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75720#factFINAL assume true; 75551#factEXIT >#66#return; 75549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75542#factFINAL assume true; 75538#factEXIT >#72#return; 75503#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 75643#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 75642#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 75641#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 75566#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 75547#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 75548#$Ultimate##0 ~n := #in~n; 75572#L25 assume !(~n <= 0); 75529#L26 call #t~ret0 := fact(~n - 1);< 75561#$Ultimate##0 ~n := #in~n; 75629#L25 assume !(~n <= 0); 75552#L26 call #t~ret0 := fact(~n - 1);< 75626#$Ultimate##0 ~n := #in~n; 75632#L25 assume ~n <= 0;#res := 1; 75630#factFINAL assume true; 75624#factEXIT >#66#return; 75623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75621#factFINAL assume true; 75618#factEXIT >#66#return; 75619#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75567#factFINAL assume true; 75550#factEXIT >#68#return; 75473#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 75520#$Ultimate##0 ~n := #in~n; 75564#L25 assume !(~n <= 0); 75527#L26 call #t~ret0 := fact(~n - 1);< 75561#$Ultimate##0 ~n := #in~n; 75629#L25 assume !(~n <= 0); 75552#L26 call #t~ret0 := fact(~n - 1);< 75626#$Ultimate##0 ~n := #in~n; 75632#L25 assume ~n <= 0;#res := 1; 75630#factFINAL assume true; 75624#factEXIT >#66#return; 75623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75621#factFINAL assume true; 75618#factEXIT >#66#return; 75617#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75615#factFINAL assume true; 75483#factEXIT >#70#return; 75475#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 75481#$Ultimate##0 ~n := #in~n; 75507#L25 assume ~n <= 0;#res := 1; 75482#factFINAL assume true; 75464#factEXIT >#72#return; 75479#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 75758#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 75757#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 75667#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 75666#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 75360#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 75361#$Ultimate##0 ~n := #in~n; 75438#L25 assume !(~n <= 0); 75417#L26 call #t~ret0 := fact(~n - 1);< 75428#$Ultimate##0 ~n := #in~n; 75429#L25 assume !(~n <= 0); 75365#L26 call #t~ret0 := fact(~n - 1);< 75443#$Ultimate##0 ~n := #in~n; 75429#L25 assume !(~n <= 0); 75365#L26 call #t~ret0 := fact(~n - 1);< 75443#$Ultimate##0 ~n := #in~n; 75423#L25 assume ~n <= 0;#res := 1; 75376#factFINAL assume true; 75364#factEXIT >#66#return; 75366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75418#factFINAL assume true; 75457#factEXIT >#66#return; 75453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75456#factFINAL assume true; 75451#factEXIT >#66#return; 75452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 76126#factFINAL assume true; 76125#factEXIT >#74#return; 75389#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 75430#$Ultimate##0 ~n := #in~n; 75441#L25 assume !(~n <= 0); 75386#L26 call #t~ret0 := fact(~n - 1);< 75396#$Ultimate##0 ~n := #in~n; 75429#L25 assume !(~n <= 0); 75365#L26 call #t~ret0 := fact(~n - 1);< 75443#$Ultimate##0 ~n := #in~n; 75423#L25 assume ~n <= 0;#res := 1; 75376#factFINAL assume true; 75364#factEXIT >#66#return; 75366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75418#factFINAL assume true; 75457#factEXIT >#66#return; 75448#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 75444#factFINAL assume true; 75445#factEXIT >#76#return; 75391#L30-7 [2023-02-18 08:56:07,242 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:07,242 INFO L85 PathProgramCache]: Analyzing trace with hash 1790720477, now seen corresponding path program 18 times [2023-02-18 08:56:07,242 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:07,242 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [71205009] [2023-02-18 08:56:07,242 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:07,243 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:07,248 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:07,248 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1118377756] [2023-02-18 08:56:07,248 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:56:07,248 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:07,248 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:07,251 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-18 08:56:07,252 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-18 08:56:07,378 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 11 check-sat command(s) [2023-02-18 08:56:07,378 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:07,379 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:07,418 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:07,444 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:07,444 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:07,444 INFO L85 PathProgramCache]: Analyzing trace with hash 1692152486, now seen corresponding path program 20 times [2023-02-18 08:56:07,444 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:07,444 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [484498724] [2023-02-18 08:56:07,444 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:07,445 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:07,449 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:07,449 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [107476772] [2023-02-18 08:56:07,449 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:56:07,449 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:07,449 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:07,451 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-18 08:56:07,453 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-18 08:56:07,546 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:56:07,546 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:07,547 INFO L263 TraceCheckSpWp]: Trace formula consists of 500 conjuncts, 9 conjunts are in the unsatisfiable core [2023-02-18 08:56:07,549 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:07,571 INFO L134 CoverageAnalysis]: Checked inductivity of 3109 backedges. 1748 proven. 7 refuted. 0 times theorem prover too weak. 1354 trivial. 0 not checked. [2023-02-18 08:56:07,571 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:07,601 INFO L134 CoverageAnalysis]: Checked inductivity of 3109 backedges. 164 proven. 164 refuted. 0 times theorem prover too weak. 2781 trivial. 0 not checked. [2023-02-18 08:56:07,601 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:07,601 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [484498724] [2023-02-18 08:56:07,601 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:07,601 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [107476772] [2023-02-18 08:56:07,601 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [107476772] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:07,601 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:07,602 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 9] total 10 [2023-02-18 08:56:07,602 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [223266679] [2023-02-18 08:56:07,602 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:07,602 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:07,602 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:07,603 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2023-02-18 08:56:07,603 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=66, Unknown=0, NotChecked=0, Total=90 [2023-02-18 08:56:07,603 INFO L87 Difference]: Start difference. First operand 768 states and 1078 transitions. cyclomatic complexity: 326 Second operand has 10 states, 9 states have (on average 4.444444444444445) internal successors, (40), 10 states have internal predecessors, (40), 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-18 08:56:07,772 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:07,772 INFO L93 Difference]: Finished difference Result 778 states and 1083 transitions. [2023-02-18 08:56:07,772 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 778 states and 1083 transitions. [2023-02-18 08:56:07,775 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 78 [2023-02-18 08:56:07,779 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 778 states to 778 states and 1083 transitions. [2023-02-18 08:56:07,779 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 61 [2023-02-18 08:56:07,779 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 61 [2023-02-18 08:56:07,779 INFO L73 IsDeterministic]: Start isDeterministic. Operand 778 states and 1083 transitions. [2023-02-18 08:56:07,779 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:07,779 INFO L218 hiAutomatonCegarLoop]: Abstraction has 778 states and 1083 transitions. [2023-02-18 08:56:07,780 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 778 states and 1083 transitions. [2023-02-18 08:56:07,788 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 778 to 768. [2023-02-18 08:56:07,789 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 768 states, 483 states have (on average 1.0766045548654244) internal successors, (520), 494 states have internal predecessors, (520), 197 states have call successors, (199), 76 states have call predecessors, (199), 88 states have return successors, (352), 197 states have call predecessors, (352), 197 states have call successors, (352) [2023-02-18 08:56:07,791 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 768 states to 768 states and 1071 transitions. [2023-02-18 08:56:07,791 INFO L240 hiAutomatonCegarLoop]: Abstraction has 768 states and 1071 transitions. [2023-02-18 08:56:07,791 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2023-02-18 08:56:07,792 INFO L428 stractBuchiCegarLoop]: Abstraction has 768 states and 1071 transitions. [2023-02-18 08:56:07,792 INFO L335 stractBuchiCegarLoop]: ======== Iteration 33 ============ [2023-02-18 08:56:07,792 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 768 states and 1071 transitions. [2023-02-18 08:56:07,794 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 78 [2023-02-18 08:56:07,794 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:07,794 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:07,795 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [30, 30, 17, 13, 13, 13, 13, 6, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:07,795 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [30, 30, 18, 18, 18, 18, 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-18 08:56:07,795 INFO L748 eck$LassoCheckResult]: Stem: 78356#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 78310#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; 78311#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 78331#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; 78321#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 78322#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 78898#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 78301#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 78302#$Ultimate##0 ~n := #in~n; 78864#L25 assume ~n <= 0;#res := 1; 78863#factFINAL assume true; 78861#factEXIT >#68#return; 78347#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 78348#$Ultimate##0 ~n := #in~n; 78901#L25 assume ~n <= 0;#res := 1; 78900#factFINAL assume true; 78899#factEXIT >#70#return; 78297#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 78298#$Ultimate##0 ~n := #in~n; 78923#L25 assume ~n <= 0;#res := 1; 78922#factFINAL assume true; 78920#factEXIT >#72#return; 78921#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 78936#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 78929#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 78928#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 78335#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 78336#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 78993#$Ultimate##0 ~n := #in~n; 79015#L25 assume !(~n <= 0); 79000#L26 call #t~ret0 := fact(~n - 1);< 79003#$Ultimate##0 ~n := #in~n; 79014#L25 assume ~n <= 0;#res := 1; 79012#factFINAL assume true; 78999#factEXIT >#66#return; 78997#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78994#factFINAL assume true; 78992#factEXIT >#74#return; 78942#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 78984#$Ultimate##0 ~n := #in~n; 78991#L25 assume ~n <= 0;#res := 1; 78990#factFINAL assume true; 78982#factEXIT >#76#return; 78934#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 78935#$Ultimate##0 ~n := #in~n; 79013#L25 assume !(~n <= 0); 79001#L26 call #t~ret0 := fact(~n - 1);< 79003#$Ultimate##0 ~n := #in~n; 79014#L25 assume ~n <= 0;#res := 1; 79012#factFINAL assume true; 78999#factEXIT >#66#return; 79002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 79035#factFINAL assume true; 78933#factEXIT >#78#return; 78314#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 78315#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 78333#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 78355#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 78654#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 78646#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 78649#$Ultimate##0 ~n := #in~n; 78670#L25 assume !(~n <= 0); 78660#L26 call #t~ret0 := fact(~n - 1);< 78662#$Ultimate##0 ~n := #in~n; 78697#L25 assume !(~n <= 0); 78661#L26 call #t~ret0 := fact(~n - 1);< 78696#$Ultimate##0 ~n := #in~n; 78938#L25 assume ~n <= 0;#res := 1; 78937#factFINAL assume true; 78930#factEXIT >#66#return; 78926#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78927#factFINAL assume true; 78931#factEXIT >#66#return; 78657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78651#factFINAL assume true; 78645#factEXIT >#74#return; 78647#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 78672#$Ultimate##0 ~n := #in~n; 78675#L25 assume ~n <= 0;#res := 1; 78674#factFINAL assume true; 78671#factEXIT >#76#return; 78409#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 78410#$Ultimate##0 ~n := #in~n; 78685#L25 assume !(~n <= 0); 78666#L26 call #t~ret0 := fact(~n - 1);< 78669#$Ultimate##0 ~n := #in~n; 78683#L25 assume !(~n <= 0); 78665#L26 call #t~ret0 := fact(~n - 1);< 78680#$Ultimate##0 ~n := #in~n; 78691#L25 assume ~n <= 0;#res := 1; 78690#factFINAL assume true; 78689#factEXIT >#66#return; 78688#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78687#factFINAL assume true; 78686#factEXIT >#66#return; 78668#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78673#factFINAL assume true; 78653#factEXIT >#78#return; 78404#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 78401#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 78393#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 78387#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 78330#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 78323#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 78324#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 78831#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 78827#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 78300#$Ultimate##0 ~n := #in~n; 78832#L25 assume !(~n <= 0); 78766#L26 call #t~ret0 := fact(~n - 1);< 78783#$Ultimate##0 ~n := #in~n; 78784#L25 assume ~n <= 0;#res := 1; 78780#factFINAL assume true; 78765#factEXIT >#66#return; 78772#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78830#factFINAL assume true; 78826#factEXIT >#68#return; 78820#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 78825#$Ultimate##0 ~n := #in~n; 78840#L25 assume ~n <= 0;#res := 1; 78833#factFINAL assume true; 78819#factEXIT >#70#return; 78782#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 78818#$Ultimate##0 ~n := #in~n; 78878#L25 assume !(~n <= 0); 78767#L26 call #t~ret0 := fact(~n - 1);< 78783#$Ultimate##0 ~n := #in~n; 78784#L25 assume ~n <= 0;#res := 1; 78780#factFINAL assume true; 78765#factEXIT >#66#return; 78773#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78860#factFINAL assume true; 78859#factEXIT >#72#return; 78326#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 78327#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 78339#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 78341#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 78342#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 78755#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 78761#$Ultimate##0 ~n := #in~n; 78785#L25 assume !(~n <= 0); 78771#L26 call #t~ret0 := fact(~n - 1);< 78779#$Ultimate##0 ~n := #in~n; 78784#L25 assume ~n <= 0;#res := 1; 78780#factFINAL assume true; 78765#factEXIT >#66#return; 78774#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78764#factFINAL assume true; 78754#factEXIT >#68#return; 78717#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 78739#$Ultimate##0 ~n := #in~n; 78866#L25 assume !(~n <= 0); 78769#L26 call #t~ret0 := fact(~n - 1);< 78783#$Ultimate##0 ~n := #in~n; 78784#L25 assume ~n <= 0;#res := 1; 78780#factFINAL assume true; 78765#factEXIT >#66#return; 78762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78751#factFINAL assume true; 78749#factEXIT >#70#return; 78744#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 78747#$Ultimate##0 ~n := #in~n; 78750#L25 assume ~n <= 0;#res := 1; 78748#factFINAL assume true; 78740#factEXIT >#72#return; 78703#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 78700#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 78701#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 78778#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 78777#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 78360#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 78351#$Ultimate##0 ~n := #in~n; 78629#L25 assume !(~n <= 0); 78292#L26 call #t~ret0 := fact(~n - 1);< 78634#$Ultimate##0 ~n := #in~n; 78349#L25 assume !(~n <= 0); 78305#L26 call #t~ret0 := fact(~n - 1);< 78636#$Ultimate##0 ~n := #in~n; 78343#L25 assume ~n <= 0;#res := 1; 78344#factFINAL assume true; 79046#factEXIT >#66#return; 79047#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 79051#factFINAL assume true; 79049#factEXIT >#66#return; 79045#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78939#factFINAL assume true; 78940#factEXIT >#74#return; 78350#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 78351#$Ultimate##0 ~n := #in~n; 78629#L25 assume !(~n <= 0); 78292#L26 call #t~ret0 := fact(~n - 1);< 78634#$Ultimate##0 ~n := #in~n; 78635#L25 assume ~n <= 0;#res := 1; 79048#factFINAL assume true; 78291#factEXIT >#66#return; 78293#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 79054#factFINAL assume true; 78359#factEXIT >#76#return; 78357#L30-7 [2023-02-18 08:56:07,796 INFO L750 eck$LassoCheckResult]: Loop: 78357#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 78351#$Ultimate##0 ~n := #in~n; 78629#L25 assume !(~n <= 0); 78292#L26 call #t~ret0 := fact(~n - 1);< 78634#$Ultimate##0 ~n := #in~n; 78635#L25 assume ~n <= 0;#res := 1; 79048#factFINAL assume true; 78291#factEXIT >#66#return; 78293#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 79054#factFINAL assume true; 78359#factEXIT >#78#return; 78312#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 78313#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 78332#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 78354#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 78328#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 78329#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 78340#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 78334#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 78299#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 78300#$Ultimate##0 ~n := #in~n; 78832#L25 assume !(~n <= 0); 78766#L26 call #t~ret0 := fact(~n - 1);< 78783#$Ultimate##0 ~n := #in~n; 78895#L25 assume !(~n <= 0); 78791#L26 call #t~ret0 := fact(~n - 1);< 78886#$Ultimate##0 ~n := #in~n; 78894#L25 assume ~n <= 0;#res := 1; 78893#factFINAL assume true; 78884#factEXIT >#66#return; 78880#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78876#factFINAL assume true; 78790#factEXIT >#66#return; 78796#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78891#factFINAL assume true; 78890#factEXIT >#68#return; 78821#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 78825#$Ultimate##0 ~n := #in~n; 78840#L25 assume ~n <= 0;#res := 1; 78833#factFINAL assume true; 78819#factEXIT >#70#return; 78815#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 78888#$Ultimate##0 ~n := #in~n; 78881#L25 assume !(~n <= 0); 78793#L26 call #t~ret0 := fact(~n - 1);< 78850#$Ultimate##0 ~n := #in~n; 78895#L25 assume !(~n <= 0); 78791#L26 call #t~ret0 := fact(~n - 1);< 78886#$Ultimate##0 ~n := #in~n; 78895#L25 assume !(~n <= 0); 78791#L26 call #t~ret0 := fact(~n - 1);< 78886#$Ultimate##0 ~n := #in~n; 78894#L25 assume ~n <= 0;#res := 1; 78893#factFINAL assume true; 78884#factEXIT >#66#return; 78880#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78876#factFINAL assume true; 78790#factEXIT >#66#return; 78795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78842#factFINAL assume true; 78835#factEXIT >#66#return; 78837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78919#factFINAL assume true; 78915#factEXIT >#72#return; 78816#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 78892#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 78883#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 78879#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 78875#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 78757#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 78761#$Ultimate##0 ~n := #in~n; 78785#L25 assume !(~n <= 0); 78771#L26 call #t~ret0 := fact(~n - 1);< 78779#$Ultimate##0 ~n := #in~n; 78889#L25 assume !(~n <= 0); 78885#L26 call #t~ret0 := fact(~n - 1);< 78887#$Ultimate##0 ~n := #in~n; 78894#L25 assume ~n <= 0;#res := 1; 78893#factFINAL assume true; 78884#factEXIT >#66#return; 78880#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78876#factFINAL assume true; 78790#factEXIT >#66#return; 78798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78845#factFINAL assume true; 78808#factEXIT >#68#return; 78729#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 78739#$Ultimate##0 ~n := #in~n; 78866#L25 assume !(~n <= 0); 78769#L26 call #t~ret0 := fact(~n - 1);< 78783#$Ultimate##0 ~n := #in~n; 78784#L25 assume ~n <= 0;#res := 1; 78780#factFINAL assume true; 78765#factEXIT >#66#return; 78762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78751#factFINAL assume true; 78749#factEXIT >#70#return; 78742#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 78753#$Ultimate##0 ~n := #in~n; 78896#L25 assume !(~n <= 0); 78768#L26 call #t~ret0 := fact(~n - 1);< 78775#$Ultimate##0 ~n := #in~n; 78784#L25 assume ~n <= 0;#res := 1; 78780#factFINAL assume true; 78765#factEXIT >#66#return; 78762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78751#factFINAL assume true; 78749#factEXIT >#72#return; 78738#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 78873#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 78871#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 78869#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 78867#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 78760#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 78761#$Ultimate##0 ~n := #in~n; 78785#L25 assume !(~n <= 0); 78771#L26 call #t~ret0 := fact(~n - 1);< 78779#$Ultimate##0 ~n := #in~n; 78889#L25 assume !(~n <= 0); 78885#L26 call #t~ret0 := fact(~n - 1);< 78887#$Ultimate##0 ~n := #in~n; 78894#L25 assume ~n <= 0;#res := 1; 78893#factFINAL assume true; 78884#factEXIT >#66#return; 78880#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78876#factFINAL assume true; 78790#factEXIT >#66#return; 78798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78845#factFINAL assume true; 78808#factEXIT >#68#return; 78722#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 78739#$Ultimate##0 ~n := #in~n; 78866#L25 assume !(~n <= 0); 78769#L26 call #t~ret0 := fact(~n - 1);< 78783#$Ultimate##0 ~n := #in~n; 78895#L25 assume !(~n <= 0); 78791#L26 call #t~ret0 := fact(~n - 1);< 78886#$Ultimate##0 ~n := #in~n; 78894#L25 assume ~n <= 0;#res := 1; 78893#factFINAL assume true; 78884#factEXIT >#66#return; 78880#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78876#factFINAL assume true; 78790#factEXIT >#66#return; 78788#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78776#factFINAL assume true; 78763#factEXIT >#70#return; 78734#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 78747#$Ultimate##0 ~n := #in~n; 78750#L25 assume ~n <= 0;#res := 1; 78748#factFINAL assume true; 78740#factEXIT >#72#return; 78746#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 78800#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 78799#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 78789#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 78787#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 78316#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 78288#$Ultimate##0 ~n := #in~n; 78637#L25 assume !(~n <= 0); 78304#L26 call #t~ret0 := fact(~n - 1);< 78318#$Ultimate##0 ~n := #in~n; 78349#L25 assume !(~n <= 0); 78305#L26 call #t~ret0 := fact(~n - 1);< 78636#$Ultimate##0 ~n := #in~n; 78349#L25 assume !(~n <= 0); 78305#L26 call #t~ret0 := fact(~n - 1);< 78636#$Ultimate##0 ~n := #in~n; 78343#L25 assume ~n <= 0;#res := 1; 78344#factFINAL assume true; 79046#factEXIT >#66#return; 79047#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 79051#factFINAL assume true; 79049#factEXIT >#66#return; 78337#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 78303#factFINAL assume true; 78306#factEXIT >#66#return; 79050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 79053#factFINAL assume true; 79052#factEXIT >#74#return; 78363#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 78351#$Ultimate##0 ~n := #in~n; 78629#L25 assume !(~n <= 0); 78292#L26 call #t~ret0 := fact(~n - 1);< 78634#$Ultimate##0 ~n := #in~n; 78635#L25 assume ~n <= 0;#res := 1; 79048#factFINAL assume true; 78291#factEXIT >#66#return; 78293#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 79054#factFINAL assume true; 78359#factEXIT >#76#return; 78357#L30-7 [2023-02-18 08:56:07,796 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:07,796 INFO L85 PathProgramCache]: Analyzing trace with hash 1790720477, now seen corresponding path program 19 times [2023-02-18 08:56:07,797 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:07,797 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1310843727] [2023-02-18 08:56:07,797 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:07,797 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:07,803 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:07,803 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1234671451] [2023-02-18 08:56:07,803 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:56:07,803 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:07,803 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:07,806 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-18 08:56:07,807 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-18 08:56:07,921 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:07,921 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:07,966 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:07,991 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:07,991 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:07,992 INFO L85 PathProgramCache]: Analyzing trace with hash 805310790, now seen corresponding path program 21 times [2023-02-18 08:56:07,992 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:07,992 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1864110348] [2023-02-18 08:56:07,992 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:07,992 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:07,996 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:07,997 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [598477251] [2023-02-18 08:56:07,997 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:56:07,997 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:07,997 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:08,000 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-18 08:56:08,000 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-18 08:56:08,071 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 11 check-sat command(s) [2023-02-18 08:56:08,072 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:08,072 INFO L263 TraceCheckSpWp]: Trace formula consists of 162 conjuncts, 18 conjunts are in the unsatisfiable core [2023-02-18 08:56:08,074 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:08,110 INFO L134 CoverageAnalysis]: Checked inductivity of 2083 backedges. 513 proven. 31 refuted. 0 times theorem prover too weak. 1539 trivial. 0 not checked. [2023-02-18 08:56:08,110 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:08,231 INFO L134 CoverageAnalysis]: Checked inductivity of 2083 backedges. 513 proven. 36 refuted. 0 times theorem prover too weak. 1534 trivial. 0 not checked. [2023-02-18 08:56:08,231 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:08,231 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1864110348] [2023-02-18 08:56:08,232 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:08,232 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [598477251] [2023-02-18 08:56:08,232 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [598477251] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:08,232 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:08,232 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 20 [2023-02-18 08:56:08,232 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [945509018] [2023-02-18 08:56:08,232 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:08,232 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:08,233 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:08,233 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 21 interpolants. [2023-02-18 08:56:08,233 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=64, Invalid=356, Unknown=0, NotChecked=0, Total=420 [2023-02-18 08:56:08,233 INFO L87 Difference]: Start difference. First operand 768 states and 1071 transitions. cyclomatic complexity: 319 Second operand has 21 states, 17 states have (on average 3.0588235294117645) internal successors, (52), 19 states have internal predecessors, (52), 12 states have call successors, (20), 1 states have call predecessors, (20), 6 states have return successors, (21), 9 states have call predecessors, (21), 12 states have call successors, (21) [2023-02-18 08:56:08,751 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:08,752 INFO L93 Difference]: Finished difference Result 973 states and 1330 transitions. [2023-02-18 08:56:08,752 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 973 states and 1330 transitions. [2023-02-18 08:56:08,755 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 121 [2023-02-18 08:56:08,762 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 973 states to 965 states and 1322 transitions. [2023-02-18 08:56:08,762 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 99 [2023-02-18 08:56:08,762 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 99 [2023-02-18 08:56:08,763 INFO L73 IsDeterministic]: Start isDeterministic. Operand 965 states and 1322 transitions. [2023-02-18 08:56:08,763 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:08,763 INFO L218 hiAutomatonCegarLoop]: Abstraction has 965 states and 1322 transitions. [2023-02-18 08:56:08,764 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 965 states and 1322 transitions. [2023-02-18 08:56:08,772 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 965 to 792. [2023-02-18 08:56:08,773 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 792 states, 501 states have (on average 1.0738522954091816) internal successors, (538), 508 states have internal predecessors, (538), 203 states have call successors, (205), 86 states have call predecessors, (205), 88 states have return successors, (352), 197 states have call predecessors, (352), 203 states have call successors, (352) [2023-02-18 08:56:08,775 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 792 states to 792 states and 1095 transitions. [2023-02-18 08:56:08,775 INFO L240 hiAutomatonCegarLoop]: Abstraction has 792 states and 1095 transitions. [2023-02-18 08:56:08,775 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 30 states. [2023-02-18 08:56:08,775 INFO L428 stractBuchiCegarLoop]: Abstraction has 792 states and 1095 transitions. [2023-02-18 08:56:08,776 INFO L335 stractBuchiCegarLoop]: ======== Iteration 34 ============ [2023-02-18 08:56:08,776 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 792 states and 1095 transitions. [2023-02-18 08:56:08,777 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 78 [2023-02-18 08:56:08,777 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:08,777 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:08,778 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [30, 30, 17, 13, 13, 13, 13, 6, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:08,778 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [31, 31, 19, 19, 19, 19, 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-18 08:56:08,779 INFO L748 eck$LassoCheckResult]: Stem: 81327#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 81282#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; 81283#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 81304#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; 81328#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 81790#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 81787#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 81782#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 81783#$Ultimate##0 ~n := #in~n; 81788#L25 assume ~n <= 0;#res := 1; 81786#factFINAL assume true; 81781#factEXIT >#68#return; 81779#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 81780#$Ultimate##0 ~n := #in~n; 81785#L25 assume ~n <= 0;#res := 1; 81784#factFINAL assume true; 81778#factEXIT >#70#return; 81770#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 81771#$Ultimate##0 ~n := #in~n; 81777#L25 assume ~n <= 0;#res := 1; 81774#factFINAL assume true; 81769#factEXIT >#72#return; 81768#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 81767#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 81765#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 81758#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 81755#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 81750#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 81751#$Ultimate##0 ~n := #in~n; 81766#L25 assume !(~n <= 0); 81761#L26 call #t~ret0 := fact(~n - 1);< 81764#$Ultimate##0 ~n := #in~n; 81775#L25 assume ~n <= 0;#res := 1; 81772#factFINAL assume true; 81760#factEXIT >#66#return; 81757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81754#factFINAL assume true; 81749#factEXIT >#74#return; 81688#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 81690#$Ultimate##0 ~n := #in~n; 81792#L25 assume ~n <= 0;#res := 1; 81791#factFINAL assume true; 81789#factEXIT >#76#return; 81632#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 81776#$Ultimate##0 ~n := #in~n; 81773#L25 assume !(~n <= 0); 81762#L26 call #t~ret0 := fact(~n - 1);< 81764#$Ultimate##0 ~n := #in~n; 81775#L25 assume ~n <= 0;#res := 1; 81772#factFINAL assume true; 81760#factEXIT >#66#return; 81763#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81819#factFINAL assume true; 81631#factEXIT >#78#return; 81630#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 81629#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 81624#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 81619#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 81559#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 81551#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 81556#$Ultimate##0 ~n := #in~n; 81604#L25 assume !(~n <= 0); 81601#L26 call #t~ret0 := fact(~n - 1);< 81602#$Ultimate##0 ~n := #in~n; 81618#L25 assume !(~n <= 0); 81600#L26 call #t~ret0 := fact(~n - 1);< 81617#$Ultimate##0 ~n := #in~n; 81628#L25 assume ~n <= 0;#res := 1; 81627#factFINAL assume true; 81625#factEXIT >#66#return; 81626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81615#factFINAL assume true; 81616#factEXIT >#66#return; 81597#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81596#factFINAL assume true; 81550#factEXIT >#74#return; 81345#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 81346#$Ultimate##0 ~n := #in~n; 81577#L25 assume ~n <= 0;#res := 1; 81347#factFINAL assume true; 81344#factEXIT >#76#return; 81341#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 81343#$Ultimate##0 ~n := #in~n; 81583#L25 assume !(~n <= 0); 81568#L26 call #t~ret0 := fact(~n - 1);< 81572#$Ultimate##0 ~n := #in~n; 81582#L25 assume !(~n <= 0); 81567#L26 call #t~ret0 := fact(~n - 1);< 81580#$Ultimate##0 ~n := #in~n; 81590#L25 assume ~n <= 0;#res := 1; 81589#factFINAL assume true; 81588#factEXIT >#66#return; 81587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81586#factFINAL assume true; 81585#factEXIT >#66#return; 81571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81623#factFINAL assume true; 81340#factEXIT >#78#return; 81342#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 81336#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 81337#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 81332#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 81333#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 81296#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 81298#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 81970#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 81243#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 81249#$Ultimate##0 ~n := #in~n; 82019#L25 assume !(~n <= 0); 81901#L26 call #t~ret0 := fact(~n - 1);< 81910#$Ultimate##0 ~n := #in~n; 81912#L25 assume ~n <= 0;#res := 1; 81909#factFINAL assume true; 81895#factEXIT >#66#return; 81903#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81971#factFINAL assume true; 81968#factEXIT >#68#return; 81957#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 81960#$Ultimate##0 ~n := #in~n; 81967#L25 assume ~n <= 0;#res := 1; 81963#factFINAL assume true; 81956#factEXIT >#70#return; 81946#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 81951#$Ultimate##0 ~n := #in~n; 81965#L25 assume !(~n <= 0); 81900#L26 call #t~ret0 := fact(~n - 1);< 81910#$Ultimate##0 ~n := #in~n; 81912#L25 assume ~n <= 0;#res := 1; 81909#factFINAL assume true; 81895#factEXIT >#66#return; 81902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81955#factFINAL assume true; 81952#factEXIT >#72#return; 81299#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 81300#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 81311#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 82023#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 81973#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 81881#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 81886#$Ultimate##0 ~n := #in~n; 81914#L25 assume !(~n <= 0); 81896#L26 call #t~ret0 := fact(~n - 1);< 81911#$Ultimate##0 ~n := #in~n; 81912#L25 assume ~n <= 0;#res := 1; 81909#factFINAL assume true; 81895#factEXIT >#66#return; 81894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81892#factFINAL assume true; 81880#factEXIT >#68#return; 81267#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 81331#$Ultimate##0 ~n := #in~n; 81933#L25 assume !(~n <= 0); 81897#L26 call #t~ret0 := fact(~n - 1);< 81910#$Ultimate##0 ~n := #in~n; 81912#L25 assume ~n <= 0;#res := 1; 81909#factFINAL assume true; 81895#factEXIT >#66#return; 81893#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81889#factFINAL assume true; 81872#factEXIT >#70#return; 81863#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 81869#$Ultimate##0 ~n := #in~n; 81888#L25 assume ~n <= 0;#res := 1; 81871#factFINAL assume true; 81861#factEXIT >#72#return; 81858#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 81852#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 81850#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 81849#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 81847#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 81827#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 81844#$Ultimate##0 ~n := #in~n; 81843#L25 assume !(~n <= 0); 81313#L26 call #t~ret0 := fact(~n - 1);< 81851#$Ultimate##0 ~n := #in~n; 81322#L25 assume !(~n <= 0); 81240#L26 call #t~ret0 := fact(~n - 1);< 81834#$Ultimate##0 ~n := #in~n; 81319#L25 assume ~n <= 0;#res := 1; 81252#factFINAL assume true; 81239#factEXIT >#66#return; 81241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81962#factFINAL assume true; 81840#factEXIT >#66#return; 81841#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 82018#factFINAL assume true; 82017#factEXIT >#74#return; 81826#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 81844#$Ultimate##0 ~n := #in~n; 81843#L25 assume !(~n <= 0); 81313#L26 call #t~ret0 := fact(~n - 1);< 81851#$Ultimate##0 ~n := #in~n; 81835#L25 assume ~n <= 0;#res := 1; 81836#factFINAL assume true; 81830#factEXIT >#66#return; 81829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81828#factFINAL assume true; 81821#factEXIT >#76#return; 81329#L30-7 [2023-02-18 08:56:08,779 INFO L750 eck$LassoCheckResult]: Loop: 81329#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 81330#$Ultimate##0 ~n := #in~n; 81853#L25 assume !(~n <= 0); 81831#L26 call #t~ret0 := fact(~n - 1);< 81842#$Ultimate##0 ~n := #in~n; 81835#L25 assume ~n <= 0;#res := 1; 81836#factFINAL assume true; 81830#factEXIT >#66#return; 81829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81828#factFINAL assume true; 81821#factEXIT >#78#return; 81284#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 81285#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 81305#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 81326#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 81301#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 81294#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 81295#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 81308#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 81245#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 81249#$Ultimate##0 ~n := #in~n; 82019#L25 assume !(~n <= 0); 81901#L26 call #t~ret0 := fact(~n - 1);< 81910#$Ultimate##0 ~n := #in~n; 81961#L25 assume !(~n <= 0); 81919#L26 call #t~ret0 := fact(~n - 1);< 81939#$Ultimate##0 ~n := #in~n; 81954#L25 assume ~n <= 0;#res := 1; 81953#factFINAL assume true; 81937#factEXIT >#66#return; 81932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81928#factFINAL assume true; 81916#factEXIT >#66#return; 81924#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81992#factFINAL assume true; 81991#factEXIT >#68#return; 81959#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 81960#$Ultimate##0 ~n := #in~n; 81967#L25 assume ~n <= 0;#res := 1; 81963#factFINAL assume true; 81956#factEXIT >#70#return; 81947#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 81989#$Ultimate##0 ~n := #in~n; 81987#L25 assume !(~n <= 0); 81917#L26 call #t~ret0 := fact(~n - 1);< 81293#$Ultimate##0 ~n := #in~n; 81961#L25 assume !(~n <= 0); 81919#L26 call #t~ret0 := fact(~n - 1);< 81939#$Ultimate##0 ~n := #in~n; 81961#L25 assume !(~n <= 0); 81919#L26 call #t~ret0 := fact(~n - 1);< 81939#$Ultimate##0 ~n := #in~n; 81954#L25 assume ~n <= 0;#res := 1; 81953#factFINAL assume true; 81937#factEXIT >#66#return; 81932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81928#factFINAL assume true; 81916#factEXIT >#66#return; 81923#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81993#factFINAL assume true; 81982#factEXIT >#66#return; 81983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 82007#factFINAL assume true; 82006#factEXIT >#72#return; 81950#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 82013#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 82012#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 82010#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 82011#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 81883#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 81886#$Ultimate##0 ~n := #in~n; 81914#L25 assume !(~n <= 0); 81896#L26 call #t~ret0 := fact(~n - 1);< 81911#$Ultimate##0 ~n := #in~n; 81964#L25 assume !(~n <= 0); 81938#L26 call #t~ret0 := fact(~n - 1);< 81940#$Ultimate##0 ~n := #in~n; 81954#L25 assume ~n <= 0;#res := 1; 81953#factFINAL assume true; 81937#factEXIT >#66#return; 81932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81928#factFINAL assume true; 81916#factEXIT >#66#return; 81915#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81913#factFINAL assume true; 81905#factEXIT >#68#return; 81262#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 81331#$Ultimate##0 ~n := #in~n; 81933#L25 assume !(~n <= 0); 81897#L26 call #t~ret0 := fact(~n - 1);< 81910#$Ultimate##0 ~n := #in~n; 81912#L25 assume ~n <= 0;#res := 1; 81909#factFINAL assume true; 81895#factEXIT >#66#return; 81893#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81889#factFINAL assume true; 81872#factEXIT >#70#return; 81866#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 81890#$Ultimate##0 ~n := #in~n; 81996#L25 assume !(~n <= 0); 81899#L26 call #t~ret0 := fact(~n - 1);< 81904#$Ultimate##0 ~n := #in~n; 81912#L25 assume ~n <= 0;#res := 1; 81909#factFINAL assume true; 81895#factEXIT >#66#return; 81893#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81889#factFINAL assume true; 81872#factEXIT >#72#return; 81876#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 81998#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 81995#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 81994#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 81966#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 81885#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 81886#$Ultimate##0 ~n := #in~n; 81914#L25 assume !(~n <= 0); 81896#L26 call #t~ret0 := fact(~n - 1);< 81911#$Ultimate##0 ~n := #in~n; 81964#L25 assume !(~n <= 0); 81938#L26 call #t~ret0 := fact(~n - 1);< 81940#$Ultimate##0 ~n := #in~n; 81954#L25 assume ~n <= 0;#res := 1; 81953#factFINAL assume true; 81937#factEXIT >#66#return; 81932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81928#factFINAL assume true; 81916#factEXIT >#66#return; 81915#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81913#factFINAL assume true; 81905#factEXIT >#68#return; 81263#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 81331#$Ultimate##0 ~n := #in~n; 81933#L25 assume !(~n <= 0); 81897#L26 call #t~ret0 := fact(~n - 1);< 81910#$Ultimate##0 ~n := #in~n; 81961#L25 assume !(~n <= 0); 81919#L26 call #t~ret0 := fact(~n - 1);< 81939#$Ultimate##0 ~n := #in~n; 81954#L25 assume ~n <= 0;#res := 1; 81953#factFINAL assume true; 81937#factEXIT >#66#return; 81932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81928#factFINAL assume true; 81916#factEXIT >#66#return; 81922#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81977#factFINAL assume true; 81974#factEXIT >#70#return; 81864#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 81869#$Ultimate##0 ~n := #in~n; 81888#L25 assume ~n <= 0;#res := 1; 81871#factFINAL assume true; 81861#factEXIT >#72#return; 81868#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 81887#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 81870#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 81860#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 81857#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 81289#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 81236#$Ultimate##0 ~n := #in~n; 81969#L25 assume !(~n <= 0); 81288#L26 call #t~ret0 := fact(~n - 1);< 81291#$Ultimate##0 ~n := #in~n; 81322#L25 assume !(~n <= 0); 81240#L26 call #t~ret0 := fact(~n - 1);< 81834#$Ultimate##0 ~n := #in~n; 81322#L25 assume !(~n <= 0); 81240#L26 call #t~ret0 := fact(~n - 1);< 81834#$Ultimate##0 ~n := #in~n; 81319#L25 assume ~n <= 0;#res := 1; 81252#factFINAL assume true; 81239#factEXIT >#66#return; 81241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81962#factFINAL assume true; 81840#factEXIT >#66#return; 81312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81315#factFINAL assume true; 81833#factEXIT >#66#return; 81848#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81846#factFINAL assume true; 81845#factEXIT >#74#return; 81839#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 81324#$Ultimate##0 ~n := #in~n; 81838#L25 assume !(~n <= 0); 81314#L26 call #t~ret0 := fact(~n - 1);< 81291#$Ultimate##0 ~n := #in~n; 81322#L25 assume !(~n <= 0); 81240#L26 call #t~ret0 := fact(~n - 1);< 81834#$Ultimate##0 ~n := #in~n; 81319#L25 assume ~n <= 0;#res := 1; 81252#factFINAL assume true; 81239#factEXIT >#66#return; 81241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 81962#factFINAL assume true; 81840#factEXIT >#66#return; 81841#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 82018#factFINAL assume true; 82017#factEXIT >#76#return; 81329#L30-7 [2023-02-18 08:56:08,779 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:08,779 INFO L85 PathProgramCache]: Analyzing trace with hash 1790720477, now seen corresponding path program 20 times [2023-02-18 08:56:08,779 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:08,779 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [20880763] [2023-02-18 08:56:08,780 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:08,780 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:08,784 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:08,785 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [830275942] [2023-02-18 08:56:08,785 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:56:08,785 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:08,785 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:08,788 INFO L229 MonitoredProcess]: Starting monitored process 131 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:08,788 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (131)] Waiting until timeout for monitored process [2023-02-18 08:56:08,892 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:56:08,892 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:08,892 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:08,937 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:08,960 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:08,960 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:08,960 INFO L85 PathProgramCache]: Analyzing trace with hash -160910658, now seen corresponding path program 22 times [2023-02-18 08:56:08,960 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:08,960 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [903189621] [2023-02-18 08:56:08,960 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:08,960 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:08,965 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:08,965 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1085527231] [2023-02-18 08:56:08,965 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:56:08,965 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:08,965 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:08,968 INFO L229 MonitoredProcess]: Starting monitored process 132 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:08,971 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (132)] Waiting until timeout for monitored process [2023-02-18 08:56:09,061 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:56:09,061 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:09,063 INFO L263 TraceCheckSpWp]: Trace formula consists of 440 conjuncts, 17 conjunts are in the unsatisfiable core [2023-02-18 08:56:09,064 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:09,105 INFO L134 CoverageAnalysis]: Checked inductivity of 2239 backedges. 1085 proven. 69 refuted. 0 times theorem prover too weak. 1085 trivial. 0 not checked. [2023-02-18 08:56:09,105 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:09,252 INFO L134 CoverageAnalysis]: Checked inductivity of 2239 backedges. 89 proven. 585 refuted. 0 times theorem prover too weak. 1565 trivial. 0 not checked. [2023-02-18 08:56:09,252 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:09,252 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [903189621] [2023-02-18 08:56:09,252 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:09,252 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1085527231] [2023-02-18 08:56:09,252 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1085527231] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:09,252 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:09,252 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 17] total 20 [2023-02-18 08:56:09,252 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [804471634] [2023-02-18 08:56:09,252 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:09,253 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:09,253 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:09,253 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 20 interpolants. [2023-02-18 08:56:09,253 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=63, Invalid=317, Unknown=0, NotChecked=0, Total=380 [2023-02-18 08:56:09,253 INFO L87 Difference]: Start difference. First operand 792 states and 1095 transitions. cyclomatic complexity: 319 Second operand has 20 states, 17 states have (on average 3.1176470588235294) internal successors, (53), 18 states have internal predecessors, (53), 12 states have call successors, (25), 2 states have call predecessors, (25), 8 states have return successors, (28), 9 states have call predecessors, (28), 12 states have call successors, (28) [2023-02-18 08:56:09,619 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:09,619 INFO L93 Difference]: Finished difference Result 958 states and 1297 transitions. [2023-02-18 08:56:09,619 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 958 states and 1297 transitions. [2023-02-18 08:56:09,623 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 106 [2023-02-18 08:56:09,639 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 958 states to 956 states and 1295 transitions. [2023-02-18 08:56:09,640 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 99 [2023-02-18 08:56:09,640 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 99 [2023-02-18 08:56:09,640 INFO L73 IsDeterministic]: Start isDeterministic. Operand 956 states and 1295 transitions. [2023-02-18 08:56:09,640 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:09,640 INFO L218 hiAutomatonCegarLoop]: Abstraction has 956 states and 1295 transitions. [2023-02-18 08:56:09,641 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 956 states and 1295 transitions. [2023-02-18 08:56:09,648 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 956 to 796. [2023-02-18 08:56:09,649 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 796 states, 504 states have (on average 1.0753968253968254) internal successors, (542), 510 states have internal predecessors, (542), 204 states have call successors, (206), 88 states have call predecessors, (206), 88 states have return successors, (347), 197 states have call predecessors, (347), 204 states have call successors, (347) [2023-02-18 08:56:09,651 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 796 states to 796 states and 1095 transitions. [2023-02-18 08:56:09,651 INFO L240 hiAutomatonCegarLoop]: Abstraction has 796 states and 1095 transitions. [2023-02-18 08:56:09,651 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2023-02-18 08:56:09,652 INFO L428 stractBuchiCegarLoop]: Abstraction has 796 states and 1095 transitions. [2023-02-18 08:56:09,652 INFO L335 stractBuchiCegarLoop]: ======== Iteration 35 ============ [2023-02-18 08:56:09,652 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 796 states and 1095 transitions. [2023-02-18 08:56:09,653 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 78 [2023-02-18 08:56:09,653 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:09,653 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:09,654 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [30, 30, 17, 13, 13, 13, 13, 6, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:09,654 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [30, 30, 18, 18, 18, 18, 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-18 08:56:09,655 INFO L748 eck$LassoCheckResult]: Stem: 84285#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 84238#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; 84239#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 84259#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; 84286#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 84888#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 84886#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 84231#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 84232#$Ultimate##0 ~n := #in~n; 84879#L25 assume ~n <= 0;#res := 1; 84878#factFINAL assume true; 84877#factEXIT >#68#return; 84277#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 84278#$Ultimate##0 ~n := #in~n; 84811#L25 assume ~n <= 0;#res := 1; 84804#factFINAL assume true; 84802#factEXIT >#70#return; 84221#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 84222#$Ultimate##0 ~n := #in~n; 84847#L25 assume ~n <= 0;#res := 1; 84845#factFINAL assume true; 84842#factEXIT >#72#return; 84843#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 84264#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 84265#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 84889#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 84263#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 84219#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 84220#$Ultimate##0 ~n := #in~n; 84985#L25 assume !(~n <= 0); 84980#L26 call #t~ret0 := fact(~n - 1);< 84983#$Ultimate##0 ~n := #in~n; 84995#L25 assume ~n <= 0;#res := 1; 84990#factFINAL assume true; 84979#factEXIT >#66#return; 84976#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84975#factFINAL assume true; 84973#factEXIT >#74#return; 84913#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 84919#$Ultimate##0 ~n := #in~n; 84999#L25 assume ~n <= 0;#res := 1; 84997#factFINAL assume true; 84917#factEXIT >#76#return; 84289#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 84290#$Ultimate##0 ~n := #in~n; 84992#L25 assume !(~n <= 0); 84981#L26 call #t~ret0 := fact(~n - 1);< 84983#$Ultimate##0 ~n := #in~n; 84995#L25 assume ~n <= 0;#res := 1; 84990#factFINAL assume true; 84979#factEXIT >#66#return; 84982#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 85010#factFINAL assume true; 85009#factEXIT >#78#return; 84906#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 84904#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 84634#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 84633#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 84606#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 84600#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 84602#$Ultimate##0 ~n := #in~n; 84887#L25 assume !(~n <= 0); 84883#L26 call #t~ret0 := fact(~n - 1);< 84885#$Ultimate##0 ~n := #in~n; 84893#L25 assume !(~n <= 0); 84884#L26 call #t~ret0 := fact(~n - 1);< 84892#$Ultimate##0 ~n := #in~n; 84899#L25 assume ~n <= 0;#res := 1; 84898#factFINAL assume true; 84896#factEXIT >#66#return; 84897#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84890#factFINAL assume true; 84891#factEXIT >#66#return; 84881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84880#factFINAL assume true; 84599#factEXIT >#74#return; 84592#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 84593#$Ultimate##0 ~n := #in~n; 84643#L25 assume ~n <= 0;#res := 1; 84640#factFINAL assume true; 84591#factEXIT >#76#return; 84559#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 84560#$Ultimate##0 ~n := #in~n; 84646#L25 assume !(~n <= 0); 84611#L26 call #t~ret0 := fact(~n - 1);< 84616#$Ultimate##0 ~n := #in~n; 84624#L25 assume !(~n <= 0); 84613#L26 call #t~ret0 := fact(~n - 1);< 84623#$Ultimate##0 ~n := #in~n; 84632#L25 assume ~n <= 0;#res := 1; 84631#factFINAL assume true; 84630#factEXIT >#66#return; 84629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84628#factFINAL assume true; 84627#factEXIT >#66#return; 84614#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84821#factFINAL assume true; 84558#factEXIT >#78#return; 84556#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 84553#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 84550#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 84302#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 84303#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 84251#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 84253#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 84476#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 84407#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 84230#$Ultimate##0 ~n := #in~n; 84509#L25 assume !(~n <= 0); 84393#L26 call #t~ret0 := fact(~n - 1);< 84408#$Ultimate##0 ~n := #in~n; 84412#L25 assume ~n <= 0;#res := 1; 84405#factFINAL assume true; 84392#factEXIT >#66#return; 84400#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84487#factFINAL assume true; 84468#factEXIT >#68#return; 84461#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 84466#$Ultimate##0 ~n := #in~n; 84489#L25 assume ~n <= 0;#res := 1; 84484#factFINAL assume true; 84460#factEXIT >#70#return; 84433#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 84436#$Ultimate##0 ~n := #in~n; 84486#L25 assume !(~n <= 0); 84397#L26 call #t~ret0 := fact(~n - 1);< 84410#$Ultimate##0 ~n := #in~n; 84412#L25 assume ~n <= 0;#res := 1; 84405#factFINAL assume true; 84392#factEXIT >#66#return; 84402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84477#factFINAL assume true; 84437#factEXIT >#72#return; 84429#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 84427#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 84425#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 84423#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 84421#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 84384#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 84390#$Ultimate##0 ~n := #in~n; 84411#L25 assume !(~n <= 0); 84395#L26 call #t~ret0 := fact(~n - 1);< 84410#$Ultimate##0 ~n := #in~n; 84412#L25 assume ~n <= 0;#res := 1; 84405#factFINAL assume true; 84392#factEXIT >#66#return; 84401#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84404#factFINAL assume true; 84383#factEXIT >#68#return; 84371#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 84377#$Ultimate##0 ~n := #in~n; 84527#L25 assume !(~n <= 0); 84399#L26 call #t~ret0 := fact(~n - 1);< 84408#$Ultimate##0 ~n := #in~n; 84412#L25 assume ~n <= 0;#res := 1; 84405#factFINAL assume true; 84392#factEXIT >#66#return; 84391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84379#factFINAL assume true; 84358#factEXIT >#70#return; 84329#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 84343#$Ultimate##0 ~n := #in~n; 84352#L25 assume ~n <= 0;#res := 1; 84351#factFINAL assume true; 84326#factEXIT >#72#return; 84323#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 84322#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 84321#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 84319#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 84317#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 84294#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 84288#$Ultimate##0 ~n := #in~n; 84311#L25 assume !(~n <= 0); 84269#L26 call #t~ret0 := fact(~n - 1);< 84345#$Ultimate##0 ~n := #in~n; 84306#L25 assume !(~n <= 0); 84224#L26 call #t~ret0 := fact(~n - 1);< 84305#$Ultimate##0 ~n := #in~n; 84308#L25 assume ~n <= 0;#res := 1; 84233#factFINAL assume true; 84223#factEXIT >#66#return; 84225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84350#factFINAL assume true; 84301#factEXIT >#66#return; 84300#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84297#factFINAL assume true; 84299#factEXIT >#74#return; 84296#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 84288#$Ultimate##0 ~n := #in~n; 84311#L25 assume !(~n <= 0); 84269#L26 call #t~ret0 := fact(~n - 1);< 84345#$Ultimate##0 ~n := #in~n; 84274#L25 assume ~n <= 0;#res := 1; 84275#factFINAL assume true; 84344#factEXIT >#66#return; 84316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84315#factFINAL assume true; 84291#factEXIT >#76#return; 84245#L30-7 [2023-02-18 08:56:09,655 INFO L750 eck$LassoCheckResult]: Loop: 84245#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 84313#$Ultimate##0 ~n := #in~n; 84312#L25 assume !(~n <= 0); 84244#L26 call #t~ret0 := fact(~n - 1);< 84246#$Ultimate##0 ~n := #in~n; 84274#L25 assume ~n <= 0;#res := 1; 84275#factFINAL assume true; 84344#factEXIT >#66#return; 84316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84315#factFINAL assume true; 84291#factEXIT >#78#return; 84240#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 84241#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 84260#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 84284#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 84254#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 84249#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 84250#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 84262#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 84229#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 84230#$Ultimate##0 ~n := #in~n; 84509#L25 assume !(~n <= 0); 84393#L26 call #t~ret0 := fact(~n - 1);< 84408#$Ultimate##0 ~n := #in~n; 84483#L25 assume !(~n <= 0); 84451#L26 call #t~ret0 := fact(~n - 1);< 84482#$Ultimate##0 ~n := #in~n; 84491#L25 assume ~n <= 0;#res := 1; 84488#factFINAL assume true; 84479#factEXIT >#66#return; 84478#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84471#factFINAL assume true; 84448#factEXIT >#66#return; 84455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84475#factFINAL assume true; 84474#factEXIT >#68#return; 84463#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 84466#$Ultimate##0 ~n := #in~n; 84489#L25 assume ~n <= 0;#res := 1; 84484#factFINAL assume true; 84460#factEXIT >#70#return; 84431#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 84445#$Ultimate##0 ~n := #in~n; 84467#L25 assume !(~n <= 0); 84449#L26 call #t~ret0 := fact(~n - 1);< 84459#$Ultimate##0 ~n := #in~n; 84850#L25 assume !(~n <= 0); 84480#L26 call #t~ret0 := fact(~n - 1);< 84481#$Ultimate##0 ~n := #in~n; 84491#L25 assume ~n <= 0;#res := 1; 84488#factFINAL assume true; 84479#factEXIT >#66#return; 84478#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84471#factFINAL assume true; 84448#factEXIT >#66#return; 84454#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84444#factFINAL assume true; 84430#factEXIT >#72#return; 84435#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 84547#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 84545#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 84543#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 84530#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 84387#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 84390#$Ultimate##0 ~n := #in~n; 84411#L25 assume !(~n <= 0); 84395#L26 call #t~ret0 := fact(~n - 1);< 84410#$Ultimate##0 ~n := #in~n; 84850#L25 assume !(~n <= 0); 84480#L26 call #t~ret0 := fact(~n - 1);< 84481#$Ultimate##0 ~n := #in~n; 84491#L25 assume ~n <= 0;#res := 1; 84488#factFINAL assume true; 84479#factEXIT >#66#return; 84478#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84471#factFINAL assume true; 84448#factEXIT >#66#return; 84443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84418#factFINAL assume true; 84413#factEXIT >#68#return; 84370#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 84377#$Ultimate##0 ~n := #in~n; 84527#L25 assume !(~n <= 0); 84399#L26 call #t~ret0 := fact(~n - 1);< 84408#$Ultimate##0 ~n := #in~n; 84412#L25 assume ~n <= 0;#res := 1; 84405#factFINAL assume true; 84392#factEXIT >#66#return; 84391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84379#factFINAL assume true; 84358#factEXIT >#70#return; 84337#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 84409#$Ultimate##0 ~n := #in~n; 84504#L25 assume !(~n <= 0); 84398#L26 call #t~ret0 := fact(~n - 1);< 84403#$Ultimate##0 ~n := #in~n; 84412#L25 assume ~n <= 0;#res := 1; 84405#factFINAL assume true; 84392#factEXIT >#66#return; 84391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84379#factFINAL assume true; 84358#factEXIT >#72#return; 84373#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 84546#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 84544#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 84542#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 84541#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 84389#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 84390#$Ultimate##0 ~n := #in~n; 84411#L25 assume !(~n <= 0); 84395#L26 call #t~ret0 := fact(~n - 1);< 84410#$Ultimate##0 ~n := #in~n; 84850#L25 assume !(~n <= 0); 84480#L26 call #t~ret0 := fact(~n - 1);< 84481#$Ultimate##0 ~n := #in~n; 84491#L25 assume ~n <= 0;#res := 1; 84488#factFINAL assume true; 84479#factEXIT >#66#return; 84478#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84471#factFINAL assume true; 84448#factEXIT >#66#return; 84443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84418#factFINAL assume true; 84413#factEXIT >#68#return; 84360#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 84377#$Ultimate##0 ~n := #in~n; 84527#L25 assume !(~n <= 0); 84399#L26 call #t~ret0 := fact(~n - 1);< 84408#$Ultimate##0 ~n := #in~n; 84483#L25 assume !(~n <= 0); 84451#L26 call #t~ret0 := fact(~n - 1);< 84482#$Ultimate##0 ~n := #in~n; 84491#L25 assume ~n <= 0;#res := 1; 84488#factFINAL assume true; 84479#factEXIT >#66#return; 84478#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84471#factFINAL assume true; 84448#factEXIT >#66#return; 84456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84532#factFINAL assume true; 84499#factEXIT >#70#return; 84333#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 84343#$Ultimate##0 ~n := #in~n; 84352#L25 assume ~n <= 0;#res := 1; 84351#factFINAL assume true; 84326#factEXIT >#72#return; 84341#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 84535#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 84534#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 84503#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 84324#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 84310#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 84218#$Ultimate##0 ~n := #in~n; 84353#L25 assume !(~n <= 0); 84268#L26 call #t~ret0 := fact(~n - 1);< 84307#$Ultimate##0 ~n := #in~n; 84306#L25 assume !(~n <= 0); 84224#L26 call #t~ret0 := fact(~n - 1);< 84305#$Ultimate##0 ~n := #in~n; 84306#L25 assume !(~n <= 0); 84224#L26 call #t~ret0 := fact(~n - 1);< 84305#$Ultimate##0 ~n := #in~n; 84308#L25 assume ~n <= 0;#res := 1; 84233#factFINAL assume true; 84223#factEXIT >#66#return; 84225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84350#factFINAL assume true; 84301#factEXIT >#66#return; 84266#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84270#factFINAL assume true; 84304#factEXIT >#66#return; 84346#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84320#factFINAL assume true; 84314#factEXIT >#74#return; 84298#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 84281#$Ultimate##0 ~n := #in~n; 84349#L25 assume !(~n <= 0); 84267#L26 call #t~ret0 := fact(~n - 1);< 84307#$Ultimate##0 ~n := #in~n; 84306#L25 assume !(~n <= 0); 84224#L26 call #t~ret0 := fact(~n - 1);< 84305#$Ultimate##0 ~n := #in~n; 84308#L25 assume ~n <= 0;#res := 1; 84233#factFINAL assume true; 84223#factEXIT >#66#return; 84225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84350#factFINAL assume true; 84301#factEXIT >#66#return; 84300#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 84297#factFINAL assume true; 84299#factEXIT >#76#return; 84245#L30-7 [2023-02-18 08:56:09,655 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:09,655 INFO L85 PathProgramCache]: Analyzing trace with hash 1790720477, now seen corresponding path program 21 times [2023-02-18 08:56:09,656 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:09,656 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2041887050] [2023-02-18 08:56:09,656 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:09,656 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:09,661 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:09,661 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2003823679] [2023-02-18 08:56:09,661 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:56:09,662 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:09,662 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:09,664 INFO L229 MonitoredProcess]: Starting monitored process 133 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:09,665 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (133)] Waiting until timeout for monitored process [2023-02-18 08:56:09,780 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 11 check-sat command(s) [2023-02-18 08:56:09,780 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:09,780 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:09,833 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:09,856 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:09,856 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:09,856 INFO L85 PathProgramCache]: Analyzing trace with hash -218084474, now seen corresponding path program 23 times [2023-02-18 08:56:09,856 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:09,856 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [859529061] [2023-02-18 08:56:09,856 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:09,857 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:09,864 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:09,864 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1485114205] [2023-02-18 08:56:09,864 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:56:09,865 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:09,865 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:09,867 INFO L229 MonitoredProcess]: Starting monitored process 134 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:09,868 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (134)] Waiting until timeout for monitored process [2023-02-18 08:56:09,982 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 21 check-sat command(s) [2023-02-18 08:56:09,982 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:09,982 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:10,030 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:10,050 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:10,050 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:10,050 INFO L85 PathProgramCache]: Analyzing trace with hash -1028520406, now seen corresponding path program 22 times [2023-02-18 08:56:10,050 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:10,051 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [670316160] [2023-02-18 08:56:10,051 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:10,051 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:10,058 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:10,058 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [282325127] [2023-02-18 08:56:10,058 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:56:10,058 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:10,058 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:10,060 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-18 08:56:10,060 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-18 08:56:10,198 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:56:10,199 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:10,201 INFO L263 TraceCheckSpWp]: Trace formula consists of 892 conjuncts, 10 conjunts are in the unsatisfiable core [2023-02-18 08:56:10,204 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:10,238 INFO L134 CoverageAnalysis]: Checked inductivity of 8257 backedges. 1852 proven. 120 refuted. 0 times theorem prover too weak. 6285 trivial. 0 not checked. [2023-02-18 08:56:10,238 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:10,286 INFO L134 CoverageAnalysis]: Checked inductivity of 8257 backedges. 44 proven. 184 refuted. 0 times theorem prover too weak. 8029 trivial. 0 not checked. [2023-02-18 08:56:10,287 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:10,287 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [670316160] [2023-02-18 08:56:10,287 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:10,287 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [282325127] [2023-02-18 08:56:10,287 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [282325127] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:10,287 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:10,287 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 11] total 15 [2023-02-18 08:56:10,287 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1856238696] [2023-02-18 08:56:10,288 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:10,359 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:56:10,359 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:56:10,360 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:56:10,360 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:56:10,360 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-18 08:56:10,360 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:10,360 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:56:10,360 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:56:10,360 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration35_Loop [2023-02-18 08:56:10,360 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:56:10,360 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:56:10,362 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-18 08:56:10,364 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-18 08:56:10,365 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-18 08:56:10,365 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-18 08:56:10,366 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-18 08:56:10,366 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-18 08:56:10,366 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-18 08:56:10,367 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-18 08:56:10,369 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:56:10,370 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-18 08:56:10,370 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:10,370 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:10,373 INFO L229 MonitoredProcess]: Starting monitored process 136 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-18 08:56:10,396 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (136)] Waiting until timeout for monitored process [2023-02-18 08:56:10,397 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:56:10,397 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:56:10,421 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (136)] Ended with exit code 0 [2023-02-18 08:56:10,421 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:10,422 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:10,423 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-18 08:56:10,433 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-18 08:56:10,433 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-18 08:56:10,433 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:56:10,458 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-18 08:56:10,461 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-18 08:56:10,461 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:56:10,461 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:56:10,461 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:56:10,461 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:56:10,462 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-18 08:56:10,462 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:10,462 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:56:10,462 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:56:10,462 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration35_Loop [2023-02-18 08:56:10,462 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:56:10,462 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:56:10,464 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-18 08:56:10,464 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-18 08:56:10,466 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-18 08:56:10,466 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-18 08:56:10,468 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-18 08:56:10,469 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-18 08:56:10,471 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-18 08:56:10,472 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-18 08:56:10,474 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:56:10,474 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-18 08:56:10,474 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:10,474 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:10,476 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-18 08:56:10,477 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-18 08:56:10,479 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-18 08:56:10,484 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:56:10,485 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:56:10,485 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:56:10,485 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:56:10,485 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:56:10,485 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:56:10,485 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:56:10,500 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:56:10,504 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-18 08:56:10,504 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:10,504 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:10,505 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-18 08:56:10,507 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-18 08:56:10,509 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-18 08:56:10,514 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:56:10,514 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:56:10,514 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:56:10,514 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:56:10,514 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:56:10,515 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:56:10,515 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:56:10,536 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:56:10,539 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-18 08:56:10,539 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:10,539 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:10,541 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-18 08:56:10,542 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-18 08:56:10,544 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-18 08:56:10,550 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:56:10,550 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:56:10,550 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:56:10,550 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:56:10,550 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:56:10,550 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:56:10,550 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:56:10,565 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:56:10,569 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-18 08:56:10,569 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:10,569 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:10,570 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-18 08:56:10,572 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-18 08:56:10,574 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-18 08:56:10,579 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:56:10,579 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:56:10,579 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:56:10,579 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:56:10,579 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:56:10,580 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:56:10,580 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:56:10,595 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:56:10,599 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (141)] Ended with exit code 0 [2023-02-18 08:56:10,599 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:10,599 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:10,600 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-18 08:56:10,601 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-18 08:56:10,603 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-18 08:56:10,608 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:56:10,608 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:56:10,609 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:56:10,609 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:56:10,609 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:56:10,609 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:56:10,609 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:56:10,610 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:56:10,612 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-18 08:56:10,612 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:10,612 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:10,614 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-18 08:56:10,614 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-18 08:56:10,616 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-18 08:56:10,622 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:56:10,622 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:56:10,622 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:56:10,622 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:56:10,622 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:56:10,626 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:56:10,626 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:56:10,631 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-18 08:56:10,634 INFO L443 ModelExtractionUtils]: Simplification made 3 calls to the SMT solver. [2023-02-18 08:56:10,634 INFO L444 ModelExtractionUtils]: 8 out of 11 variables were initially zero. Simplification set additionally 0 variables to zero. [2023-02-18 08:56:10,635 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:10,635 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:10,636 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-18 08:56:10,636 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-18 08:56:10,639 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-18 08:56:10,639 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-18 08:56:10,639 INFO L513 LassoAnalysis]: Proved termination. [2023-02-18 08:56:10,639 INFO L515 LassoAnalysis]: Termination argument consisting of: Ranking function f(ULTIMATE.start_main_~n~0#1) = -2*ULTIMATE.start_main_~n~0#1 + 3 Supporting invariants [] [2023-02-18 08:56:10,641 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-18 08:56:10,641 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-18 08:56:10,649 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:10,792 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:56:10,799 INFO L263 TraceCheckSpWp]: Trace formula consists of 1306 conjuncts, 62 conjunts are in the unsatisfiable core [2023-02-18 08:56:10,802 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:11,000 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:56:11,008 INFO L263 TraceCheckSpWp]: Trace formula consists of 1268 conjuncts, 72 conjunts are in the unsatisfiable core [2023-02-18 08:56:11,011 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:11,145 INFO L134 CoverageAnalysis]: Checked inductivity of 2083 backedges. 35 proven. 294 refuted. 0 times theorem prover too weak. 1754 trivial. 0 not checked. [2023-02-18 08:56:11,146 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and without honda bouncer for loop.2 stem predicates 9 loop predicates [2023-02-18 08:56:11,146 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 796 states and 1095 transitions. cyclomatic complexity: 315 Second operand has 12 states, 10 states have (on average 4.7) internal successors, (47), 11 states have internal predecessors, (47), 7 states have call successors, (16), 2 states have call predecessors, (16), 5 states have return successors, (18), 8 states have call predecessors, (18), 7 states have call successors, (18) [2023-02-18 08:56:11,384 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 796 states and 1095 transitions. cyclomatic complexity: 315. Second operand has 12 states, 10 states have (on average 4.7) internal successors, (47), 11 states have internal predecessors, (47), 7 states have call successors, (16), 2 states have call predecessors, (16), 5 states have return successors, (18), 8 states have call predecessors, (18), 7 states have call successors, (18) Result 1798 states and 2494 transitions. Complement of second has 50 states. [2023-02-18 08:56:11,385 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 11 states 2 stem states 8 non-accepting loop states 1 accepting loop states [2023-02-18 08:56:11,385 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 10 states have (on average 4.7) internal successors, (47), 11 states have internal predecessors, (47), 7 states have call successors, (16), 2 states have call predecessors, (16), 5 states have return successors, (18), 8 states have call predecessors, (18), 7 states have call successors, (18) [2023-02-18 08:56:11,385 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 121 transitions. [2023-02-18 08:56:11,386 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 11 states and 121 transitions. Stem has 198 letters. Loop has 191 letters. [2023-02-18 08:56:11,386 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:56:11,386 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 11 states and 121 transitions. Stem has 389 letters. Loop has 191 letters. [2023-02-18 08:56:11,387 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:56:11,387 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 11 states and 121 transitions. Stem has 198 letters. Loop has 382 letters. [2023-02-18 08:56:11,388 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:56:11,388 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1798 states and 2494 transitions. [2023-02-18 08:56:11,395 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 56 [2023-02-18 08:56:11,403 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1798 states to 1564 states and 2226 transitions. [2023-02-18 08:56:11,403 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 103 [2023-02-18 08:56:11,403 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 109 [2023-02-18 08:56:11,403 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1564 states and 2226 transitions. [2023-02-18 08:56:11,404 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:11,404 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1564 states and 2226 transitions. [2023-02-18 08:56:11,404 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1564 states and 2226 transitions. [2023-02-18 08:56:11,422 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1564 to 1497. [2023-02-18 08:56:11,424 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 1497 states, 940 states have (on average 1.0765957446808512) internal successors, (1012), 955 states have internal predecessors, (1012), 399 states have call successors, (409), 165 states have call predecessors, (409), 158 states have return successors, (682), 376 states have call predecessors, (682), 399 states have call successors, (682) [2023-02-18 08:56:11,427 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1497 states to 1497 states and 2103 transitions. [2023-02-18 08:56:11,428 INFO L240 hiAutomatonCegarLoop]: Abstraction has 1497 states and 2103 transitions. [2023-02-18 08:56:11,428 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:11,428 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2023-02-18 08:56:11,428 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=59, Invalid=151, Unknown=0, NotChecked=0, Total=210 [2023-02-18 08:56:11,428 INFO L87 Difference]: Start difference. First operand 1497 states and 2103 transitions. Second operand has 15 states, 15 states have (on average 5.133333333333334) internal successors, (77), 15 states have internal predecessors, (77), 12 states have call successors, (39), 2 states have call predecessors, (39), 2 states have return successors, (39), 12 states have call predecessors, (39), 12 states have call successors, (39) [2023-02-18 08:56:11,581 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (144)] Forceful destruction successful, exit code 0 [2023-02-18 08:56:11,659 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:11,660 INFO L93 Difference]: Finished difference Result 2345 states and 3518 transitions. [2023-02-18 08:56:11,660 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2345 states and 3518 transitions. [2023-02-18 08:56:11,679 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 88 [2023-02-18 08:56:11,688 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2345 states to 1812 states and 2671 transitions. [2023-02-18 08:56:11,688 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 103 [2023-02-18 08:56:11,688 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 103 [2023-02-18 08:56:11,688 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1812 states and 2671 transitions. [2023-02-18 08:56:11,688 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:11,688 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1812 states and 2671 transitions. [2023-02-18 08:56:11,689 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1812 states and 2671 transitions. [2023-02-18 08:56:11,708 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1812 to 1487. [2023-02-18 08:56:11,709 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 1487 states, 950 states have (on average 1.065263157894737) internal successors, (1012), 953 states have internal predecessors, (1012), 379 states have call successors, (389), 165 states have call predecessors, (389), 158 states have return successors, (652), 368 states have call predecessors, (652), 379 states have call successors, (652) [2023-02-18 08:56:11,713 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1487 states to 1487 states and 2053 transitions. [2023-02-18 08:56:11,713 INFO L240 hiAutomatonCegarLoop]: Abstraction has 1487 states and 2053 transitions. [2023-02-18 08:56:11,713 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2023-02-18 08:56:11,714 INFO L428 stractBuchiCegarLoop]: Abstraction has 1487 states and 2053 transitions. [2023-02-18 08:56:11,714 INFO L335 stractBuchiCegarLoop]: ======== Iteration 36 ============ [2023-02-18 08:56:11,714 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 1487 states and 2053 transitions. [2023-02-18 08:56:11,716 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 56 [2023-02-18 08:56:11,716 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:11,716 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:11,717 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [47, 47, 24, 23, 23, 23, 23, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:11,717 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [34, 34, 22, 22, 22, 22, 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-18 08:56:11,717 INFO L748 eck$LassoCheckResult]: Stem: 94342#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 94294#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; 94295#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 94313#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; 94303#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 94304#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 95022#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 95018#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 95019#$Ultimate##0 ~n := #in~n; 95025#L25 assume ~n <= 0;#res := 1; 95021#factFINAL assume true; 95017#factEXIT >#68#return; 94992#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 94993#$Ultimate##0 ~n := #in~n; 94997#L25 assume ~n <= 0;#res := 1; 94996#factFINAL assume true; 94991#factEXIT >#70#return; 94988#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 94989#$Ultimate##0 ~n := #in~n; 94999#L25 assume ~n <= 0;#res := 1; 94998#factFINAL assume true; 94987#factEXIT >#72#return; 94985#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 94984#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 94983#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 94982#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 94980#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 94975#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 94976#$Ultimate##0 ~n := #in~n; 95013#L25 assume !(~n <= 0); 95011#L26 call #t~ret0 := fact(~n - 1);< 95012#$Ultimate##0 ~n := #in~n; 95016#L25 assume ~n <= 0;#res := 1; 95015#factFINAL assume true; 95010#factEXIT >#66#return; 95005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95002#factFINAL assume true; 94974#factEXIT >#74#return; 94970#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 94972#$Ultimate##0 ~n := #in~n; 95061#L25 assume ~n <= 0;#res := 1; 95057#factFINAL assume true; 95055#factEXIT >#76#return; 95052#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 95053#$Ultimate##0 ~n := #in~n; 95063#L25 assume !(~n <= 0); 95059#L26 call #t~ret0 := fact(~n - 1);< 95060#$Ultimate##0 ~n := #in~n; 95064#L25 assume ~n <= 0;#res := 1; 95062#factFINAL assume true; 95058#factEXIT >#66#return; 95056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95054#factFINAL assume true; 95051#factEXIT >#78#return; 95050#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 95049#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 95048#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 95047#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 95046#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 94948#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 95043#$Ultimate##0 ~n := #in~n; 95072#L25 assume !(~n <= 0); 95066#L26 call #t~ret0 := fact(~n - 1);< 95071#$Ultimate##0 ~n := #in~n; 95076#L25 assume !(~n <= 0); 95067#L26 call #t~ret0 := fact(~n - 1);< 95075#$Ultimate##0 ~n := #in~n; 95081#L25 assume ~n <= 0;#res := 1; 95080#factFINAL assume true; 95078#factEXIT >#66#return; 95079#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95074#factFINAL assume true; 95065#factEXIT >#66#return; 95044#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95045#factFINAL assume true; 94953#factEXIT >#74#return; 94955#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 95675#$Ultimate##0 ~n := #in~n; 95681#L25 assume ~n <= 0;#res := 1; 95679#factFINAL assume true; 95677#factEXIT >#76#return; 94956#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 94957#$Ultimate##0 ~n := #in~n; 95073#L25 assume !(~n <= 0); 95068#L26 call #t~ret0 := fact(~n - 1);< 95071#$Ultimate##0 ~n := #in~n; 95076#L25 assume !(~n <= 0); 95067#L26 call #t~ret0 := fact(~n - 1);< 95075#$Ultimate##0 ~n := #in~n; 95081#L25 assume ~n <= 0;#res := 1; 95080#factFINAL assume true; 95078#factEXIT >#66#return; 95079#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95074#factFINAL assume true; 95065#factEXIT >#66#return; 95070#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95041#factFINAL assume true; 95042#factEXIT >#78#return; 94952#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 94951#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 94950#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 94949#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 94947#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 94934#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 94936#$Ultimate##0 ~n := #in~n; 95014#L25 assume !(~n <= 0); 95007#L26 call #t~ret0 := fact(~n - 1);< 95009#$Ultimate##0 ~n := #in~n; 95031#L25 assume !(~n <= 0); 95008#L26 call #t~ret0 := fact(~n - 1);< 95030#$Ultimate##0 ~n := #in~n; 95040#L25 assume ~n <= 0;#res := 1; 95039#factFINAL assume true; 95037#factEXIT >#66#return; 95038#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95028#factFINAL assume true; 95029#factEXIT >#66#return; 95004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95001#factFINAL assume true; 94933#factEXIT >#74#return; 94910#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 94911#$Ultimate##0 ~n := #in~n; 94946#L25 assume ~n <= 0;#res := 1; 94927#factFINAL assume true; 94909#factEXIT >#76#return; 94622#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 94623#$Ultimate##0 ~n := #in~n; 94718#L25 assume !(~n <= 0); 94713#L26 call #t~ret0 := fact(~n - 1);< 94716#$Ultimate##0 ~n := #in~n; 94994#L25 assume !(~n <= 0); 94712#L26 call #t~ret0 := fact(~n - 1);< 94932#$Ultimate##0 ~n := #in~n; 95027#L25 assume ~n <= 0;#res := 1; 95026#factFINAL assume true; 94967#factEXIT >#66#return; 94958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94931#factFINAL assume true; 94710#factEXIT >#66#return; 94715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94670#factFINAL assume true; 94671#factEXIT >#78#return; 94616#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 94602#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 94379#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 94380#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 94311#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 94312#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 94586#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 95413#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 95385#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 95386#$Ultimate##0 ~n := #in~n; 95397#L25 assume !(~n <= 0); 95320#L26 call #t~ret0 := fact(~n - 1);< 95341#$Ultimate##0 ~n := #in~n; 95483#L25 assume ~n <= 0;#res := 1; 95472#factFINAL assume true; 95464#factEXIT >#66#return; 95463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95462#factFINAL assume true; 95461#factEXIT >#68#return; 95445#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 95448#$Ultimate##0 ~n := #in~n; 95451#L25 assume ~n <= 0;#res := 1; 95450#factFINAL assume true; 95444#factEXIT >#70#return; 95311#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 95438#$Ultimate##0 ~n := #in~n; 95437#L25 assume !(~n <= 0); 95192#L26 call #t~ret0 := fact(~n - 1);< 95313#$Ultimate##0 ~n := #in~n; 95343#L25 assume ~n <= 0;#res := 1; 95310#factFINAL assume true; 95301#factEXIT >#66#return; 95304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95487#factFINAL assume true; 95455#factEXIT >#72#return; 95456#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 95509#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 95508#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 95507#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 95506#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 95409#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 95411#$Ultimate##0 ~n := #in~n; 95420#L25 assume !(~n <= 0); 95193#L26 call #t~ret0 := fact(~n - 1);< 95313#$Ultimate##0 ~n := #in~n; 95343#L25 assume ~n <= 0;#res := 1; 95310#factFINAL assume true; 95301#factEXIT >#66#return; 95307#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95500#factFINAL assume true; 95496#factEXIT >#68#return; 95285#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 95273#$Ultimate##0 ~n := #in~n; 95274#L25 assume !(~n <= 0); 95171#L26 call #t~ret0 := fact(~n - 1);< 95229#$Ultimate##0 ~n := #in~n; 95343#L25 assume ~n <= 0;#res := 1; 95310#factFINAL assume true; 95301#factEXIT >#66#return; 95305#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95414#factFINAL assume true; 95400#factEXIT >#70#return; 95261#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 95264#$Ultimate##0 ~n := #in~n; 95266#L25 assume ~n <= 0;#res := 1; 95265#factFINAL assume true; 95255#factEXIT >#72#return; 95263#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 95505#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 95504#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 95502#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 95501#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 95277#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 95273#$Ultimate##0 ~n := #in~n; 95274#L25 assume !(~n <= 0); 95171#L26 call #t~ret0 := fact(~n - 1);< 95229#$Ultimate##0 ~n := #in~n; 95215#L25 assume !(~n <= 0); 95173#L26 call #t~ret0 := fact(~n - 1);< 95210#$Ultimate##0 ~n := #in~n; 95216#L25 assume ~n <= 0;#res := 1; 95214#factFINAL assume true; 95208#factEXIT >#66#return; 95207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95201#factFINAL assume true; 95191#factEXIT >#66#return; 95197#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95423#factFINAL assume true; 95422#factEXIT >#74#return; 95276#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 95273#$Ultimate##0 ~n := #in~n; 95274#L25 assume !(~n <= 0); 95171#L26 call #t~ret0 := fact(~n - 1);< 95229#$Ultimate##0 ~n := #in~n; 95343#L25 assume ~n <= 0;#res := 1; 95310#factFINAL assume true; 95301#factEXIT >#66#return; 95305#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95414#factFINAL assume true; 95400#factEXIT >#76#return; 95315#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 95398#$Ultimate##0 ~n := #in~n; 95389#L25 assume !(~n <= 0); 95302#L26 call #t~ret0 := fact(~n - 1);< 95316#$Ultimate##0 ~n := #in~n; 95343#L25 assume ~n <= 0;#res := 1; 95310#factFINAL assume true; 95301#factEXIT >#66#return; 95305#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95414#factFINAL assume true; 95400#factEXIT >#78#return; 95403#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 95097#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 95096#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 95095#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 95091#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 94285#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 95090#$Ultimate##0 ~n := #in~n; 95087#L25 assume !(~n <= 0); 94263#L26 call #t~ret0 := fact(~n - 1);< 95034#$Ultimate##0 ~n := #in~n; 95020#L25 assume !(~n <= 0); 94960#L26 call #t~ret0 := fact(~n - 1);< 94966#$Ultimate##0 ~n := #in~n; 95023#L25 assume ~n <= 0;#res := 1; 94959#factFINAL assume true; 94961#factEXIT >#66#return; 95082#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95083#factFINAL assume true; 95115#factEXIT >#66#return; 95117#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95125#factFINAL assume true; 95121#factEXIT >#74#return; 94281#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 95090#$Ultimate##0 ~n := #in~n; 95087#L25 assume !(~n <= 0); 94263#L26 call #t~ret0 := fact(~n - 1);< 95034#$Ultimate##0 ~n := #in~n; 95084#L25 assume ~n <= 0;#res := 1; 95086#factFINAL assume true; 94262#factEXIT >#66#return; 94268#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94280#factFINAL assume true; 94286#factEXIT >#76#return; 94282#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 95090#$Ultimate##0 ~n := #in~n; 95087#L25 assume !(~n <= 0); 94263#L26 call #t~ret0 := fact(~n - 1);< 95034#$Ultimate##0 ~n := #in~n; 95020#L25 assume !(~n <= 0); 94960#L26 call #t~ret0 := fact(~n - 1);< 94966#$Ultimate##0 ~n := #in~n; 95023#L25 assume ~n <= 0;#res := 1; 94959#factFINAL assume true; 94961#factEXIT >#66#return; 95082#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95083#factFINAL assume true; 95115#factEXIT >#66#return; 95117#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95125#factFINAL assume true; 95121#factEXIT >#78#return; 94346#L30-8 [2023-02-18 08:56:11,718 INFO L750 eck$LassoCheckResult]: Loop: 94346#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 94314#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 94315#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 94340#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 94309#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 94310#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 94345#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 94317#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 94276#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 94277#$Ultimate##0 ~n := #in~n; 95252#L25 assume !(~n <= 0); 95172#L26 call #t~ret0 := fact(~n - 1);< 95229#$Ultimate##0 ~n := #in~n; 95215#L25 assume !(~n <= 0); 95173#L26 call #t~ret0 := fact(~n - 1);< 95210#$Ultimate##0 ~n := #in~n; 95215#L25 assume !(~n <= 0); 95173#L26 call #t~ret0 := fact(~n - 1);< 95210#$Ultimate##0 ~n := #in~n; 95216#L25 assume ~n <= 0;#res := 1; 95214#factFINAL assume true; 95208#factEXIT >#66#return; 95207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95201#factFINAL assume true; 95191#factEXIT >#66#return; 95182#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95188#factFINAL assume true; 95168#factEXIT >#66#return; 95184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95248#factFINAL assume true; 95247#factEXIT >#68#return; 95242#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 95243#$Ultimate##0 ~n := #in~n; 95246#L25 assume ~n <= 0;#res := 1; 95245#factFINAL assume true; 95241#factEXIT >#70#return; 95189#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 95237#$Ultimate##0 ~n := #in~n; 95234#L25 assume !(~n <= 0); 95179#L26 call #t~ret0 := fact(~n - 1);< 95190#$Ultimate##0 ~n := #in~n; 95227#L25 assume !(~n <= 0); 95170#L26 call #t~ret0 := fact(~n - 1);< 95187#$Ultimate##0 ~n := #in~n; 95215#L25 assume !(~n <= 0); 95173#L26 call #t~ret0 := fact(~n - 1);< 95210#$Ultimate##0 ~n := #in~n; 95216#L25 assume ~n <= 0;#res := 1; 95214#factFINAL assume true; 95208#factEXIT >#66#return; 95207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95201#factFINAL assume true; 95191#factEXIT >#66#return; 95182#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95188#factFINAL assume true; 95168#factEXIT >#66#return; 95186#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95250#factFINAL assume true; 95249#factEXIT >#72#return; 95244#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 95240#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 95239#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 95236#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 95231#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 95219#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 95221#$Ultimate##0 ~n := #in~n; 95230#L25 assume !(~n <= 0); 95169#L26 call #t~ret0 := fact(~n - 1);< 95229#$Ultimate##0 ~n := #in~n; 95215#L25 assume !(~n <= 0); 95173#L26 call #t~ret0 := fact(~n - 1);< 95210#$Ultimate##0 ~n := #in~n; 95215#L25 assume !(~n <= 0); 95173#L26 call #t~ret0 := fact(~n - 1);< 95210#$Ultimate##0 ~n := #in~n; 95216#L25 assume ~n <= 0;#res := 1; 95214#factFINAL assume true; 95208#factEXIT >#66#return; 95207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95201#factFINAL assume true; 95191#factEXIT >#66#return; 95182#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95188#factFINAL assume true; 95168#factEXIT >#66#return; 95181#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95224#factFINAL assume true; 95217#factEXIT >#68#return; 95147#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 95160#$Ultimate##0 ~n := #in~n; 95267#L25 assume !(~n <= 0); 95180#L26 call #t~ret0 := fact(~n - 1);< 95229#$Ultimate##0 ~n := #in~n; 95343#L25 assume ~n <= 0;#res := 1; 95310#factFINAL assume true; 95301#factEXIT >#66#return; 95306#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95158#factFINAL assume true; 95159#factEXIT >#70#return; 95149#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 95160#$Ultimate##0 ~n := #in~n; 95267#L25 assume !(~n <= 0); 95180#L26 call #t~ret0 := fact(~n - 1);< 95229#$Ultimate##0 ~n := #in~n; 95343#L25 assume ~n <= 0;#res := 1; 95310#factFINAL assume true; 95301#factEXIT >#66#return; 95306#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95158#factFINAL assume true; 95159#factEXIT >#72#return; 95155#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 95238#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 95235#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 95233#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 95226#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 95220#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 95221#$Ultimate##0 ~n := #in~n; 95230#L25 assume !(~n <= 0); 95169#L26 call #t~ret0 := fact(~n - 1);< 95229#$Ultimate##0 ~n := #in~n; 95215#L25 assume !(~n <= 0); 95173#L26 call #t~ret0 := fact(~n - 1);< 95210#$Ultimate##0 ~n := #in~n; 95215#L25 assume !(~n <= 0); 95173#L26 call #t~ret0 := fact(~n - 1);< 95210#$Ultimate##0 ~n := #in~n; 95216#L25 assume ~n <= 0;#res := 1; 95214#factFINAL assume true; 95208#factEXIT >#66#return; 95207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95201#factFINAL assume true; 95191#factEXIT >#66#return; 95182#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95188#factFINAL assume true; 95168#factEXIT >#66#return; 95181#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95224#factFINAL assume true; 95217#factEXIT >#68#return; 95148#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 95160#$Ultimate##0 ~n := #in~n; 95267#L25 assume !(~n <= 0); 95180#L26 call #t~ret0 := fact(~n - 1);< 95229#$Ultimate##0 ~n := #in~n; 95215#L25 assume !(~n <= 0); 95173#L26 call #t~ret0 := fact(~n - 1);< 95210#$Ultimate##0 ~n := #in~n; 95216#L25 assume ~n <= 0;#res := 1; 95214#factFINAL assume true; 95208#factEXIT >#66#return; 95207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95201#factFINAL assume true; 95191#factEXIT >#66#return; 95200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95228#factFINAL assume true; 95144#factEXIT >#70#return; 95146#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 95160#$Ultimate##0 ~n := #in~n; 95267#L25 assume ~n <= 0;#res := 1; 95515#factFINAL assume true; 95514#factEXIT >#72#return; 95512#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 95510#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 95143#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 95141#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 95137#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 94256#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 94257#$Ultimate##0 ~n := #in~n; 95131#L25 assume !(~n <= 0); 94963#L26 call #t~ret0 := fact(~n - 1);< 95024#$Ultimate##0 ~n := #in~n; 95020#L25 assume !(~n <= 0); 94960#L26 call #t~ret0 := fact(~n - 1);< 94966#$Ultimate##0 ~n := #in~n; 95020#L25 assume !(~n <= 0); 94960#L26 call #t~ret0 := fact(~n - 1);< 94966#$Ultimate##0 ~n := #in~n; 95023#L25 assume ~n <= 0;#res := 1; 94959#factFINAL assume true; 94961#factEXIT >#66#return; 95082#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95083#factFINAL assume true; 95115#factEXIT >#66#return; 95111#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95114#factFINAL assume true; 95110#factEXIT >#66#return; 95112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95122#factFINAL assume true; 95098#factEXIT >#74#return; 94336#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 94337#$Ultimate##0 ~n := #in~n; 95118#L25 assume !(~n <= 0); 94965#L26 call #t~ret0 := fact(~n - 1);< 95024#$Ultimate##0 ~n := #in~n; 95020#L25 assume !(~n <= 0); 94960#L26 call #t~ret0 := fact(~n - 1);< 94966#$Ultimate##0 ~n := #in~n; 95023#L25 assume ~n <= 0;#res := 1; 94959#factFINAL assume true; 94961#factEXIT >#66#return; 95082#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95083#factFINAL assume true; 95115#factEXIT >#66#return; 95116#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95123#factFINAL assume true; 95093#factEXIT >#76#return; 95094#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 95127#$Ultimate##0 ~n := #in~n; 95128#L25 assume !(~n <= 0); 94264#L26 call #t~ret0 := fact(~n - 1);< 94300#$Ultimate##0 ~n := #in~n; 95084#L25 assume ~n <= 0;#res := 1; 95086#factFINAL assume true; 94262#factEXIT >#66#return; 94267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 95126#factFINAL assume true; 95124#factEXIT >#78#return; 94346#L30-8 [2023-02-18 08:56:11,718 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:11,718 INFO L85 PathProgramCache]: Analyzing trace with hash -1163141286, now seen corresponding path program 23 times [2023-02-18 08:56:11,718 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:11,718 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [633004350] [2023-02-18 08:56:11,718 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:11,718 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:11,724 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:11,724 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1749575361] [2023-02-18 08:56:11,724 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:56:11,725 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:11,725 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:11,726 INFO L229 MonitoredProcess]: Starting monitored process 145 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:11,728 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (145)] Waiting until timeout for monitored process [2023-02-18 08:56:11,864 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 15 check-sat command(s) [2023-02-18 08:56:11,864 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:11,866 INFO L263 TraceCheckSpWp]: Trace formula consists of 620 conjuncts, 19 conjunts are in the unsatisfiable core [2023-02-18 08:56:11,868 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:11,917 INFO L134 CoverageAnalysis]: Checked inductivity of 4973 backedges. 2805 proven. 88 refuted. 0 times theorem prover too weak. 2080 trivial. 0 not checked. [2023-02-18 08:56:11,917 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:12,032 INFO L134 CoverageAnalysis]: Checked inductivity of 4973 backedges. 346 proven. 546 refuted. 0 times theorem prover too weak. 4081 trivial. 0 not checked. [2023-02-18 08:56:12,032 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:12,032 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [633004350] [2023-02-18 08:56:12,033 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:12,033 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1749575361] [2023-02-18 08:56:12,033 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1749575361] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:12,033 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:12,033 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 16] total 20 [2023-02-18 08:56:12,033 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [436534756] [2023-02-18 08:56:12,033 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:12,033 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:56:12,034 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:12,034 INFO L85 PathProgramCache]: Analyzing trace with hash -1393846122, now seen corresponding path program 24 times [2023-02-18 08:56:12,034 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:12,034 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [303305785] [2023-02-18 08:56:12,034 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:12,034 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:12,038 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:12,038 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [204625749] [2023-02-18 08:56:12,038 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:56:12,038 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:12,038 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:12,039 INFO L229 MonitoredProcess]: Starting monitored process 146 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:12,040 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (146)] Waiting until timeout for monitored process [2023-02-18 08:56:12,147 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 13 check-sat command(s) [2023-02-18 08:56:12,148 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:12,149 INFO L263 TraceCheckSpWp]: Trace formula consists of 433 conjuncts, 14 conjunts are in the unsatisfiable core [2023-02-18 08:56:12,150 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:12,214 INFO L134 CoverageAnalysis]: Checked inductivity of 2743 backedges. 1231 proven. 185 refuted. 0 times theorem prover too weak. 1327 trivial. 0 not checked. [2023-02-18 08:56:12,215 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:12,305 INFO L134 CoverageAnalysis]: Checked inductivity of 2743 backedges. 139 proven. 306 refuted. 0 times theorem prover too weak. 2298 trivial. 0 not checked. [2023-02-18 08:56:12,305 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:12,305 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [303305785] [2023-02-18 08:56:12,306 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:12,306 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [204625749] [2023-02-18 08:56:12,306 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [204625749] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:12,306 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:12,306 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 14] total 19 [2023-02-18 08:56:12,306 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [342954755] [2023-02-18 08:56:12,306 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:12,306 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:12,306 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:12,306 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2023-02-18 08:56:12,307 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=65, Invalid=277, Unknown=0, NotChecked=0, Total=342 [2023-02-18 08:56:12,307 INFO L87 Difference]: Start difference. First operand 1487 states and 2053 transitions. cyclomatic complexity: 593 Second operand has 19 states, 17 states have (on average 3.4705882352941178) internal successors, (59), 19 states have internal predecessors, (59), 13 states have call successors, (27), 2 states have call predecessors, (27), 5 states have return successors, (28), 10 states have call predecessors, (28), 13 states have call successors, (28) [2023-02-18 08:56:12,783 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:12,783 INFO L93 Difference]: Finished difference Result 1627 states and 2268 transitions. [2023-02-18 08:56:12,784 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1627 states and 2268 transitions. [2023-02-18 08:56:12,815 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 71 [2023-02-18 08:56:12,821 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1627 states to 1555 states and 2174 transitions. [2023-02-18 08:56:12,821 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 91 [2023-02-18 08:56:12,822 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 91 [2023-02-18 08:56:12,822 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1555 states and 2174 transitions. [2023-02-18 08:56:12,822 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:12,822 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1555 states and 2174 transitions. [2023-02-18 08:56:12,823 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1555 states and 2174 transitions. [2023-02-18 08:56:12,839 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1555 to 1463. [2023-02-18 08:56:12,840 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 1463 states, 938 states have (on average 1.0639658848614073) internal successors, (998), 941 states have internal predecessors, (998), 371 states have call successors, (379), 163 states have call predecessors, (379), 154 states have return successors, (632), 358 states have call predecessors, (632), 371 states have call successors, (632) [2023-02-18 08:56:12,844 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1463 states to 1463 states and 2009 transitions. [2023-02-18 08:56:12,844 INFO L240 hiAutomatonCegarLoop]: Abstraction has 1463 states and 2009 transitions. [2023-02-18 08:56:12,844 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2023-02-18 08:56:12,845 INFO L428 stractBuchiCegarLoop]: Abstraction has 1463 states and 2009 transitions. [2023-02-18 08:56:12,845 INFO L335 stractBuchiCegarLoop]: ======== Iteration 37 ============ [2023-02-18 08:56:12,845 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 1463 states and 2009 transitions. [2023-02-18 08:56:12,848 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 57 [2023-02-18 08:56:12,848 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:12,848 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:12,849 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [47, 47, 24, 23, 23, 23, 23, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:12,849 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [49, 49, 34, 34, 34, 34, 15, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:12,850 INFO L748 eck$LassoCheckResult]: Stem: 100623#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 100564#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; 100565#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 100584#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; 100575#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 100576#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 101374#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 101372#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 101373#$Ultimate##0 ~n := #in~n; 101377#L25 assume ~n <= 0;#res := 1; 101376#factFINAL assume true; 101371#factEXIT >#68#return; 101367#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 101368#$Ultimate##0 ~n := #in~n; 101375#L25 assume ~n <= 0;#res := 1; 101370#factFINAL assume true; 101366#factEXIT >#70#return; 101363#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 101364#$Ultimate##0 ~n := #in~n; 101369#L25 assume ~n <= 0;#res := 1; 101365#factFINAL assume true; 101362#factEXIT >#72#return; 101361#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 101359#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 101356#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 101352#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 101350#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 101347#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 101348#$Ultimate##0 ~n := #in~n; 101358#L25 assume !(~n <= 0); 101354#L26 call #t~ret0 := fact(~n - 1);< 101355#$Ultimate##0 ~n := #in~n; 101360#L25 assume ~n <= 0;#res := 1; 101357#factFINAL assume true; 101353#factEXIT >#66#return; 101351#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101349#factFINAL assume true; 101346#factEXIT >#74#return; 101255#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 101256#$Ultimate##0 ~n := #in~n; 101323#L25 assume ~n <= 0;#res := 1; 101322#factFINAL assume true; 101319#factEXIT >#76#return; 101316#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 101317#$Ultimate##0 ~n := #in~n; 101334#L25 assume !(~n <= 0); 101332#L26 call #t~ret0 := fact(~n - 1);< 101333#$Ultimate##0 ~n := #in~n; 101338#L25 assume ~n <= 0;#res := 1; 101336#factFINAL assume true; 101331#factEXIT >#66#return; 101328#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101327#factFINAL assume true; 101315#factEXIT >#78#return; 101314#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 101312#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 101307#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 101305#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 101302#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 101165#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 101286#$Ultimate##0 ~n := #in~n; 101300#L25 assume !(~n <= 0); 101296#L26 call #t~ret0 := fact(~n - 1);< 101299#$Ultimate##0 ~n := #in~n; 101313#L25 assume !(~n <= 0); 101295#L26 call #t~ret0 := fact(~n - 1);< 101311#$Ultimate##0 ~n := #in~n; 101344#L25 assume ~n <= 0;#res := 1; 101343#factFINAL assume true; 101342#factEXIT >#66#return; 101341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101339#factFINAL assume true; 101337#factEXIT >#66#return; 101310#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101378#factFINAL assume true; 101174#factEXIT >#74#return; 101176#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 101190#$Ultimate##0 ~n := #in~n; 101187#L25 assume ~n <= 0;#res := 1; 101188#factFINAL assume true; 101219#factEXIT >#76#return; 101177#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 101178#$Ultimate##0 ~n := #in~n; 101329#L25 assume !(~n <= 0); 101294#L26 call #t~ret0 := fact(~n - 1);< 101299#$Ultimate##0 ~n := #in~n; 101313#L25 assume !(~n <= 0); 101295#L26 call #t~ret0 := fact(~n - 1);< 101311#$Ultimate##0 ~n := #in~n; 101344#L25 assume ~n <= 0;#res := 1; 101343#factFINAL assume true; 101342#factEXIT >#66#return; 101341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101339#factFINAL assume true; 101337#factEXIT >#66#return; 101298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101379#factFINAL assume true; 101301#factEXIT >#78#return; 101173#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 101172#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 101170#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 101168#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 101164#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 101158#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 101162#$Ultimate##0 ~n := #in~n; 101345#L25 assume !(~n <= 0); 101224#L26 call #t~ret0 := fact(~n - 1);< 101226#$Ultimate##0 ~n := #in~n; 101231#L25 assume !(~n <= 0); 101225#L26 call #t~ret0 := fact(~n - 1);< 101229#$Ultimate##0 ~n := #in~n; 101386#L25 assume ~n <= 0;#res := 1; 101385#factFINAL assume true; 101383#factEXIT >#66#return; 101384#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101227#factFINAL assume true; 101228#factEXIT >#66#return; 101222#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101221#factFINAL assume true; 101157#factEXIT >#74#return; 101145#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 101146#$Ultimate##0 ~n := #in~n; 101171#L25 assume ~n <= 0;#res := 1; 101169#factFINAL assume true; 101144#factEXIT >#76#return; 100893#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 100894#$Ultimate##0 ~n := #in~n; 101212#L25 assume !(~n <= 0); 101196#L26 call #t~ret0 := fact(~n - 1);< 101200#$Ultimate##0 ~n := #in~n; 101237#L25 assume !(~n <= 0); 101197#L26 call #t~ret0 := fact(~n - 1);< 101236#$Ultimate##0 ~n := #in~n; 101269#L25 assume ~n <= 0;#res := 1; 101268#factFINAL assume true; 101250#factEXIT >#66#return; 101248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101246#factFINAL assume true; 101243#factEXIT >#66#return; 101198#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101388#factFINAL assume true; 101233#factEXIT >#78#return; 100889#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 100887#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 100886#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 100884#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 100883#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 100882#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 100602#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 100603#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 101659#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 101661#$Ultimate##0 ~n := #in~n; 101687#L25 assume !(~n <= 0); 101676#L26 call #t~ret0 := fact(~n - 1);< 101686#$Ultimate##0 ~n := #in~n; 101693#L25 assume ~n <= 0;#res := 1; 101688#factFINAL assume true; 101672#factEXIT >#66#return; 101671#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101670#factFINAL assume true; 101657#factEXIT >#68#return; 101652#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 101655#$Ultimate##0 ~n := #in~n; 101722#L25 assume ~n <= 0;#res := 1; 101668#factFINAL assume true; 101650#factEXIT >#70#return; 101582#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 101634#$Ultimate##0 ~n := #in~n; 101632#L25 assume !(~n <= 0); 101521#L26 call #t~ret0 := fact(~n - 1);< 101579#$Ultimate##0 ~n := #in~n; 101575#L25 assume ~n <= 0;#res := 1; 101562#factFINAL assume true; 101553#factEXIT >#66#return; 101557#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101718#factFINAL assume true; 101647#factEXIT >#72#return; 101648#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 101721#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 101720#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 101719#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 101717#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 101614#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 101617#$Ultimate##0 ~n := #in~n; 101621#L25 assume !(~n <= 0); 101523#L26 call #t~ret0 := fact(~n - 1);< 101579#$Ultimate##0 ~n := #in~n; 101575#L25 assume ~n <= 0;#res := 1; 101562#factFINAL assume true; 101553#factEXIT >#66#return; 101558#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101640#factFINAL assume true; 101637#factEXIT >#68#return; 101450#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 101607#$Ultimate##0 ~n := #in~n; 101716#L25 assume !(~n <= 0); 101500#L26 call #t~ret0 := fact(~n - 1);< 101544#$Ultimate##0 ~n := #in~n; 101575#L25 assume ~n <= 0;#res := 1; 101562#factFINAL assume true; 101553#factEXIT >#66#return; 101556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101630#factFINAL assume true; 101445#factEXIT >#70#return; 101461#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 101600#$Ultimate##0 ~n := #in~n; 101711#L25 assume ~n <= 0;#res := 1; 101601#factFINAL assume true; 101596#factEXIT >#72#return; 101598#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 101695#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 101694#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 101692#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 101663#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 101451#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 101607#$Ultimate##0 ~n := #in~n; 101716#L25 assume !(~n <= 0); 101500#L26 call #t~ret0 := fact(~n - 1);< 101544#$Ultimate##0 ~n := #in~n; 101547#L25 assume !(~n <= 0); 101505#L26 call #t~ret0 := fact(~n - 1);< 101539#$Ultimate##0 ~n := #in~n; 101546#L25 assume ~n <= 0;#res := 1; 101545#factFINAL assume true; 101537#factEXIT >#66#return; 101534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101532#factFINAL assume true; 101520#factEXIT >#66#return; 101524#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101714#factFINAL assume true; 101602#factEXIT >#74#return; 101446#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 101607#$Ultimate##0 ~n := #in~n; 101716#L25 assume !(~n <= 0); 101500#L26 call #t~ret0 := fact(~n - 1);< 101544#$Ultimate##0 ~n := #in~n; 101575#L25 assume ~n <= 0;#res := 1; 101562#factFINAL assume true; 101553#factEXIT >#66#return; 101556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101630#factFINAL assume true; 101445#factEXIT >#76#return; 101457#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 101464#$Ultimate##0 ~n := #in~n; 101577#L25 assume !(~n <= 0); 101555#L26 call #t~ret0 := fact(~n - 1);< 101559#$Ultimate##0 ~n := #in~n; 101575#L25 assume ~n <= 0;#res := 1; 101562#factFINAL assume true; 101553#factEXIT >#66#return; 101556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101630#factFINAL assume true; 101445#factEXIT >#78#return; 101443#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 101441#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 101438#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 101437#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 101435#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 100549#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 100618#$Ultimate##0 ~n := #in~n; 101465#L25 assume !(~n <= 0); 100595#L26 call #t~ret0 := fact(~n - 1);< 101420#$Ultimate##0 ~n := #in~n; 101394#L25 assume !(~n <= 0); 100537#L26 call #t~ret0 := fact(~n - 1);< 101393#$Ultimate##0 ~n := #in~n; 101396#L25 assume ~n <= 0;#res := 1; 101432#factFINAL assume true; 100536#factEXIT >#66#return; 100538#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101424#factFINAL assume true; 101411#factEXIT >#66#return; 101412#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101434#factFINAL assume true; 101403#factEXIT >#74#return; 100553#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 100618#$Ultimate##0 ~n := #in~n; 101465#L25 assume !(~n <= 0); 100595#L26 call #t~ret0 := fact(~n - 1);< 101420#$Ultimate##0 ~n := #in~n; 101431#L25 assume ~n <= 0;#res := 1; 101429#factFINAL assume true; 101418#factEXIT >#66#return; 101416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101414#factFINAL assume true; 101401#factEXIT >#76#return; 100554#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 100618#$Ultimate##0 ~n := #in~n; 101465#L25 assume !(~n <= 0); 100595#L26 call #t~ret0 := fact(~n - 1);< 101420#$Ultimate##0 ~n := #in~n; 101394#L25 assume !(~n <= 0); 100537#L26 call #t~ret0 := fact(~n - 1);< 101393#$Ultimate##0 ~n := #in~n; 101396#L25 assume ~n <= 0;#res := 1; 101432#factFINAL assume true; 100536#factEXIT >#66#return; 100538#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101424#factFINAL assume true; 101411#factEXIT >#66#return; 101412#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101434#factFINAL assume true; 101403#factEXIT >#78#return; 100626#L30-8 [2023-02-18 08:56:12,850 INFO L750 eck$LassoCheckResult]: Loop: 100626#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 100585#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 100586#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 100621#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 100581#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 100582#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 100627#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 100588#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 100544#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 100545#$Ultimate##0 ~n := #in~n; 101591#L25 assume !(~n <= 0); 101506#L26 call #t~ret0 := fact(~n - 1);< 101544#$Ultimate##0 ~n := #in~n; 101547#L25 assume !(~n <= 0); 101505#L26 call #t~ret0 := fact(~n - 1);< 101539#$Ultimate##0 ~n := #in~n; 101547#L25 assume !(~n <= 0); 101505#L26 call #t~ret0 := fact(~n - 1);< 101539#$Ultimate##0 ~n := #in~n; 101546#L25 assume ~n <= 0;#res := 1; 101545#factFINAL assume true; 101537#factEXIT >#66#return; 101534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101532#factFINAL assume true; 101520#factEXIT >#66#return; 101513#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101800#factFINAL assume true; 101499#factEXIT >#66#return; 101515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101585#factFINAL assume true; 101584#factEXIT >#68#return; 101571#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 101572#$Ultimate##0 ~n := #in~n; 101578#L25 assume ~n <= 0;#res := 1; 101574#factFINAL assume true; 101570#factEXIT >#70#return; 101568#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 101569#$Ultimate##0 ~n := #in~n; 101581#L25 assume !(~n <= 0); 101507#L26 call #t~ret0 := fact(~n - 1);< 101580#$Ultimate##0 ~n := #in~n; 101715#L25 assume !(~n <= 0); 101502#L26 call #t~ret0 := fact(~n - 1);< 101518#$Ultimate##0 ~n := #in~n; 101547#L25 assume !(~n <= 0); 101505#L26 call #t~ret0 := fact(~n - 1);< 101539#$Ultimate##0 ~n := #in~n; 101546#L25 assume ~n <= 0;#res := 1; 101545#factFINAL assume true; 101537#factEXIT >#66#return; 101534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101532#factFINAL assume true; 101520#factEXIT >#66#return; 101513#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101800#factFINAL assume true; 101499#factEXIT >#66#return; 101516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101576#factFINAL assume true; 101567#factEXIT >#72#return; 101566#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 101564#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 101563#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 101561#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 101560#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 101528#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 101531#$Ultimate##0 ~n := #in~n; 101549#L25 assume !(~n <= 0); 101508#L26 call #t~ret0 := fact(~n - 1);< 101544#$Ultimate##0 ~n := #in~n; 101547#L25 assume !(~n <= 0); 101505#L26 call #t~ret0 := fact(~n - 1);< 101539#$Ultimate##0 ~n := #in~n; 101547#L25 assume !(~n <= 0); 101505#L26 call #t~ret0 := fact(~n - 1);< 101539#$Ultimate##0 ~n := #in~n; 101546#L25 assume ~n <= 0;#res := 1; 101545#factFINAL assume true; 101537#factEXIT >#66#return; 101534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101532#factFINAL assume true; 101520#factEXIT >#66#return; 101513#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101800#factFINAL assume true; 101499#factEXIT >#66#return; 101517#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101533#factFINAL assume true; 101527#factEXIT >#68#return; 101482#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 101494#$Ultimate##0 ~n := #in~n; 101792#L25 assume !(~n <= 0); 101510#L26 call #t~ret0 := fact(~n - 1);< 101544#$Ultimate##0 ~n := #in~n; 101575#L25 assume ~n <= 0;#res := 1; 101562#factFINAL assume true; 101553#factEXIT >#66#return; 101552#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101551#factFINAL assume true; 101476#factEXIT >#70#return; 101478#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 101494#$Ultimate##0 ~n := #in~n; 101792#L25 assume !(~n <= 0); 101510#L26 call #t~ret0 := fact(~n - 1);< 101544#$Ultimate##0 ~n := #in~n; 101547#L25 assume !(~n <= 0); 101505#L26 call #t~ret0 := fact(~n - 1);< 101539#$Ultimate##0 ~n := #in~n; 101547#L25 assume !(~n <= 0); 101505#L26 call #t~ret0 := fact(~n - 1);< 101539#$Ultimate##0 ~n := #in~n; 101546#L25 assume ~n <= 0;#res := 1; 101545#factFINAL assume true; 101537#factEXIT >#66#return; 101534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101532#factFINAL assume true; 101520#factEXIT >#66#return; 101513#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101800#factFINAL assume true; 101499#factEXIT >#66#return; 101497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101493#factFINAL assume true; 101491#factEXIT >#72#return; 101486#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 101550#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 101548#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 101543#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 101536#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 101530#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 101531#$Ultimate##0 ~n := #in~n; 101549#L25 assume !(~n <= 0); 101508#L26 call #t~ret0 := fact(~n - 1);< 101544#$Ultimate##0 ~n := #in~n; 101547#L25 assume !(~n <= 0); 101505#L26 call #t~ret0 := fact(~n - 1);< 101539#$Ultimate##0 ~n := #in~n; 101547#L25 assume !(~n <= 0); 101505#L26 call #t~ret0 := fact(~n - 1);< 101539#$Ultimate##0 ~n := #in~n; 101546#L25 assume ~n <= 0;#res := 1; 101545#factFINAL assume true; 101537#factEXIT >#66#return; 101534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101532#factFINAL assume true; 101520#factEXIT >#66#return; 101513#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101800#factFINAL assume true; 101499#factEXIT >#66#return; 101517#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101533#factFINAL assume true; 101527#factEXIT >#68#return; 101484#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 101494#$Ultimate##0 ~n := #in~n; 101792#L25 assume !(~n <= 0); 101510#L26 call #t~ret0 := fact(~n - 1);< 101544#$Ultimate##0 ~n := #in~n; 101547#L25 assume !(~n <= 0); 101505#L26 call #t~ret0 := fact(~n - 1);< 101539#$Ultimate##0 ~n := #in~n; 101546#L25 assume ~n <= 0;#res := 1; 101545#factFINAL assume true; 101537#factEXIT >#66#return; 101534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101532#factFINAL assume true; 101520#factEXIT >#66#return; 101519#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101498#factFINAL assume true; 101496#factEXIT >#70#return; 101485#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 101494#$Ultimate##0 ~n := #in~n; 101792#L25 assume !(~n <= 0); 101510#L26 call #t~ret0 := fact(~n - 1);< 101544#$Ultimate##0 ~n := #in~n; 101547#L25 assume !(~n <= 0); 101505#L26 call #t~ret0 := fact(~n - 1);< 101539#$Ultimate##0 ~n := #in~n; 101547#L25 assume !(~n <= 0); 101505#L26 call #t~ret0 := fact(~n - 1);< 101539#$Ultimate##0 ~n := #in~n; 101546#L25 assume ~n <= 0;#res := 1; 101545#factFINAL assume true; 101537#factEXIT >#66#return; 101534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101532#factFINAL assume true; 101520#factEXIT >#66#return; 101513#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101800#factFINAL assume true; 101499#factEXIT >#66#return; 101497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101493#factFINAL assume true; 101491#factEXIT >#72#return; 100579#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 100580#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 101635#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 101595#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 101593#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 101529#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 101531#$Ultimate##0 ~n := #in~n; 101549#L25 assume !(~n <= 0); 101508#L26 call #t~ret0 := fact(~n - 1);< 101544#$Ultimate##0 ~n := #in~n; 101547#L25 assume !(~n <= 0); 101505#L26 call #t~ret0 := fact(~n - 1);< 101539#$Ultimate##0 ~n := #in~n; 101547#L25 assume !(~n <= 0); 101505#L26 call #t~ret0 := fact(~n - 1);< 101539#$Ultimate##0 ~n := #in~n; 101546#L25 assume ~n <= 0;#res := 1; 101545#factFINAL assume true; 101537#factEXIT >#66#return; 101534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101532#factFINAL assume true; 101520#factEXIT >#66#return; 101513#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101800#factFINAL assume true; 101499#factEXIT >#66#return; 101517#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101533#factFINAL assume true; 101527#factEXIT >#68#return; 101479#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 101494#$Ultimate##0 ~n := #in~n; 101792#L25 assume !(~n <= 0); 101510#L26 call #t~ret0 := fact(~n - 1);< 101544#$Ultimate##0 ~n := #in~n; 101547#L25 assume !(~n <= 0); 101505#L26 call #t~ret0 := fact(~n - 1);< 101539#$Ultimate##0 ~n := #in~n; 101547#L25 assume !(~n <= 0); 101505#L26 call #t~ret0 := fact(~n - 1);< 101539#$Ultimate##0 ~n := #in~n; 101546#L25 assume ~n <= 0;#res := 1; 101545#factFINAL assume true; 101537#factEXIT >#66#return; 101534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101532#factFINAL assume true; 101520#factEXIT >#66#return; 101513#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101800#factFINAL assume true; 101499#factEXIT >#66#return; 101497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101493#factFINAL assume true; 101491#factEXIT >#70#return; 101480#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 101494#$Ultimate##0 ~n := #in~n; 101792#L25 assume ~n <= 0;#res := 1; 101791#factFINAL assume true; 101790#factEXIT >#72#return; 101788#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 101490#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 101430#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 101428#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 101426#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 101398#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 101406#$Ultimate##0 ~n := #in~n; 101423#L25 assume !(~n <= 0); 100599#L26 call #t~ret0 := fact(~n - 1);< 101395#$Ultimate##0 ~n := #in~n; 101394#L25 assume !(~n <= 0); 100537#L26 call #t~ret0 := fact(~n - 1);< 101393#$Ultimate##0 ~n := #in~n; 101394#L25 assume !(~n <= 0); 100537#L26 call #t~ret0 := fact(~n - 1);< 101393#$Ultimate##0 ~n := #in~n; 101396#L25 assume ~n <= 0;#res := 1; 101432#factFINAL assume true; 100536#factEXIT >#66#return; 100538#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101424#factFINAL assume true; 101411#factEXIT >#66#return; 100593#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 100600#factFINAL assume true; 101392#factEXIT >#66#return; 101421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101405#factFINAL assume true; 101397#factEXIT >#74#return; 100629#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 101407#$Ultimate##0 ~n := #in~n; 101433#L25 assume !(~n <= 0); 100598#L26 call #t~ret0 := fact(~n - 1);< 101395#$Ultimate##0 ~n := #in~n; 101394#L25 assume !(~n <= 0); 100537#L26 call #t~ret0 := fact(~n - 1);< 101393#$Ultimate##0 ~n := #in~n; 101394#L25 assume !(~n <= 0); 100537#L26 call #t~ret0 := fact(~n - 1);< 101393#$Ultimate##0 ~n := #in~n; 101396#L25 assume ~n <= 0;#res := 1; 101432#factFINAL assume true; 100536#factEXIT >#66#return; 100538#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101424#factFINAL assume true; 101411#factEXIT >#66#return; 100593#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 100600#factFINAL assume true; 101392#factEXIT >#66#return; 101421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101405#factFINAL assume true; 101397#factEXIT >#76#return; 100571#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 100610#$Ultimate##0 ~n := #in~n; 100611#L25 assume !(~n <= 0); 100570#L26 call #t~ret0 := fact(~n - 1);< 100572#$Ultimate##0 ~n := #in~n; 101431#L25 assume ~n <= 0;#res := 1; 101429#factFINAL assume true; 101418#factEXIT >#66#return; 101417#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 101415#factFINAL assume true; 101404#factEXIT >#78#return; 100626#L30-8 [2023-02-18 08:56:12,851 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:12,851 INFO L85 PathProgramCache]: Analyzing trace with hash -1163141286, now seen corresponding path program 24 times [2023-02-18 08:56:12,851 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:12,851 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1930661096] [2023-02-18 08:56:12,851 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:12,852 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:12,859 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:12,859 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1918691402] [2023-02-18 08:56:12,859 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:56:12,859 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:12,860 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:12,862 INFO L229 MonitoredProcess]: Starting monitored process 147 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:12,863 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (147)] Waiting until timeout for monitored process [2023-02-18 08:56:13,009 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 13 check-sat command(s) [2023-02-18 08:56:13,009 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:13,011 INFO L263 TraceCheckSpWp]: Trace formula consists of 554 conjuncts, 17 conjunts are in the unsatisfiable core [2023-02-18 08:56:13,014 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:13,067 INFO L134 CoverageAnalysis]: Checked inductivity of 4973 backedges. 1725 proven. 209 refuted. 0 times theorem prover too weak. 3039 trivial. 0 not checked. [2023-02-18 08:56:13,067 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:13,187 INFO L134 CoverageAnalysis]: Checked inductivity of 4973 backedges. 297 proven. 305 refuted. 0 times theorem prover too weak. 4371 trivial. 0 not checked. [2023-02-18 08:56:13,187 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:13,187 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1930661096] [2023-02-18 08:56:13,187 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:13,187 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1918691402] [2023-02-18 08:56:13,187 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1918691402] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:13,187 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:13,188 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 15] total 17 [2023-02-18 08:56:13,188 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [481253935] [2023-02-18 08:56:13,188 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:13,188 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:56:13,189 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:13,189 INFO L85 PathProgramCache]: Analyzing trace with hash -62814459, now seen corresponding path program 25 times [2023-02-18 08:56:13,189 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:13,189 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1285595817] [2023-02-18 08:56:13,189 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:13,189 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:13,194 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:13,194 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [123014299] [2023-02-18 08:56:13,194 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:56:13,195 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:13,195 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:13,198 INFO L229 MonitoredProcess]: Starting monitored process 148 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:13,198 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (148)] Waiting until timeout for monitored process [2023-02-18 08:56:13,320 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:56:13,322 INFO L263 TraceCheckSpWp]: Trace formula consists of 671 conjuncts, 24 conjunts are in the unsatisfiable core [2023-02-18 08:56:13,324 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:13,383 INFO L134 CoverageAnalysis]: Checked inductivity of 5891 backedges. 3026 proven. 263 refuted. 0 times theorem prover too weak. 2602 trivial. 0 not checked. [2023-02-18 08:56:13,384 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:13,563 INFO L134 CoverageAnalysis]: Checked inductivity of 5891 backedges. 198 proven. 1160 refuted. 0 times theorem prover too weak. 4533 trivial. 0 not checked. [2023-02-18 08:56:13,564 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:13,564 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1285595817] [2023-02-18 08:56:13,564 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:13,564 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [123014299] [2023-02-18 08:56:13,564 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [123014299] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:13,564 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:13,564 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 21] total 27 [2023-02-18 08:56:13,564 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [238233848] [2023-02-18 08:56:13,564 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:13,564 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:13,564 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:13,572 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 17 interpolants. [2023-02-18 08:56:13,572 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=48, Invalid=224, Unknown=0, NotChecked=0, Total=272 [2023-02-18 08:56:13,572 INFO L87 Difference]: Start difference. First operand 1463 states and 2009 transitions. cyclomatic complexity: 573 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, (29), 2 states have call predecessors, (29), 5 states have return successors, (30), 9 states have call predecessors, (30), 9 states have call successors, (30) [2023-02-18 08:56:13,896 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:13,896 INFO L93 Difference]: Finished difference Result 2237 states and 3289 transitions. [2023-02-18 08:56:13,896 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2237 states and 3289 transitions. [2023-02-18 08:56:13,905 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 114 [2023-02-18 08:56:13,919 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2237 states to 2003 states and 2946 transitions. [2023-02-18 08:56:13,919 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 126 [2023-02-18 08:56:13,920 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 136 [2023-02-18 08:56:13,920 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2003 states and 2946 transitions. [2023-02-18 08:56:13,920 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:13,920 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2003 states and 2946 transitions. [2023-02-18 08:56:13,920 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2003 states and 2946 transitions. [2023-02-18 08:56:13,939 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2003 to 1650. [2023-02-18 08:56:13,940 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 1650 states, 1065 states have (on average 1.0572769953051644) internal successors, (1126), 1062 states have internal predecessors, (1126), 431 states have call successors, (443), 163 states have call predecessors, (443), 154 states have return successors, (718), 424 states have call predecessors, (718), 431 states have call successors, (718) [2023-02-18 08:56:13,944 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1650 states to 1650 states and 2287 transitions. [2023-02-18 08:56:13,944 INFO L240 hiAutomatonCegarLoop]: Abstraction has 1650 states and 2287 transitions. [2023-02-18 08:56:13,945 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2023-02-18 08:56:13,945 INFO L428 stractBuchiCegarLoop]: Abstraction has 1650 states and 2287 transitions. [2023-02-18 08:56:13,945 INFO L335 stractBuchiCegarLoop]: ======== Iteration 38 ============ [2023-02-18 08:56:13,945 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 1650 states and 2287 transitions. [2023-02-18 08:56:13,948 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 97 [2023-02-18 08:56:13,948 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:13,948 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:13,949 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [49, 49, 25, 25, 25, 25, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:13,950 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [56, 56, 38, 38, 38, 38, 18, 6, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1] [2023-02-18 08:56:13,950 INFO L748 eck$LassoCheckResult]: Stem: 108030#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 107978#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; 107979#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 107999#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; 107987#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 107988#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 109389#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 107976#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 107977#$Ultimate##0 ~n := #in~n; 109394#L25 assume ~n <= 0;#res := 1; 109393#factFINAL assume true; 109388#factEXIT >#68#return; 108019#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 108020#$Ultimate##0 ~n := #in~n; 109397#L25 assume ~n <= 0;#res := 1; 109395#factFINAL assume true; 109390#factEXIT >#70#return; 107954#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 107955#$Ultimate##0 ~n := #in~n; 109444#L25 assume ~n <= 0;#res := 1; 109443#factFINAL assume true; 109442#factEXIT >#72#return; 109441#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 108008#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 108009#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 109509#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 109504#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 109492#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 109501#$Ultimate##0 ~n := #in~n; 109520#L25 assume !(~n <= 0); 109507#L26 call #t~ret0 := fact(~n - 1);< 109508#$Ultimate##0 ~n := #in~n; 109519#L25 assume ~n <= 0;#res := 1; 109517#factFINAL assume true; 109506#factEXIT >#66#return; 109503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109500#factFINAL assume true; 109491#factEXIT >#74#return; 109493#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 109536#$Ultimate##0 ~n := #in~n; 109544#L25 assume ~n <= 0;#res := 1; 109540#factFINAL assume true; 109534#factEXIT >#76#return; 108032#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 108033#$Ultimate##0 ~n := #in~n; 109545#L25 assume !(~n <= 0); 109542#L26 call #t~ret0 := fact(~n - 1);< 109543#$Ultimate##0 ~n := #in~n; 109548#L25 assume ~n <= 0;#res := 1; 109546#factFINAL assume true; 109541#factEXIT >#66#return; 109539#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109538#factFINAL assume true; 109537#factEXIT >#78#return; 107982#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 107983#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 108001#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 108018#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 108004#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 108005#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 109494#$Ultimate##0 ~n := #in~n; 109518#L25 assume !(~n <= 0); 109513#L26 call #t~ret0 := fact(~n - 1);< 109516#$Ultimate##0 ~n := #in~n; 109533#L25 assume !(~n <= 0); 109512#L26 call #t~ret0 := fact(~n - 1);< 109524#$Ultimate##0 ~n := #in~n; 109532#L25 assume ~n <= 0;#res := 1; 109531#factFINAL assume true; 109530#factEXIT >#66#return; 109529#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109528#factFINAL assume true; 109527#factEXIT >#66#return; 109523#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109596#factFINAL assume true; 109595#factEXIT >#74#return; 109446#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 109571#$Ultimate##0 ~n := #in~n; 109575#L25 assume ~n <= 0;#res := 1; 109574#factFINAL assume true; 109570#factEXIT >#76#return; 109498#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 109499#$Ultimate##0 ~n := #in~n; 109573#L25 assume !(~n <= 0); 109511#L26 call #t~ret0 := fact(~n - 1);< 109516#$Ultimate##0 ~n := #in~n; 109533#L25 assume !(~n <= 0); 109512#L26 call #t~ret0 := fact(~n - 1);< 109524#$Ultimate##0 ~n := #in~n; 109532#L25 assume ~n <= 0;#res := 1; 109531#factFINAL assume true; 109530#factEXIT >#66#return; 109529#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109528#factFINAL assume true; 109527#factEXIT >#66#return; 109514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109597#factFINAL assume true; 109497#factEXIT >#78#return; 109490#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 109489#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 109478#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 109472#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 109470#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 109463#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 109465#$Ultimate##0 ~n := #in~n; 109477#L25 assume !(~n <= 0); 109474#L26 call #t~ret0 := fact(~n - 1);< 109476#$Ultimate##0 ~n := #in~n; 109482#L25 assume !(~n <= 0); 109475#L26 call #t~ret0 := fact(~n - 1);< 109481#$Ultimate##0 ~n := #in~n; 109488#L25 assume ~n <= 0;#res := 1; 109487#factFINAL assume true; 109485#factEXIT >#66#return; 109486#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109479#factFINAL assume true; 109480#factEXIT >#66#return; 109471#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109469#factFINAL assume true; 109462#factEXIT >#74#return; 109453#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 109454#$Ultimate##0 ~n := #in~n; 109458#L25 assume ~n <= 0;#res := 1; 109459#factFINAL assume true; 109452#factEXIT >#76#return; 108629#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 108630#$Ultimate##0 ~n := #in~n; 109429#L25 assume !(~n <= 0); 109421#L26 call #t~ret0 := fact(~n - 1);< 109424#$Ultimate##0 ~n := #in~n; 109428#L25 assume !(~n <= 0); 109420#L26 call #t~ret0 := fact(~n - 1);< 109427#$Ultimate##0 ~n := #in~n; 109428#L25 assume !(~n <= 0); 109420#L26 call #t~ret0 := fact(~n - 1);< 109427#$Ultimate##0 ~n := #in~n; 109437#L25 assume ~n <= 0;#res := 1; 109436#factFINAL assume true; 109435#factEXIT >#66#return; 109434#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109433#factFINAL assume true; 109431#factEXIT >#66#return; 109432#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109468#factFINAL assume true; 109418#factEXIT >#66#return; 109415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109416#factFINAL assume true; 108628#factEXIT >#78#return; 108627#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 108626#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 108465#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 108463#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 108458#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 108455#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 108016#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 108017#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 108415#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 108420#$Ultimate##0 ~n := #in~n; 108464#L25 assume !(~n <= 0); 108249#L26 call #t~ret0 := fact(~n - 1);< 108258#$Ultimate##0 ~n := #in~n; 108457#L25 assume ~n <= 0;#res := 1; 108435#factFINAL assume true; 108426#factEXIT >#66#return; 108424#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108422#factFINAL assume true; 108414#factEXIT >#68#return; 108393#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 108396#$Ultimate##0 ~n := #in~n; 108409#L25 assume ~n <= 0;#res := 1; 108404#factFINAL assume true; 108389#factEXIT >#70#return; 108182#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 108388#$Ultimate##0 ~n := #in~n; 109257#L25 assume !(~n <= 0); 108148#L26 call #t~ret0 := fact(~n - 1);< 108185#$Ultimate##0 ~n := #in~n; 108178#L25 assume ~n <= 0;#res := 1; 108174#factFINAL assume true; 108145#factEXIT >#66#return; 108151#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108403#factFINAL assume true; 108386#factEXIT >#72#return; 108387#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 108408#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 108402#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 108385#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 108381#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 108080#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 108085#$Ultimate##0 ~n := #in~n; 108352#L25 assume !(~n <= 0); 108149#L26 call #t~ret0 := fact(~n - 1);< 108185#$Ultimate##0 ~n := #in~n; 108178#L25 assume ~n <= 0;#res := 1; 108174#factFINAL assume true; 108145#factEXIT >#66#return; 108152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108380#factFINAL assume true; 108372#factEXIT >#68#return; 108202#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 108064#$Ultimate##0 ~n := #in~n; 108213#L25 assume !(~n <= 0); 108114#L26 call #t~ret0 := fact(~n - 1);< 108123#$Ultimate##0 ~n := #in~n; 108178#L25 assume ~n <= 0;#res := 1; 108174#factFINAL assume true; 108145#factEXIT >#66#return; 108150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108321#factFINAL assume true; 108272#factEXIT >#70#return; 108035#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 108044#$Ultimate##0 ~n := #in~n; 108066#L25 assume ~n <= 0;#res := 1; 108067#factFINAL assume true; 108034#factEXIT >#72#return; 108041#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 108371#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 108369#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 108367#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 108365#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 108205#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 108064#$Ultimate##0 ~n := #in~n; 108213#L25 assume !(~n <= 0); 108114#L26 call #t~ret0 := fact(~n - 1);< 108123#$Ultimate##0 ~n := #in~n; 108197#L25 assume !(~n <= 0); 108115#L26 call #t~ret0 := fact(~n - 1);< 108196#$Ultimate##0 ~n := #in~n; 108351#L25 assume ~n <= 0;#res := 1; 108349#factFINAL assume true; 108193#factEXIT >#66#return; 108188#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108181#factFINAL assume true; 108162#factEXIT >#66#return; 108164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108231#factFINAL assume true; 108223#factEXIT >#74#return; 108204#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 108064#$Ultimate##0 ~n := #in~n; 108213#L25 assume !(~n <= 0); 108114#L26 call #t~ret0 := fact(~n - 1);< 108123#$Ultimate##0 ~n := #in~n; 108178#L25 assume ~n <= 0;#res := 1; 108174#factFINAL assume true; 108145#factEXIT >#66#return; 108150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108321#factFINAL assume true; 108272#factEXIT >#76#return; 108175#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 108322#$Ultimate##0 ~n := #in~n; 108191#L25 assume !(~n <= 0); 108146#L26 call #t~ret0 := fact(~n - 1);< 108153#$Ultimate##0 ~n := #in~n; 108178#L25 assume ~n <= 0;#res := 1; 108174#factFINAL assume true; 108145#factEXIT >#66#return; 108150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108321#factFINAL assume true; 108272#factEXIT >#78#return; 108228#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 109400#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 108553#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 108550#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 108548#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 108549#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 108025#$Ultimate##0 ~n := #in~n; 109266#L25 assume !(~n <= 0); 107959#L26 call #t~ret0 := fact(~n - 1);< 109260#$Ultimate##0 ~n := #in~n; 109072#L25 assume !(~n <= 0); 109054#L26 call #t~ret0 := fact(~n - 1);< 109071#$Ultimate##0 ~n := #in~n; 109073#L25 assume ~n <= 0;#res := 1; 109239#factFINAL assume true; 109238#factEXIT >#66#return; 109237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109236#factFINAL assume true; 109234#factEXIT >#66#return; 109235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109206#factFINAL assume true; 109207#factEXIT >#74#return; 108024#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 108025#$Ultimate##0 ~n := #in~n; 109266#L25 assume !(~n <= 0); 107959#L26 call #t~ret0 := fact(~n - 1);< 109260#$Ultimate##0 ~n := #in~n; 109261#L25 assume ~n <= 0;#res := 1; 109259#factFINAL assume true; 107956#factEXIT >#66#return; 107962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109385#factFINAL assume true; 108560#factEXIT >#76#return; 108562#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 108025#$Ultimate##0 ~n := #in~n; 109266#L25 assume !(~n <= 0); 107959#L26 call #t~ret0 := fact(~n - 1);< 109260#$Ultimate##0 ~n := #in~n; 109072#L25 assume !(~n <= 0); 109054#L26 call #t~ret0 := fact(~n - 1);< 109071#$Ultimate##0 ~n := #in~n; 109072#L25 assume !(~n <= 0); 109054#L26 call #t~ret0 := fact(~n - 1);< 109071#$Ultimate##0 ~n := #in~n; 109073#L25 assume ~n <= 0;#res := 1; 109239#factFINAL assume true; 109238#factEXIT >#66#return; 109237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109236#factFINAL assume true; 109234#factEXIT >#66#return; 109057#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109070#factFINAL assume true; 109051#factEXIT >#66#return; 109056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109024#factFINAL assume true; 109025#factEXIT >#78#return; 107980#L30-8 [2023-02-18 08:56:13,950 INFO L750 eck$LassoCheckResult]: Loop: 107980#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 107981#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 108000#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 108338#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 108337#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 108335#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 108065#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 108045#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 107974#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 107975#$Ultimate##0 ~n := #in~n; 108209#L25 assume !(~n <= 0); 108112#L26 call #t~ret0 := fact(~n - 1);< 108123#$Ultimate##0 ~n := #in~n; 108197#L25 assume !(~n <= 0); 108115#L26 call #t~ret0 := fact(~n - 1);< 108196#$Ultimate##0 ~n := #in~n; 108197#L25 assume !(~n <= 0); 108115#L26 call #t~ret0 := fact(~n - 1);< 108196#$Ultimate##0 ~n := #in~n; 108351#L25 assume ~n <= 0;#res := 1; 108349#factFINAL assume true; 108193#factEXIT >#66#return; 108188#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108181#factFINAL assume true; 108162#factEXIT >#66#return; 108121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108903#factFINAL assume true; 108104#factEXIT >#66#return; 108122#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108342#factFINAL assume true; 108325#factEXIT >#68#return; 108292#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 108293#$Ultimate##0 ~n := #in~n; 108345#L25 assume ~n <= 0;#res := 1; 108323#factFINAL assume true; 108290#factEXIT >#70#return; 108275#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 108278#$Ultimate##0 ~n := #in~n; 108346#L25 assume !(~n <= 0); 108107#L26 call #t~ret0 := fact(~n - 1);< 108324#$Ultimate##0 ~n := #in~n; 109258#L25 assume !(~n <= 0); 108111#L26 call #t~ret0 := fact(~n - 1);< 108167#$Ultimate##0 ~n := #in~n; 108197#L25 assume !(~n <= 0); 108115#L26 call #t~ret0 := fact(~n - 1);< 108196#$Ultimate##0 ~n := #in~n; 108351#L25 assume ~n <= 0;#res := 1; 108349#factFINAL assume true; 108193#factEXIT >#66#return; 108188#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108181#factFINAL assume true; 108162#factEXIT >#66#return; 108121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108903#factFINAL assume true; 108104#factEXIT >#66#return; 108118#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108285#factFINAL assume true; 108274#factEXIT >#72#return; 108277#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 108908#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 108907#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 108906#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 108905#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 108093#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 108099#$Ultimate##0 ~n := #in~n; 108125#L25 assume !(~n <= 0); 108113#L26 call #t~ret0 := fact(~n - 1);< 108123#$Ultimate##0 ~n := #in~n; 108197#L25 assume !(~n <= 0); 108115#L26 call #t~ret0 := fact(~n - 1);< 108196#$Ultimate##0 ~n := #in~n; 108197#L25 assume !(~n <= 0); 108115#L26 call #t~ret0 := fact(~n - 1);< 108196#$Ultimate##0 ~n := #in~n; 108351#L25 assume ~n <= 0;#res := 1; 108349#factFINAL assume true; 108193#factEXIT >#66#return; 108188#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108181#factFINAL assume true; 108162#factEXIT >#66#return; 108121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108903#factFINAL assume true; 108104#factEXIT >#66#return; 108102#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108100#factFINAL assume true; 108092#factEXIT >#68#return; 108054#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 108090#$Ultimate##0 ~n := #in~n; 108170#L25 assume !(~n <= 0); 108116#L26 call #t~ret0 := fact(~n - 1);< 108123#$Ultimate##0 ~n := #in~n; 108178#L25 assume ~n <= 0;#res := 1; 108174#factFINAL assume true; 108145#factEXIT >#66#return; 108144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108140#factFINAL assume true; 108128#factEXIT >#70#return; 108047#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 108090#$Ultimate##0 ~n := #in~n; 108170#L25 assume !(~n <= 0); 108116#L26 call #t~ret0 := fact(~n - 1);< 108123#$Ultimate##0 ~n := #in~n; 108178#L25 assume ~n <= 0;#res := 1; 108174#factFINAL assume true; 108145#factEXIT >#66#return; 108144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108140#factFINAL assume true; 108128#factEXIT >#72#return; 108133#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 108336#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 108334#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 108333#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 108332#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 108095#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 108099#$Ultimate##0 ~n := #in~n; 108125#L25 assume !(~n <= 0); 108113#L26 call #t~ret0 := fact(~n - 1);< 108123#$Ultimate##0 ~n := #in~n; 108197#L25 assume !(~n <= 0); 108115#L26 call #t~ret0 := fact(~n - 1);< 108196#$Ultimate##0 ~n := #in~n; 108197#L25 assume !(~n <= 0); 108115#L26 call #t~ret0 := fact(~n - 1);< 108196#$Ultimate##0 ~n := #in~n; 108351#L25 assume ~n <= 0;#res := 1; 108349#factFINAL assume true; 108193#factEXIT >#66#return; 108188#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108181#factFINAL assume true; 108162#factEXIT >#66#return; 108121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108903#factFINAL assume true; 108104#factEXIT >#66#return; 108102#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108100#factFINAL assume true; 108092#factEXIT >#68#return; 108048#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 108090#$Ultimate##0 ~n := #in~n; 108170#L25 assume !(~n <= 0); 108116#L26 call #t~ret0 := fact(~n - 1);< 108123#$Ultimate##0 ~n := #in~n; 108197#L25 assume !(~n <= 0); 108115#L26 call #t~ret0 := fact(~n - 1);< 108196#$Ultimate##0 ~n := #in~n; 108351#L25 assume ~n <= 0;#res := 1; 108349#factFINAL assume true; 108193#factEXIT >#66#return; 108188#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108181#factFINAL assume true; 108162#factEXIT >#66#return; 108160#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108156#factFINAL assume true; 108143#factEXIT >#70#return; 108051#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 108090#$Ultimate##0 ~n := #in~n; 108170#L25 assume !(~n <= 0); 108116#L26 call #t~ret0 := fact(~n - 1);< 108123#$Ultimate##0 ~n := #in~n; 108178#L25 assume ~n <= 0;#res := 1; 108174#factFINAL assume true; 108145#factEXIT >#66#return; 108144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108140#factFINAL assume true; 108128#factEXIT >#72#return; 108135#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 108350#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 108348#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 108192#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 108187#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 108098#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 108099#$Ultimate##0 ~n := #in~n; 108125#L25 assume !(~n <= 0); 108113#L26 call #t~ret0 := fact(~n - 1);< 108123#$Ultimate##0 ~n := #in~n; 108197#L25 assume !(~n <= 0); 108115#L26 call #t~ret0 := fact(~n - 1);< 108196#$Ultimate##0 ~n := #in~n; 108197#L25 assume !(~n <= 0); 108115#L26 call #t~ret0 := fact(~n - 1);< 108196#$Ultimate##0 ~n := #in~n; 108351#L25 assume ~n <= 0;#res := 1; 108349#factFINAL assume true; 108193#factEXIT >#66#return; 108188#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108181#factFINAL assume true; 108162#factEXIT >#66#return; 108121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108903#factFINAL assume true; 108104#factEXIT >#66#return; 108102#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108100#factFINAL assume true; 108092#factEXIT >#68#return; 108052#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 108090#$Ultimate##0 ~n := #in~n; 108170#L25 assume !(~n <= 0); 108116#L26 call #t~ret0 := fact(~n - 1);< 108123#$Ultimate##0 ~n := #in~n; 108197#L25 assume !(~n <= 0); 108115#L26 call #t~ret0 := fact(~n - 1);< 108196#$Ultimate##0 ~n := #in~n; 108197#L25 assume !(~n <= 0); 108115#L26 call #t~ret0 := fact(~n - 1);< 108196#$Ultimate##0 ~n := #in~n; 108351#L25 assume ~n <= 0;#res := 1; 108349#factFINAL assume true; 108193#factEXIT >#66#return; 108188#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108181#factFINAL assume true; 108162#factEXIT >#66#return; 108121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108903#factFINAL assume true; 108104#factEXIT >#66#return; 108117#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108904#factFINAL assume true; 108136#factEXIT >#70#return; 108058#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 108090#$Ultimate##0 ~n := #in~n; 108170#L25 assume ~n <= 0;#res := 1; 108046#factFINAL assume true; 108059#factEXIT >#72#return; 108172#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 108171#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 108168#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 108161#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 108158#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 108139#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 108157#$Ultimate##0 ~n := #in~n; 108360#L25 assume !(~n <= 0); 108105#L26 call #t~ret0 := fact(~n - 1);< 108167#$Ultimate##0 ~n := #in~n; 108197#L25 assume !(~n <= 0); 108115#L26 call #t~ret0 := fact(~n - 1);< 108196#$Ultimate##0 ~n := #in~n; 108197#L25 assume !(~n <= 0); 108115#L26 call #t~ret0 := fact(~n - 1);< 108196#$Ultimate##0 ~n := #in~n; 108351#L25 assume ~n <= 0;#res := 1; 108349#factFINAL assume true; 108193#factEXIT >#66#return; 108188#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108181#factFINAL assume true; 108162#factEXIT >#66#return; 108121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108903#factFINAL assume true; 108104#factEXIT >#66#return; 108117#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108904#factFINAL assume true; 108136#factEXIT >#74#return; 108137#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 108155#$Ultimate##0 ~n := #in~n; 108177#L25 assume !(~n <= 0); 108106#L26 call #t~ret0 := fact(~n - 1);< 108167#$Ultimate##0 ~n := #in~n; 108197#L25 assume !(~n <= 0); 108115#L26 call #t~ret0 := fact(~n - 1);< 108196#$Ultimate##0 ~n := #in~n; 108197#L25 assume !(~n <= 0); 108115#L26 call #t~ret0 := fact(~n - 1);< 108196#$Ultimate##0 ~n := #in~n; 108351#L25 assume ~n <= 0;#res := 1; 108349#factFINAL assume true; 108193#factEXIT >#66#return; 108188#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108181#factFINAL assume true; 108162#factEXIT >#66#return; 108121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108903#factFINAL assume true; 108104#factEXIT >#66#return; 108117#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108904#factFINAL assume true; 108136#factEXIT >#76#return; 108130#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 108142#$Ultimate##0 ~n := #in~n; 108180#L25 assume !(~n <= 0); 108147#L26 call #t~ret0 := fact(~n - 1);< 108153#$Ultimate##0 ~n := #in~n; 108178#L25 assume ~n <= 0;#res := 1; 108174#factFINAL assume true; 108145#factEXIT >#66#return; 108144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108140#factFINAL assume true; 108128#factEXIT >#78#return; 108132#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 109273#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 108557#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 108555#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 108546#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 108547#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 109384#$Ultimate##0 ~n := #in~n; 109285#L25 assume !(~n <= 0); 109052#L26 call #t~ret0 := fact(~n - 1);< 109058#$Ultimate##0 ~n := #in~n; 109072#L25 assume !(~n <= 0); 109054#L26 call #t~ret0 := fact(~n - 1);< 109071#$Ultimate##0 ~n := #in~n; 109072#L25 assume !(~n <= 0); 109054#L26 call #t~ret0 := fact(~n - 1);< 109071#$Ultimate##0 ~n := #in~n; 109073#L25 assume ~n <= 0;#res := 1; 109239#factFINAL assume true; 109238#factEXIT >#66#return; 109237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109236#factFINAL assume true; 109234#factEXIT >#66#return; 109057#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109070#factFINAL assume true; 109051#factEXIT >#66#return; 109043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109044#factFINAL assume true; 108922#factEXIT >#74#return; 107968#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 109358#$Ultimate##0 ~n := #in~n; 109264#L25 assume !(~n <= 0); 107958#L26 call #t~ret0 := fact(~n - 1);< 109260#$Ultimate##0 ~n := #in~n; 109072#L25 assume !(~n <= 0); 109054#L26 call #t~ret0 := fact(~n - 1);< 109071#$Ultimate##0 ~n := #in~n; 109073#L25 assume ~n <= 0;#res := 1; 109239#factFINAL assume true; 109238#factEXIT >#66#return; 109237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109236#factFINAL assume true; 109234#factEXIT >#66#return; 109230#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109231#factFINAL assume true; 109200#factEXIT >#76#return; 107967#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 109358#$Ultimate##0 ~n := #in~n; 109264#L25 assume !(~n <= 0); 107958#L26 call #t~ret0 := fact(~n - 1);< 109260#$Ultimate##0 ~n := #in~n; 109072#L25 assume !(~n <= 0); 109054#L26 call #t~ret0 := fact(~n - 1);< 109071#$Ultimate##0 ~n := #in~n; 109072#L25 assume !(~n <= 0); 109054#L26 call #t~ret0 := fact(~n - 1);< 109071#$Ultimate##0 ~n := #in~n; 109073#L25 assume ~n <= 0;#res := 1; 109239#factFINAL assume true; 109238#factEXIT >#66#return; 109237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109236#factFINAL assume true; 109234#factEXIT >#66#return; 109057#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109070#factFINAL assume true; 109051#factEXIT >#66#return; 109043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 109044#factFINAL assume true; 108922#factEXIT >#78#return; 107980#L30-8 [2023-02-18 08:56:13,951 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:13,951 INFO L85 PathProgramCache]: Analyzing trace with hash -1486855782, now seen corresponding path program 25 times [2023-02-18 08:56:13,951 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:13,951 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [531526441] [2023-02-18 08:56:13,951 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:13,951 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:13,958 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:13,958 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [712304090] [2023-02-18 08:56:13,958 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:56:13,958 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:13,958 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:13,961 INFO L229 MonitoredProcess]: Starting monitored process 149 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:13,962 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (149)] Waiting until timeout for monitored process [2023-02-18 08:56:14,105 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:56:14,108 INFO L263 TraceCheckSpWp]: Trace formula consists of 724 conjuncts, 13 conjunts are in the unsatisfiable core [2023-02-18 08:56:14,111 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:14,153 INFO L134 CoverageAnalysis]: Checked inductivity of 5447 backedges. 2768 proven. 9 refuted. 0 times theorem prover too weak. 2670 trivial. 0 not checked. [2023-02-18 08:56:14,154 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:14,202 INFO L134 CoverageAnalysis]: Checked inductivity of 5447 backedges. 264 proven. 360 refuted. 0 times theorem prover too weak. 4823 trivial. 0 not checked. [2023-02-18 08:56:14,202 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:14,202 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [531526441] [2023-02-18 08:56:14,202 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:14,203 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [712304090] [2023-02-18 08:56:14,203 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [712304090] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:14,203 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:14,203 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 13] total 14 [2023-02-18 08:56:14,203 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1474685198] [2023-02-18 08:56:14,203 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:14,204 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:56:14,204 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:14,204 INFO L85 PathProgramCache]: Analyzing trace with hash -777752504, now seen corresponding path program 26 times [2023-02-18 08:56:14,204 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:14,204 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [366362034] [2023-02-18 08:56:14,204 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:14,204 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:14,210 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:14,210 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1990082315] [2023-02-18 08:56:14,210 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:56:14,210 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:14,210 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:14,213 INFO L229 MonitoredProcess]: Starting monitored process 150 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:56:14,214 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (150)] Waiting until timeout for monitored process [2023-02-18 08:56:14,366 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:56:14,366 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:14,369 INFO L263 TraceCheckSpWp]: Trace formula consists of 770 conjuncts, 20 conjunts are in the unsatisfiable core [2023-02-18 08:56:14,371 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:14,421 INFO L134 CoverageAnalysis]: Checked inductivity of 7652 backedges. 3398 proven. 177 refuted. 0 times theorem prover too weak. 4077 trivial. 0 not checked. [2023-02-18 08:56:14,421 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:14,560 INFO L134 CoverageAnalysis]: Checked inductivity of 7652 backedges. 152 proven. 983 refuted. 0 times theorem prover too weak. 6517 trivial. 0 not checked. [2023-02-18 08:56:14,561 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:14,561 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [366362034] [2023-02-18 08:56:14,561 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:14,561 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1990082315] [2023-02-18 08:56:14,561 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1990082315] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:14,561 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:14,561 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 17] total 23 [2023-02-18 08:56:14,561 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1314458343] [2023-02-18 08:56:14,561 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:14,562 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:14,563 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:14,563 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2023-02-18 08:56:14,563 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=139, Unknown=0, NotChecked=0, Total=182 [2023-02-18 08:56:14,563 INFO L87 Difference]: Start difference. First operand 1650 states and 2287 transitions. cyclomatic complexity: 666 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-18 08:56:14,834 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:14,834 INFO L93 Difference]: Finished difference Result 1769 states and 2450 transitions. [2023-02-18 08:56:14,834 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1769 states and 2450 transitions. [2023-02-18 08:56:14,841 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 107 [2023-02-18 08:56:14,848 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1769 states to 1763 states and 2444 transitions. [2023-02-18 08:56:14,848 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 111 [2023-02-18 08:56:14,848 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 111 [2023-02-18 08:56:14,848 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1763 states and 2444 transitions. [2023-02-18 08:56:14,848 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:14,848 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1763 states and 2444 transitions. [2023-02-18 08:56:14,849 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1763 states and 2444 transitions. [2023-02-18 08:56:14,866 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1763 to 1624. [2023-02-18 08:56:14,867 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 1624 states, 1057 states have (on average 1.0577105014191106) internal successors, (1118), 1055 states have internal predecessors, (1118), 415 states have call successors, (425), 161 states have call predecessors, (425), 152 states have return successors, (676), 407 states have call predecessors, (676), 415 states have call successors, (676) [2023-02-18 08:56:14,871 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1624 states to 1624 states and 2219 transitions. [2023-02-18 08:56:14,871 INFO L240 hiAutomatonCegarLoop]: Abstraction has 1624 states and 2219 transitions. [2023-02-18 08:56:14,871 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2023-02-18 08:56:14,872 INFO L428 stractBuchiCegarLoop]: Abstraction has 1624 states and 2219 transitions. [2023-02-18 08:56:14,872 INFO L335 stractBuchiCegarLoop]: ======== Iteration 39 ============ [2023-02-18 08:56:14,872 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 1624 states and 2219 transitions. [2023-02-18 08:56:14,875 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 97 [2023-02-18 08:56:14,875 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:14,875 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:14,876 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:14,876 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [44, 44, 29, 29, 29, 29, 15, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:14,876 INFO L748 eck$LassoCheckResult]: Stem: 115477#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 115430#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; 115431#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 115451#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; 115440#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 115441#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 116564#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 115419#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 115420#$Ultimate##0 ~n := #in~n; 116845#L25 assume ~n <= 0;#res := 1; 116844#factFINAL assume true; 116843#factEXIT >#68#return; 115467#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 115468#$Ultimate##0 ~n := #in~n; 116906#L25 assume ~n <= 0;#res := 1; 116902#factFINAL assume true; 116901#factEXIT >#70#return; 115415#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 115416#$Ultimate##0 ~n := #in~n; 116891#L25 assume ~n <= 0;#res := 1; 116890#factFINAL assume true; 116889#factEXIT >#72#return; 116888#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 116886#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 116883#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 116879#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 116877#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 116874#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 116875#$Ultimate##0 ~n := #in~n; 116885#L25 assume !(~n <= 0); 116881#L26 call #t~ret0 := fact(~n - 1);< 116882#$Ultimate##0 ~n := #in~n; 116887#L25 assume ~n <= 0;#res := 1; 116884#factFINAL assume true; 116880#factEXIT >#66#return; 116878#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116876#factFINAL assume true; 116873#factEXIT >#74#return; 116870#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 116871#$Ultimate##0 ~n := #in~n; 116898#L25 assume ~n <= 0;#res := 1; 116893#factFINAL assume true; 116894#factEXIT >#76#return; 116904#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 116912#$Ultimate##0 ~n := #in~n; 116911#L25 assume !(~n <= 0); 116909#L26 call #t~ret0 := fact(~n - 1);< 116910#$Ultimate##0 ~n := #in~n; 116914#L25 assume ~n <= 0;#res := 1; 116913#factFINAL assume true; 116908#factEXIT >#66#return; 116907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116903#factFINAL assume true; 116905#factEXIT >#78#return; 115434#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 115435#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 115475#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 115476#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 116996#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 116965#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 116967#$Ultimate##0 ~n := #in~n; 116978#L25 assume !(~n <= 0); 116973#L26 call #t~ret0 := fact(~n - 1);< 116976#$Ultimate##0 ~n := #in~n; 116984#L25 assume !(~n <= 0); 116971#L26 call #t~ret0 := fact(~n - 1);< 116981#$Ultimate##0 ~n := #in~n; 116992#L25 assume ~n <= 0;#res := 1; 116991#factFINAL assume true; 116990#factEXIT >#66#return; 116989#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116988#factFINAL assume true; 116986#factEXIT >#66#return; 116987#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 117020#factFINAL assume true; 117019#factEXIT >#74#return; 116947#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 116959#$Ultimate##0 ~n := #in~n; 116952#L25 assume ~n <= 0;#res := 1; 116953#factFINAL assume true; 116946#factEXIT >#76#return; 116172#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 116173#$Ultimate##0 ~n := #in~n; 116983#L25 assume !(~n <= 0); 116972#L26 call #t~ret0 := fact(~n - 1);< 116976#$Ultimate##0 ~n := #in~n; 116984#L25 assume !(~n <= 0); 116971#L26 call #t~ret0 := fact(~n - 1);< 116981#$Ultimate##0 ~n := #in~n; 116992#L25 assume ~n <= 0;#res := 1; 116991#factFINAL assume true; 116990#factEXIT >#66#return; 116989#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116988#factFINAL assume true; 116986#factEXIT >#66#return; 116975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 117021#factFINAL assume true; 116171#factEXIT >#78#return; 116154#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 116153#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 116152#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 115997#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 115949#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 115940#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 115944#$Ultimate##0 ~n := #in~n; 115978#L25 assume !(~n <= 0); 115968#L26 call #t~ret0 := fact(~n - 1);< 115969#$Ultimate##0 ~n := #in~n; 115990#L25 assume !(~n <= 0); 115967#L26 call #t~ret0 := fact(~n - 1);< 115977#$Ultimate##0 ~n := #in~n; 115990#L25 assume !(~n <= 0); 115967#L26 call #t~ret0 := fact(~n - 1);< 115977#$Ultimate##0 ~n := #in~n; 115989#L25 assume ~n <= 0;#res := 1; 115988#factFINAL assume true; 115986#factEXIT >#66#return; 115980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 115979#factFINAL assume true; 115976#factEXIT >#66#return; 115974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 115972#factFINAL assume true; 115966#factEXIT >#66#return; 115964#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 115946#factFINAL assume true; 115939#factEXIT >#74#return; 115941#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 115954#$Ultimate##0 ~n := #in~n; 115975#L25 assume ~n <= 0;#res := 1; 115973#factFINAL assume true; 115953#factEXIT >#76#return; 115909#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 115910#$Ultimate##0 ~n := #in~n; 115965#L25 assume !(~n <= 0); 115960#L26 call #t~ret0 := fact(~n - 1);< 115963#$Ultimate##0 ~n := #in~n; 115983#L25 assume !(~n <= 0); 115959#L26 call #t~ret0 := fact(~n - 1);< 115982#$Ultimate##0 ~n := #in~n; 115983#L25 assume !(~n <= 0); 115959#L26 call #t~ret0 := fact(~n - 1);< 115982#$Ultimate##0 ~n := #in~n; 115995#L25 assume ~n <= 0;#res := 1; 115994#factFINAL assume true; 115993#factEXIT >#66#return; 115992#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 115991#factFINAL assume true; 115985#factEXIT >#66#return; 115984#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 115981#factFINAL assume true; 115971#factEXIT >#66#return; 115956#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 115955#factFINAL assume true; 115908#factEXIT >#78#return; 115907#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 115906#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 115904#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 115902#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 115900#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 115897#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 115898#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 116250#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 116244#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 116247#$Ultimate##0 ~n := #in~n; 116272#L25 assume !(~n <= 0); 116256#L26 call #t~ret0 := fact(~n - 1);< 116265#$Ultimate##0 ~n := #in~n; 116273#L25 assume ~n <= 0;#res := 1; 116266#factFINAL assume true; 116252#factEXIT >#66#return; 116251#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116249#factFINAL assume true; 116241#factEXIT >#68#return; 116231#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 116239#$Ultimate##0 ~n := #in~n; 116248#L25 assume ~n <= 0;#res := 1; 116240#factFINAL assume true; 116230#factEXIT >#70#return; 116223#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 116229#$Ultimate##0 ~n := #in~n; 116299#L25 assume !(~n <= 0); 116282#L26 call #t~ret0 := fact(~n - 1);< 116294#$Ultimate##0 ~n := #in~n; 116301#L25 assume ~n <= 0;#res := 1; 116297#factFINAL assume true; 116287#factEXIT >#66#return; 116278#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116279#factFINAL assume true; 116222#factEXIT >#72#return; 116226#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 116437#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 116218#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 116216#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 116214#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 115571#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 116212#$Ultimate##0 ~n := #in~n; 115595#L25 assume !(~n <= 0); 115596#L26 call #t~ret0 := fact(~n - 1);< 116294#$Ultimate##0 ~n := #in~n; 116301#L25 assume ~n <= 0;#res := 1; 116297#factFINAL assume true; 116287#factEXIT >#66#return; 116292#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116409#factFINAL assume true; 116383#factEXIT >#68#return; 116314#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 116333#$Ultimate##0 ~n := #in~n; 116342#L25 assume !(~n <= 0); 115578#L26 call #t~ret0 := fact(~n - 1);< 115594#$Ultimate##0 ~n := #in~n; 116301#L25 assume ~n <= 0;#res := 1; 116297#factFINAL assume true; 116287#factEXIT >#66#return; 116290#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116334#factFINAL assume true; 116313#factEXIT >#70#return; 115516#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 116382#$Ultimate##0 ~n := #in~n; 115521#L25 assume ~n <= 0;#res := 1; 115513#factFINAL assume true; 115520#factEXIT >#72#return; 116379#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 116377#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 116376#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 116375#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 116374#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 116321#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 116333#$Ultimate##0 ~n := #in~n; 116342#L25 assume !(~n <= 0); 115578#L26 call #t~ret0 := fact(~n - 1);< 115594#$Ultimate##0 ~n := #in~n; 116370#L25 assume !(~n <= 0); 115581#L26 call #t~ret0 := fact(~n - 1);< 116305#$Ultimate##0 ~n := #in~n; 116310#L25 assume ~n <= 0;#res := 1; 116308#factFINAL assume true; 116302#factEXIT >#66#return; 116300#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116295#factFINAL assume true; 116281#factEXIT >#66#return; 116284#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116372#factFINAL assume true; 116360#factEXIT >#74#return; 116319#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 116333#$Ultimate##0 ~n := #in~n; 116342#L25 assume !(~n <= 0); 115578#L26 call #t~ret0 := fact(~n - 1);< 115594#$Ultimate##0 ~n := #in~n; 116301#L25 assume ~n <= 0;#res := 1; 116297#factFINAL assume true; 116287#factEXIT >#66#return; 116290#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116334#factFINAL assume true; 116313#factEXIT >#76#return; 116328#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 116335#$Ultimate##0 ~n := #in~n; 116384#L25 assume !(~n <= 0); 116288#L26 call #t~ret0 := fact(~n - 1);< 116298#$Ultimate##0 ~n := #in~n; 116301#L25 assume ~n <= 0;#res := 1; 116297#factFINAL assume true; 116287#factEXIT >#66#return; 116290#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116334#factFINAL assume true; 116313#factEXIT >#78#return; 116331#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 116504#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 116503#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 116488#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 116385#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 115424#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 116728#$Ultimate##0 ~n := #in~n; 116806#L25 assume !(~n <= 0); 116771#L26 call #t~ret0 := fact(~n - 1);< 116805#$Ultimate##0 ~n := #in~n; 116809#L25 assume !(~n <= 0); 115406#L26 call #t~ret0 := fact(~n - 1);< 116808#$Ultimate##0 ~n := #in~n; 116809#L25 assume !(~n <= 0); 115406#L26 call #t~ret0 := fact(~n - 1);< 116808#$Ultimate##0 ~n := #in~n; 115464#L25 assume ~n <= 0;#res := 1; 115465#factFINAL assume true; 115405#factEXIT >#66#return; 115407#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116812#factFINAL assume true; 116810#factEXIT >#66#return; 116804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116807#factFINAL assume true; 116799#factEXIT >#66#return; 116797#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116795#factFINAL assume true; 116796#factEXIT >#74#return; 115422#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 116728#$Ultimate##0 ~n := #in~n; 116806#L25 assume !(~n <= 0); 116771#L26 call #t~ret0 := fact(~n - 1);< 116805#$Ultimate##0 ~n := #in~n; 116778#L25 assume ~n <= 0;#res := 1; 116776#factFINAL assume true; 116767#factEXIT >#66#return; 116765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116763#factFINAL assume true; 116729#factEXIT >#76#return; 115425#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 116728#$Ultimate##0 ~n := #in~n; 116806#L25 assume !(~n <= 0); 116771#L26 call #t~ret0 := fact(~n - 1);< 116805#$Ultimate##0 ~n := #in~n; 116809#L25 assume !(~n <= 0); 115406#L26 call #t~ret0 := fact(~n - 1);< 116808#$Ultimate##0 ~n := #in~n; 115464#L25 assume ~n <= 0;#res := 1; 115465#factFINAL assume true; 115405#factEXIT >#66#return; 115407#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116812#factFINAL assume true; 116810#factEXIT >#66#return; 115458#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 115421#factFINAL assume true; 115426#factEXIT >#78#return; 115500#L30-8 [2023-02-18 08:56:14,877 INFO L750 eck$LassoCheckResult]: Loop: 115500#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 115452#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 115453#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 115482#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 115444#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 115445#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 115501#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 115499#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 115417#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 115418#$Ultimate##0 ~n := #in~n; 116443#L25 assume !(~n <= 0); 115582#L26 call #t~ret0 := fact(~n - 1);< 115594#$Ultimate##0 ~n := #in~n; 116370#L25 assume !(~n <= 0); 115581#L26 call #t~ret0 := fact(~n - 1);< 116305#$Ultimate##0 ~n := #in~n; 116370#L25 assume !(~n <= 0); 115581#L26 call #t~ret0 := fact(~n - 1);< 116305#$Ultimate##0 ~n := #in~n; 116310#L25 assume ~n <= 0;#res := 1; 116308#factFINAL assume true; 116302#factEXIT >#66#return; 116300#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116295#factFINAL assume true; 116281#factEXIT >#66#return; 115592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116943#factFINAL assume true; 115576#factEXIT >#66#return; 115593#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116734#factFINAL assume true; 116715#factEXIT >#68#return; 116677#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 116679#$Ultimate##0 ~n := #in~n; 116686#L25 assume ~n <= 0;#res := 1; 116684#factFINAL assume true; 116676#factEXIT >#70#return; 116668#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 116671#$Ultimate##0 ~n := #in~n; 116921#L25 assume !(~n <= 0); 115579#L26 call #t~ret0 := fact(~n - 1);< 116920#$Ultimate##0 ~n := #in~n; 116919#L25 assume !(~n <= 0); 115583#L26 call #t~ret0 := fact(~n - 1);< 116296#$Ultimate##0 ~n := #in~n; 116370#L25 assume !(~n <= 0); 115581#L26 call #t~ret0 := fact(~n - 1);< 116305#$Ultimate##0 ~n := #in~n; 116310#L25 assume ~n <= 0;#res := 1; 116308#factFINAL assume true; 116302#factEXIT >#66#return; 116300#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116295#factFINAL assume true; 116281#factEXIT >#66#return; 115592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116943#factFINAL assume true; 115576#factEXIT >#66#return; 115590#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116923#factFINAL assume true; 116667#factEXIT >#72#return; 116666#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 116557#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 116556#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 116552#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 116547#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 115561#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 115563#$Ultimate##0 ~n := #in~n; 115597#L25 assume !(~n <= 0); 115577#L26 call #t~ret0 := fact(~n - 1);< 115594#$Ultimate##0 ~n := #in~n; 116370#L25 assume !(~n <= 0); 115581#L26 call #t~ret0 := fact(~n - 1);< 116305#$Ultimate##0 ~n := #in~n; 116370#L25 assume !(~n <= 0); 115581#L26 call #t~ret0 := fact(~n - 1);< 116305#$Ultimate##0 ~n := #in~n; 116310#L25 assume ~n <= 0;#res := 1; 116308#factFINAL assume true; 116302#factEXIT >#66#return; 116300#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116295#factFINAL assume true; 116281#factEXIT >#66#return; 115592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116943#factFINAL assume true; 115576#factEXIT >#66#return; 115588#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116371#factFINAL assume true; 115556#factEXIT >#68#return; 115487#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 115498#$Ultimate##0 ~n := #in~n; 116357#L25 assume !(~n <= 0); 115580#L26 call #t~ret0 := fact(~n - 1);< 115594#$Ultimate##0 ~n := #in~n; 116301#L25 assume ~n <= 0;#res := 1; 116297#factFINAL assume true; 116287#factEXIT >#66#return; 116291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116419#factFINAL assume true; 116418#factEXIT >#70#return; 115492#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 115498#$Ultimate##0 ~n := #in~n; 116357#L25 assume !(~n <= 0); 115580#L26 call #t~ret0 := fact(~n - 1);< 115594#$Ultimate##0 ~n := #in~n; 116301#L25 assume ~n <= 0;#res := 1; 116297#factFINAL assume true; 116287#factEXIT >#66#return; 116291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116419#factFINAL assume true; 116418#factEXIT >#72#return; 115530#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 116548#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 116549#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 116661#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 116659#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 115559#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 115563#$Ultimate##0 ~n := #in~n; 115597#L25 assume !(~n <= 0); 115577#L26 call #t~ret0 := fact(~n - 1);< 115594#$Ultimate##0 ~n := #in~n; 116370#L25 assume !(~n <= 0); 115581#L26 call #t~ret0 := fact(~n - 1);< 116305#$Ultimate##0 ~n := #in~n; 116370#L25 assume !(~n <= 0); 115581#L26 call #t~ret0 := fact(~n - 1);< 116305#$Ultimate##0 ~n := #in~n; 116310#L25 assume ~n <= 0;#res := 1; 116308#factFINAL assume true; 116302#factEXIT >#66#return; 116300#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116295#factFINAL assume true; 116281#factEXIT >#66#return; 115592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116943#factFINAL assume true; 115576#factEXIT >#66#return; 115588#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116371#factFINAL assume true; 115556#factEXIT >#68#return; 115494#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 115498#$Ultimate##0 ~n := #in~n; 116357#L25 assume !(~n <= 0); 115580#L26 call #t~ret0 := fact(~n - 1);< 115594#$Ultimate##0 ~n := #in~n; 116370#L25 assume !(~n <= 0); 115581#L26 call #t~ret0 := fact(~n - 1);< 116305#$Ultimate##0 ~n := #in~n; 116310#L25 assume ~n <= 0;#res := 1; 116308#factFINAL assume true; 116302#factEXIT >#66#return; 116300#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116295#factFINAL assume true; 116281#factEXIT >#66#return; 116286#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116944#factFINAL assume true; 115522#factEXIT >#70#return; 115485#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 115498#$Ultimate##0 ~n := #in~n; 116357#L25 assume !(~n <= 0); 115580#L26 call #t~ret0 := fact(~n - 1);< 115594#$Ultimate##0 ~n := #in~n; 116301#L25 assume ~n <= 0;#res := 1; 116297#factFINAL assume true; 116287#factEXIT >#66#return; 116291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116419#factFINAL assume true; 116418#factEXIT >#72#return; 115529#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 116651#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 116648#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 116647#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 115574#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 115558#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 115563#$Ultimate##0 ~n := #in~n; 115597#L25 assume !(~n <= 0); 115577#L26 call #t~ret0 := fact(~n - 1);< 115594#$Ultimate##0 ~n := #in~n; 116370#L25 assume !(~n <= 0); 115581#L26 call #t~ret0 := fact(~n - 1);< 116305#$Ultimate##0 ~n := #in~n; 116370#L25 assume !(~n <= 0); 115581#L26 call #t~ret0 := fact(~n - 1);< 116305#$Ultimate##0 ~n := #in~n; 116310#L25 assume ~n <= 0;#res := 1; 116308#factFINAL assume true; 116302#factEXIT >#66#return; 116300#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116295#factFINAL assume true; 116281#factEXIT >#66#return; 115592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116943#factFINAL assume true; 115576#factEXIT >#66#return; 115588#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116371#factFINAL assume true; 115556#factEXIT >#68#return; 115486#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 115498#$Ultimate##0 ~n := #in~n; 116357#L25 assume !(~n <= 0); 115580#L26 call #t~ret0 := fact(~n - 1);< 115594#$Ultimate##0 ~n := #in~n; 116370#L25 assume !(~n <= 0); 115581#L26 call #t~ret0 := fact(~n - 1);< 116305#$Ultimate##0 ~n := #in~n; 116310#L25 assume ~n <= 0;#res := 1; 116308#factFINAL assume true; 116302#factEXIT >#66#return; 116300#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116295#factFINAL assume true; 116281#factEXIT >#66#return; 116286#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116944#factFINAL assume true; 115522#factEXIT >#70#return; 115489#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 115498#$Ultimate##0 ~n := #in~n; 116357#L25 assume ~n <= 0;#res := 1; 116358#factFINAL assume true; 115483#factEXIT >#72#return; 115496#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 116834#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 116833#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 116832#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 116831#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 116431#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 116815#$Ultimate##0 ~n := #in~n; 116835#L25 assume !(~n <= 0); 116801#L26 call #t~ret0 := fact(~n - 1);< 115438#$Ultimate##0 ~n := #in~n; 116809#L25 assume !(~n <= 0); 115406#L26 call #t~ret0 := fact(~n - 1);< 116808#$Ultimate##0 ~n := #in~n; 116809#L25 assume !(~n <= 0); 115406#L26 call #t~ret0 := fact(~n - 1);< 116808#$Ultimate##0 ~n := #in~n; 115464#L25 assume ~n <= 0;#res := 1; 115465#factFINAL assume true; 115405#factEXIT >#66#return; 115407#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116812#factFINAL assume true; 116810#factEXIT >#66#return; 116804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116807#factFINAL assume true; 116799#factEXIT >#66#return; 116803#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116816#factFINAL assume true; 116723#factEXIT >#74#return; 116724#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 116818#$Ultimate##0 ~n := #in~n; 116825#L25 assume !(~n <= 0); 116802#L26 call #t~ret0 := fact(~n - 1);< 115438#$Ultimate##0 ~n := #in~n; 116809#L25 assume !(~n <= 0); 115406#L26 call #t~ret0 := fact(~n - 1);< 116808#$Ultimate##0 ~n := #in~n; 116809#L25 assume !(~n <= 0); 115406#L26 call #t~ret0 := fact(~n - 1);< 116808#$Ultimate##0 ~n := #in~n; 115464#L25 assume ~n <= 0;#res := 1; 115465#factFINAL assume true; 115405#factEXIT >#66#return; 115407#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116812#factFINAL assume true; 116810#factEXIT >#66#return; 116804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116807#factFINAL assume true; 116799#factEXIT >#66#return; 116803#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116816#factFINAL assume true; 116723#factEXIT >#76#return; 115478#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 115479#$Ultimate##0 ~n := #in~n; 116830#L25 assume !(~n <= 0); 116768#L26 call #t~ret0 := fact(~n - 1);< 116773#$Ultimate##0 ~n := #in~n; 116778#L25 assume ~n <= 0;#res := 1; 116776#factFINAL assume true; 116767#factEXIT >#66#return; 116772#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 116829#factFINAL assume true; 116827#factEXIT >#78#return; 115500#L30-8 [2023-02-18 08:56:14,877 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:14,877 INFO L85 PathProgramCache]: Analyzing trace with hash 2135700754, now seen corresponding path program 26 times [2023-02-18 08:56:14,877 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:14,877 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1560554543] [2023-02-18 08:56:14,878 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:14,878 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:14,884 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:14,885 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [383378469] [2023-02-18 08:56:14,885 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:56:14,885 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:14,885 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:14,888 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-18 08:56:14,889 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-18 08:56:15,072 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:56:15,072 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:15,072 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:15,153 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:15,192 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:15,193 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:15,193 INFO L85 PathProgramCache]: Analyzing trace with hash -1057481587, now seen corresponding path program 27 times [2023-02-18 08:56:15,193 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:15,193 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [845335214] [2023-02-18 08:56:15,193 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:15,193 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:15,198 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:15,198 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [763353633] [2023-02-18 08:56:15,198 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:56:15,198 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:15,199 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:15,201 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-18 08:56:15,202 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-18 08:56:15,320 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 7 check-sat command(s) [2023-02-18 08:56:15,320 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:15,321 INFO L263 TraceCheckSpWp]: Trace formula consists of 379 conjuncts, 12 conjunts are in the unsatisfiable core [2023-02-18 08:56:15,323 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:15,346 INFO L134 CoverageAnalysis]: Checked inductivity of 4661 backedges. 2447 proven. 71 refuted. 0 times theorem prover too weak. 2143 trivial. 0 not checked. [2023-02-18 08:56:15,346 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:15,401 INFO L134 CoverageAnalysis]: Checked inductivity of 4661 backedges. 170 proven. 201 refuted. 0 times theorem prover too weak. 4290 trivial. 0 not checked. [2023-02-18 08:56:15,402 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:15,402 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [845335214] [2023-02-18 08:56:15,402 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:15,403 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [763353633] [2023-02-18 08:56:15,403 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [763353633] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:15,403 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:15,403 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 10] total 12 [2023-02-18 08:56:15,403 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1419108493] [2023-02-18 08:56:15,403 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:15,403 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:15,404 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:15,404 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2023-02-18 08:56:15,404 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=34, Invalid=98, Unknown=0, NotChecked=0, Total=132 [2023-02-18 08:56:15,404 INFO L87 Difference]: Start difference. First operand 1624 states and 2219 transitions. cyclomatic complexity: 624 Second operand has 12 states, 10 states have (on average 4.7) internal successors, (47), 12 states have internal predecessors, (47), 7 states have call successors, (28), 2 states have call predecessors, (28), 4 states have return successors, (28), 7 states have call predecessors, (28), 7 states have call successors, (28) [2023-02-18 08:56:15,529 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:15,529 INFO L93 Difference]: Finished difference Result 1788 states and 2439 transitions. [2023-02-18 08:56:15,529 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1788 states and 2439 transitions. [2023-02-18 08:56:15,535 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 113 [2023-02-18 08:56:15,542 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1788 states to 1656 states and 2255 transitions. [2023-02-18 08:56:15,543 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 108 [2023-02-18 08:56:15,543 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 108 [2023-02-18 08:56:15,543 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1656 states and 2255 transitions. [2023-02-18 08:56:15,543 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:15,543 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1656 states and 2255 transitions. [2023-02-18 08:56:15,544 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1656 states and 2255 transitions. [2023-02-18 08:56:15,593 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1656 to 1632. [2023-02-18 08:56:15,594 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 1632 states, 1057 states have (on average 1.0577105014191106) internal successors, (1118), 1055 states have internal predecessors, (1118), 423 states have call successors, (433), 161 states have call predecessors, (433), 152 states have return successors, (676), 415 states have call predecessors, (676), 423 states have call successors, (676) [2023-02-18 08:56:15,598 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1632 states to 1632 states and 2227 transitions. [2023-02-18 08:56:15,598 INFO L240 hiAutomatonCegarLoop]: Abstraction has 1632 states and 2227 transitions. [2023-02-18 08:56:15,598 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2023-02-18 08:56:15,598 INFO L428 stractBuchiCegarLoop]: Abstraction has 1632 states and 2227 transitions. [2023-02-18 08:56:15,599 INFO L335 stractBuchiCegarLoop]: ======== Iteration 40 ============ [2023-02-18 08:56:15,599 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 1632 states and 2227 transitions. [2023-02-18 08:56:15,601 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 113 [2023-02-18 08:56:15,602 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:15,602 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:15,603 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [52, 52, 28, 28, 28, 28, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:15,603 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [59, 59, 41, 41, 41, 41, 18, 6, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1] [2023-02-18 08:56:15,603 INFO L748 eck$LassoCheckResult]: Stem: 120590#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 120538#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; 120539#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 120561#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; 120550#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 120551#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 121353#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 121349#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 121350#$Ultimate##0 ~n := #in~n; 121354#L25 assume ~n <= 0;#res := 1; 121352#factFINAL assume true; 121348#factEXIT >#68#return; 121344#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 121345#$Ultimate##0 ~n := #in~n; 121351#L25 assume ~n <= 0;#res := 1; 121347#factFINAL assume true; 121343#factEXIT >#70#return; 121339#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 121340#$Ultimate##0 ~n := #in~n; 121346#L25 assume ~n <= 0;#res := 1; 121342#factFINAL assume true; 121338#factEXIT >#72#return; 121335#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 121331#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 121328#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 121324#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 121323#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 121321#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 121322#$Ultimate##0 ~n := #in~n; 121337#L25 assume !(~n <= 0); 121333#L26 call #t~ret0 := fact(~n - 1);< 121334#$Ultimate##0 ~n := #in~n; 121341#L25 assume ~n <= 0;#res := 1; 121336#factFINAL assume true; 121332#factEXIT >#66#return; 121330#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121327#factFINAL assume true; 121320#factEXIT >#74#return; 121306#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 121308#$Ultimate##0 ~n := #in~n; 121398#L25 assume ~n <= 0;#res := 1; 121397#factFINAL assume true; 121394#factEXIT >#76#return; 121391#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 121392#$Ultimate##0 ~n := #in~n; 121406#L25 assume !(~n <= 0); 121404#L26 call #t~ret0 := fact(~n - 1);< 121405#$Ultimate##0 ~n := #in~n; 121408#L25 assume ~n <= 0;#res := 1; 121407#factFINAL assume true; 121403#factEXIT >#66#return; 121402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121400#factFINAL assume true; 121390#factEXIT >#78#return; 121388#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 121386#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 121384#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 121383#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 121382#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 121238#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 121239#$Ultimate##0 ~n := #in~n; 121266#L25 assume !(~n <= 0); 121248#L26 call #t~ret0 := fact(~n - 1);< 121251#$Ultimate##0 ~n := #in~n; 121270#L25 assume !(~n <= 0); 121247#L26 call #t~ret0 := fact(~n - 1);< 121269#$Ultimate##0 ~n := #in~n; 121356#L25 assume ~n <= 0;#res := 1; 121355#factFINAL assume true; 121309#factEXIT >#66#return; 121304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121300#factFINAL assume true; 121284#factEXIT >#66#return; 121285#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121365#factFINAL assume true; 121240#factEXIT >#74#return; 121224#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 121233#$Ultimate##0 ~n := #in~n; 121273#L25 assume ~n <= 0;#res := 1; 121272#factFINAL assume true; 121223#factEXIT >#76#return; 121219#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 121220#$Ultimate##0 ~n := #in~n; 121297#L25 assume !(~n <= 0); 121288#L26 call #t~ret0 := fact(~n - 1);< 121293#$Ultimate##0 ~n := #in~n; 121312#L25 assume !(~n <= 0); 121289#L26 call #t~ret0 := fact(~n - 1);< 121311#$Ultimate##0 ~n := #in~n; 121364#L25 assume ~n <= 0;#res := 1; 121363#factFINAL assume true; 121362#factEXIT >#66#return; 121361#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121358#factFINAL assume true; 121295#factEXIT >#66#return; 121291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121282#factFINAL assume true; 121276#factEXIT >#78#return; 121215#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 121213#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 121210#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 121194#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 121176#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 121166#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 121169#$Ultimate##0 ~n := #in~n; 121206#L25 assume !(~n <= 0); 121187#L26 call #t~ret0 := fact(~n - 1);< 121192#$Ultimate##0 ~n := #in~n; 121205#L25 assume !(~n <= 0); 121188#L26 call #t~ret0 := fact(~n - 1);< 121203#$Ultimate##0 ~n := #in~n; 121205#L25 assume !(~n <= 0); 121188#L26 call #t~ret0 := fact(~n - 1);< 121203#$Ultimate##0 ~n := #in~n; 121205#L25 assume !(~n <= 0); 121188#L26 call #t~ret0 := fact(~n - 1);< 121203#$Ultimate##0 ~n := #in~n; 121222#L25 assume ~n <= 0;#res := 1; 121221#factFINAL assume true; 121216#factEXIT >#66#return; 121214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121212#factFINAL assume true; 121204#factEXIT >#66#return; 121201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121200#factFINAL assume true; 121186#factEXIT >#66#return; 121190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121197#factFINAL assume true; 121196#factEXIT >#66#return; 121179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121171#factFINAL assume true; 121164#factEXIT >#74#return; 121167#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 121181#$Ultimate##0 ~n := #in~n; 121199#L25 assume ~n <= 0;#res := 1; 121198#factFINAL assume true; 121180#factEXIT >#76#return; 121165#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 121169#$Ultimate##0 ~n := #in~n; 121206#L25 assume !(~n <= 0); 121187#L26 call #t~ret0 := fact(~n - 1);< 121192#$Ultimate##0 ~n := #in~n; 121205#L25 assume !(~n <= 0); 121188#L26 call #t~ret0 := fact(~n - 1);< 121203#$Ultimate##0 ~n := #in~n; 121205#L25 assume !(~n <= 0); 121188#L26 call #t~ret0 := fact(~n - 1);< 121203#$Ultimate##0 ~n := #in~n; 121222#L25 assume ~n <= 0;#res := 1; 121221#factFINAL assume true; 121216#factEXIT >#66#return; 121214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121212#factFINAL assume true; 121204#factEXIT >#66#return; 121201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121200#factFINAL assume true; 121186#factEXIT >#66#return; 121184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121182#factFINAL assume true; 121172#factEXIT >#78#return; 121153#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 121151#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 121149#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 121147#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 121146#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 121143#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 121144#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 121679#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 121612#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 121617#$Ultimate##0 ~n := #in~n; 121636#L25 assume !(~n <= 0); 121628#L26 call #t~ret0 := fact(~n - 1);< 121635#$Ultimate##0 ~n := #in~n; 121642#L25 assume ~n <= 0;#res := 1; 121637#factFINAL assume true; 121623#factEXIT >#66#return; 121620#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121619#factFINAL assume true; 121611#factEXIT >#68#return; 121605#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 121610#$Ultimate##0 ~n := #in~n; 121652#L25 assume ~n <= 0;#res := 1; 121650#factFINAL assume true; 121603#factEXIT >#70#return; 121541#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 121600#$Ultimate##0 ~n := #in~n; 121654#L25 assume !(~n <= 0); 121505#L26 call #t~ret0 := fact(~n - 1);< 121519#$Ultimate##0 ~n := #in~n; 121655#L25 assume ~n <= 0;#res := 1; 121653#factFINAL assume true; 121587#factEXIT >#66#return; 121592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121811#factFINAL assume true; 121810#factEXIT >#72#return; 121808#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 121806#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 121805#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 121803#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 121801#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 121469#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 121476#$Ultimate##0 ~n := #in~n; 121521#L25 assume !(~n <= 0); 121510#L26 call #t~ret0 := fact(~n - 1);< 121519#$Ultimate##0 ~n := #in~n; 121655#L25 assume ~n <= 0;#res := 1; 121653#factFINAL assume true; 121587#factEXIT >#66#return; 121590#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121651#factFINAL assume true; 121579#factEXIT >#68#return; 121451#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 121442#$Ultimate##0 ~n := #in~n; 121698#L25 assume !(~n <= 0); 121503#L26 call #t~ret0 := fact(~n - 1);< 121558#$Ultimate##0 ~n := #in~n; 121655#L25 assume ~n <= 0;#res := 1; 121653#factFINAL assume true; 121587#factEXIT >#66#return; 121585#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121531#factFINAL assume true; 121524#factEXIT >#70#return; 120618#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 120624#$Ultimate##0 ~n := #in~n; 120638#L25 assume ~n <= 0;#res := 1; 120616#factFINAL assume true; 120623#factEXIT >#72#return; 121572#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 121570#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 121568#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 121566#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 121565#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 121460#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 121442#$Ultimate##0 ~n := #in~n; 121698#L25 assume !(~n <= 0); 121503#L26 call #t~ret0 := fact(~n - 1);< 121558#$Ultimate##0 ~n := #in~n; 121666#L25 assume !(~n <= 0); 121504#L26 call #t~ret0 := fact(~n - 1);< 121659#$Ultimate##0 ~n := #in~n; 121693#L25 assume ~n <= 0;#res := 1; 121692#factFINAL assume true; 121657#factEXIT >#66#return; 121656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121581#factFINAL assume true; 121501#factEXIT >#66#return; 121517#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121495#factFINAL assume true; 121449#factEXIT >#74#return; 121455#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 121442#$Ultimate##0 ~n := #in~n; 121698#L25 assume !(~n <= 0); 121503#L26 call #t~ret0 := fact(~n - 1);< 121558#$Ultimate##0 ~n := #in~n; 121655#L25 assume ~n <= 0;#res := 1; 121653#factFINAL assume true; 121587#factEXIT >#66#return; 121585#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121531#factFINAL assume true; 121524#factEXIT >#76#return; 121464#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 121532#$Ultimate##0 ~n := #in~n; 121700#L25 assume !(~n <= 0); 121588#L26 call #t~ret0 := fact(~n - 1);< 121593#$Ultimate##0 ~n := #in~n; 121655#L25 assume ~n <= 0;#res := 1; 121653#factFINAL assume true; 121587#factEXIT >#66#return; 121585#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121531#factFINAL assume true; 121524#factEXIT >#78#return; 121467#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 121709#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 121708#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 121707#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 121706#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 120495#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 120496#$Ultimate##0 ~n := #in~n; 121883#L25 assume !(~n <= 0); 120500#L26 call #t~ret0 := fact(~n - 1);< 121854#$Ultimate##0 ~n := #in~n; 121837#L25 assume !(~n <= 0); 121828#L26 call #t~ret0 := fact(~n - 1);< 121836#$Ultimate##0 ~n := #in~n; 121837#L25 assume !(~n <= 0); 121828#L26 call #t~ret0 := fact(~n - 1);< 121836#$Ultimate##0 ~n := #in~n; 121840#L25 assume ~n <= 0;#res := 1; 121844#factFINAL assume true; 121843#factEXIT >#66#return; 121842#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121841#factFINAL assume true; 121838#factEXIT >#66#return; 121833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121835#factFINAL assume true; 121826#factEXIT >#66#return; 121832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121816#factFINAL assume true; 121817#factEXIT >#74#return; 120572#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 120496#$Ultimate##0 ~n := #in~n; 121883#L25 assume !(~n <= 0); 120500#L26 call #t~ret0 := fact(~n - 1);< 121854#$Ultimate##0 ~n := #in~n; 120578#L25 assume ~n <= 0;#res := 1; 120513#factFINAL assume true; 120499#factEXIT >#66#return; 120504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121876#factFINAL assume true; 121872#factEXIT >#76#return; 120571#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 120496#$Ultimate##0 ~n := #in~n; 121883#L25 assume !(~n <= 0); 120500#L26 call #t~ret0 := fact(~n - 1);< 121854#$Ultimate##0 ~n := #in~n; 121837#L25 assume !(~n <= 0); 121828#L26 call #t~ret0 := fact(~n - 1);< 121836#$Ultimate##0 ~n := #in~n; 121837#L25 assume !(~n <= 0); 121828#L26 call #t~ret0 := fact(~n - 1);< 121836#$Ultimate##0 ~n := #in~n; 121840#L25 assume ~n <= 0;#res := 1; 121844#factFINAL assume true; 121843#factEXIT >#66#return; 121842#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121841#factFINAL assume true; 121838#factEXIT >#66#return; 121833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121835#factFINAL assume true; 121826#factEXIT >#66#return; 121832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121816#factFINAL assume true; 121817#factEXIT >#78#return; 120647#L30-8 [2023-02-18 08:56:15,604 INFO L750 eck$LassoCheckResult]: Loop: 120647#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 121685#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 121684#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 121683#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 121682#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 121681#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 121680#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 120613#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 120614#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 120535#$Ultimate##0 ~n := #in~n; 121697#L25 assume !(~n <= 0); 121502#L26 call #t~ret0 := fact(~n - 1);< 121558#$Ultimate##0 ~n := #in~n; 121666#L25 assume !(~n <= 0); 121504#L26 call #t~ret0 := fact(~n - 1);< 121659#$Ultimate##0 ~n := #in~n; 121666#L25 assume !(~n <= 0); 121504#L26 call #t~ret0 := fact(~n - 1);< 121659#$Ultimate##0 ~n := #in~n; 121693#L25 assume ~n <= 0;#res := 1; 121692#factFINAL assume true; 121657#factEXIT >#66#return; 121656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121581#factFINAL assume true; 121501#factEXIT >#66#return; 121518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121560#factFINAL assume true; 121553#factEXIT >#66#return; 121555#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121694#factFINAL assume true; 121675#factEXIT >#68#return; 121673#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 121674#$Ultimate##0 ~n := #in~n; 121696#L25 assume ~n <= 0;#res := 1; 121695#factFINAL assume true; 121671#factEXIT >#70#return; 121562#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 121670#$Ultimate##0 ~n := #in~n; 121785#L25 assume !(~n <= 0); 121554#L26 call #t~ret0 := fact(~n - 1);< 121563#$Ultimate##0 ~n := #in~n; 121790#L25 assume !(~n <= 0); 121512#L26 call #t~ret0 := fact(~n - 1);< 121564#$Ultimate##0 ~n := #in~n; 121666#L25 assume !(~n <= 0); 121504#L26 call #t~ret0 := fact(~n - 1);< 121659#$Ultimate##0 ~n := #in~n; 121693#L25 assume ~n <= 0;#res := 1; 121692#factFINAL assume true; 121657#factEXIT >#66#return; 121656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121581#factFINAL assume true; 121501#factEXIT >#66#return; 121518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121560#factFINAL assume true; 121553#factEXIT >#66#return; 121556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121699#factFINAL assume true; 121668#factEXIT >#72#return; 121667#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 121665#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 121664#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 121663#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 121662#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 121478#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 121486#$Ultimate##0 ~n := #in~n; 121559#L25 assume !(~n <= 0); 121509#L26 call #t~ret0 := fact(~n - 1);< 121558#$Ultimate##0 ~n := #in~n; 121666#L25 assume !(~n <= 0); 121504#L26 call #t~ret0 := fact(~n - 1);< 121659#$Ultimate##0 ~n := #in~n; 121666#L25 assume !(~n <= 0); 121504#L26 call #t~ret0 := fact(~n - 1);< 121659#$Ultimate##0 ~n := #in~n; 121693#L25 assume ~n <= 0;#res := 1; 121692#factFINAL assume true; 121657#factEXIT >#66#return; 121656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121581#factFINAL assume true; 121501#factEXIT >#66#return; 121518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121560#factFINAL assume true; 121553#factEXIT >#66#return; 121552#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121551#factFINAL assume true; 121477#factEXIT >#68#return; 120608#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 120612#$Ultimate##0 ~n := #in~n; 121602#L25 assume !(~n <= 0); 121514#L26 call #t~ret0 := fact(~n - 1);< 121558#$Ultimate##0 ~n := #in~n; 121655#L25 assume ~n <= 0;#res := 1; 121653#factFINAL assume true; 121587#factEXIT >#66#return; 121591#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121621#factFINAL assume true; 121576#factEXIT >#70#return; 120605#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 120612#$Ultimate##0 ~n := #in~n; 121602#L25 assume !(~n <= 0); 121514#L26 call #t~ret0 := fact(~n - 1);< 121558#$Ultimate##0 ~n := #in~n; 121666#L25 assume !(~n <= 0); 121504#L26 call #t~ret0 := fact(~n - 1);< 121659#$Ultimate##0 ~n := #in~n; 121666#L25 assume !(~n <= 0); 121504#L26 call #t~ret0 := fact(~n - 1);< 121659#$Ultimate##0 ~n := #in~n; 121693#L25 assume ~n <= 0;#res := 1; 121692#factFINAL assume true; 121657#factEXIT >#66#return; 121656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121581#factFINAL assume true; 121501#factEXIT >#66#return; 121518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121560#factFINAL assume true; 121553#factEXIT >#66#return; 121549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121535#factFINAL assume true; 121429#factEXIT >#72#return; 121439#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 121784#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 121783#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 121782#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 121781#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 121483#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 121486#$Ultimate##0 ~n := #in~n; 121559#L25 assume !(~n <= 0); 121509#L26 call #t~ret0 := fact(~n - 1);< 121558#$Ultimate##0 ~n := #in~n; 121666#L25 assume !(~n <= 0); 121504#L26 call #t~ret0 := fact(~n - 1);< 121659#$Ultimate##0 ~n := #in~n; 121666#L25 assume !(~n <= 0); 121504#L26 call #t~ret0 := fact(~n - 1);< 121659#$Ultimate##0 ~n := #in~n; 121693#L25 assume ~n <= 0;#res := 1; 121692#factFINAL assume true; 121657#factEXIT >#66#return; 121656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121581#factFINAL assume true; 121501#factEXIT >#66#return; 121518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121560#factFINAL assume true; 121553#factEXIT >#66#return; 121552#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121551#factFINAL assume true; 121477#factEXIT >#68#return; 120604#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 120612#$Ultimate##0 ~n := #in~n; 121602#L25 assume !(~n <= 0); 121514#L26 call #t~ret0 := fact(~n - 1);< 121558#$Ultimate##0 ~n := #in~n; 121666#L25 assume !(~n <= 0); 121504#L26 call #t~ret0 := fact(~n - 1);< 121659#$Ultimate##0 ~n := #in~n; 121693#L25 assume ~n <= 0;#res := 1; 121692#factFINAL assume true; 121657#factEXIT >#66#return; 121656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121581#factFINAL assume true; 121501#factEXIT >#66#return; 121516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121443#factFINAL assume true; 121444#factEXIT >#70#return; 120595#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 120612#$Ultimate##0 ~n := #in~n; 121602#L25 assume !(~n <= 0); 121514#L26 call #t~ret0 := fact(~n - 1);< 121558#$Ultimate##0 ~n := #in~n; 121655#L25 assume ~n <= 0;#res := 1; 121653#factFINAL assume true; 121587#factEXIT >#66#return; 121591#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121621#factFINAL assume true; 121576#factEXIT >#72#return; 121577#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 121640#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 121639#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 121550#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 121548#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 121480#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 121486#$Ultimate##0 ~n := #in~n; 121559#L25 assume !(~n <= 0); 121509#L26 call #t~ret0 := fact(~n - 1);< 121558#$Ultimate##0 ~n := #in~n; 121666#L25 assume !(~n <= 0); 121504#L26 call #t~ret0 := fact(~n - 1);< 121659#$Ultimate##0 ~n := #in~n; 121666#L25 assume !(~n <= 0); 121504#L26 call #t~ret0 := fact(~n - 1);< 121659#$Ultimate##0 ~n := #in~n; 121693#L25 assume ~n <= 0;#res := 1; 121692#factFINAL assume true; 121657#factEXIT >#66#return; 121656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121581#factFINAL assume true; 121501#factEXIT >#66#return; 121518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121560#factFINAL assume true; 121553#factEXIT >#66#return; 121552#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121551#factFINAL assume true; 121477#factEXIT >#68#return; 120598#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 120612#$Ultimate##0 ~n := #in~n; 121602#L25 assume !(~n <= 0); 121514#L26 call #t~ret0 := fact(~n - 1);< 121558#$Ultimate##0 ~n := #in~n; 121666#L25 assume !(~n <= 0); 121504#L26 call #t~ret0 := fact(~n - 1);< 121659#$Ultimate##0 ~n := #in~n; 121666#L25 assume !(~n <= 0); 121504#L26 call #t~ret0 := fact(~n - 1);< 121659#$Ultimate##0 ~n := #in~n; 121693#L25 assume ~n <= 0;#res := 1; 121692#factFINAL assume true; 121657#factEXIT >#66#return; 121656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121581#factFINAL assume true; 121501#factEXIT >#66#return; 121518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121560#factFINAL assume true; 121553#factEXIT >#66#return; 121549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121535#factFINAL assume true; 121429#factEXIT >#70#return; 120594#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 120612#$Ultimate##0 ~n := #in~n; 121602#L25 assume ~n <= 0;#res := 1; 121601#factFINAL assume true; 120593#factEXIT >#72#return; 120610#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 121771#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 121760#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 121756#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 121750#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 121431#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 121446#$Ultimate##0 ~n := #in~n; 121641#L25 assume !(~n <= 0); 121506#L26 call #t~ret0 := fact(~n - 1);< 121564#$Ultimate##0 ~n := #in~n; 121666#L25 assume !(~n <= 0); 121504#L26 call #t~ret0 := fact(~n - 1);< 121659#$Ultimate##0 ~n := #in~n; 121666#L25 assume !(~n <= 0); 121504#L26 call #t~ret0 := fact(~n - 1);< 121659#$Ultimate##0 ~n := #in~n; 121693#L25 assume ~n <= 0;#res := 1; 121692#factFINAL assume true; 121657#factEXIT >#66#return; 121656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121581#factFINAL assume true; 121501#factEXIT >#66#return; 121518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121560#factFINAL assume true; 121553#factEXIT >#66#return; 121549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121535#factFINAL assume true; 121429#factEXIT >#74#return; 121433#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 121447#$Ultimate##0 ~n := #in~n; 121710#L25 assume !(~n <= 0); 121508#L26 call #t~ret0 := fact(~n - 1);< 121564#$Ultimate##0 ~n := #in~n; 121666#L25 assume !(~n <= 0); 121504#L26 call #t~ret0 := fact(~n - 1);< 121659#$Ultimate##0 ~n := #in~n; 121666#L25 assume !(~n <= 0); 121504#L26 call #t~ret0 := fact(~n - 1);< 121659#$Ultimate##0 ~n := #in~n; 121693#L25 assume ~n <= 0;#res := 1; 121692#factFINAL assume true; 121657#factEXIT >#66#return; 121656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121581#factFINAL assume true; 121501#factEXIT >#66#return; 121518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121560#factFINAL assume true; 121553#factEXIT >#66#return; 121549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121535#factFINAL assume true; 121429#factEXIT >#76#return; 121438#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 121622#$Ultimate##0 ~n := #in~n; 121647#L25 assume !(~n <= 0); 121589#L26 call #t~ret0 := fact(~n - 1);< 121593#$Ultimate##0 ~n := #in~n; 121655#L25 assume ~n <= 0;#res := 1; 121653#factFINAL assume true; 121587#factEXIT >#66#return; 121591#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121621#factFINAL assume true; 121576#factEXIT >#78#return; 121437#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 121648#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 121646#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 121645#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 121643#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 121644#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 121847#$Ultimate##0 ~n := #in~n; 121848#L25 assume !(~n <= 0); 121827#L26 call #t~ret0 := fact(~n - 1);< 121834#$Ultimate##0 ~n := #in~n; 121837#L25 assume !(~n <= 0); 121828#L26 call #t~ret0 := fact(~n - 1);< 121836#$Ultimate##0 ~n := #in~n; 121837#L25 assume !(~n <= 0); 121828#L26 call #t~ret0 := fact(~n - 1);< 121836#$Ultimate##0 ~n := #in~n; 121840#L25 assume ~n <= 0;#res := 1; 121844#factFINAL assume true; 121843#factEXIT >#66#return; 121842#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121841#factFINAL assume true; 121838#factEXIT >#66#return; 121833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121835#factFINAL assume true; 121826#factEXIT >#66#return; 121824#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121825#factFINAL assume true; 121686#factEXIT >#74#return; 121688#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 121868#$Ultimate##0 ~n := #in~n; 121874#L25 assume !(~n <= 0); 120502#L26 call #t~ret0 := fact(~n - 1);< 121854#$Ultimate##0 ~n := #in~n; 121837#L25 assume !(~n <= 0); 121828#L26 call #t~ret0 := fact(~n - 1);< 121836#$Ultimate##0 ~n := #in~n; 121837#L25 assume !(~n <= 0); 121828#L26 call #t~ret0 := fact(~n - 1);< 121836#$Ultimate##0 ~n := #in~n; 121840#L25 assume ~n <= 0;#res := 1; 121844#factFINAL assume true; 121843#factEXIT >#66#return; 121842#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121841#factFINAL assume true; 121838#factEXIT >#66#return; 121833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121835#factFINAL assume true; 121826#factEXIT >#66#return; 121824#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121825#factFINAL assume true; 121686#factEXIT >#76#return; 121690#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 121868#$Ultimate##0 ~n := #in~n; 121874#L25 assume !(~n <= 0); 120502#L26 call #t~ret0 := fact(~n - 1);< 121854#$Ultimate##0 ~n := #in~n; 121837#L25 assume !(~n <= 0); 121828#L26 call #t~ret0 := fact(~n - 1);< 121836#$Ultimate##0 ~n := #in~n; 121837#L25 assume !(~n <= 0); 121828#L26 call #t~ret0 := fact(~n - 1);< 121836#$Ultimate##0 ~n := #in~n; 121840#L25 assume ~n <= 0;#res := 1; 121844#factFINAL assume true; 121843#factEXIT >#66#return; 121842#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121841#factFINAL assume true; 121838#factEXIT >#66#return; 121833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121835#factFINAL assume true; 121826#factEXIT >#66#return; 121824#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 121825#factFINAL assume true; 121686#factEXIT >#78#return; 120647#L30-8 [2023-02-18 08:56:15,604 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:15,604 INFO L85 PathProgramCache]: Analyzing trace with hash -517234142, now seen corresponding path program 27 times [2023-02-18 08:56:15,605 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:15,605 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [410993107] [2023-02-18 08:56:15,605 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:15,605 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:15,611 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:15,611 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1877410028] [2023-02-18 08:56:15,611 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:56:15,612 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:15,612 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:15,615 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-18 08:56:15,615 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-18 08:56:15,741 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 7 check-sat command(s) [2023-02-18 08:56:15,741 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:15,743 INFO L263 TraceCheckSpWp]: Trace formula consists of 479 conjuncts, 17 conjunts are in the unsatisfiable core [2023-02-18 08:56:15,745 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:15,782 INFO L134 CoverageAnalysis]: Checked inductivity of 6203 backedges. 671 proven. 37 refuted. 0 times theorem prover too weak. 5495 trivial. 0 not checked. [2023-02-18 08:56:15,782 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:15,889 INFO L134 CoverageAnalysis]: Checked inductivity of 6203 backedges. 598 proven. 114 refuted. 0 times theorem prover too weak. 5491 trivial. 0 not checked. [2023-02-18 08:56:15,889 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:15,889 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [410993107] [2023-02-18 08:56:15,889 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:15,890 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1877410028] [2023-02-18 08:56:15,890 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1877410028] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:15,890 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:15,890 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 14] total 20 [2023-02-18 08:56:15,890 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [259122643] [2023-02-18 08:56:15,890 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:15,890 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:56:15,891 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:15,891 INFO L85 PathProgramCache]: Analyzing trace with hash 2076358784, now seen corresponding path program 28 times [2023-02-18 08:56:15,891 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:15,891 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [835167628] [2023-02-18 08:56:15,891 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:15,891 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:15,897 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:15,897 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [390480789] [2023-02-18 08:56:15,897 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:56:15,897 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:15,897 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:15,899 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-18 08:56:15,899 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-18 08:56:16,047 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:56:16,047 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:16,049 INFO L263 TraceCheckSpWp]: Trace formula consists of 806 conjuncts, 24 conjunts are in the unsatisfiable core [2023-02-18 08:56:16,052 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:16,118 INFO L134 CoverageAnalysis]: Checked inductivity of 8570 backedges. 3977 proven. 263 refuted. 0 times theorem prover too weak. 4330 trivial. 0 not checked. [2023-02-18 08:56:16,118 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:16,307 INFO L134 CoverageAnalysis]: Checked inductivity of 8570 backedges. 207 proven. 1454 refuted. 0 times theorem prover too weak. 6909 trivial. 0 not checked. [2023-02-18 08:56:16,307 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:16,307 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [835167628] [2023-02-18 08:56:16,307 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:16,308 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [390480789] [2023-02-18 08:56:16,308 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [390480789] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:16,308 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:16,308 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 21] total 27 [2023-02-18 08:56:16,308 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1355657142] [2023-02-18 08:56:16,308 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:16,308 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:16,308 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:16,309 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 21 interpolants. [2023-02-18 08:56:16,309 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=83, Invalid=337, Unknown=0, NotChecked=0, Total=420 [2023-02-18 08:56:16,309 INFO L87 Difference]: Start difference. First operand 1632 states and 2227 transitions. cyclomatic complexity: 624 Second operand has 21 states, 18 states have (on average 3.9444444444444446) internal successors, (71), 20 states have internal predecessors, (71), 14 states have call successors, (35), 1 states have call predecessors, (35), 4 states have return successors, (36), 14 states have call predecessors, (36), 14 states have call successors, (36) [2023-02-18 08:56:16,924 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:16,924 INFO L93 Difference]: Finished difference Result 1808 states and 2467 transitions. [2023-02-18 08:56:16,924 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1808 states and 2467 transitions. [2023-02-18 08:56:16,931 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 176 [2023-02-18 08:56:16,937 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1808 states to 1788 states and 2443 transitions. [2023-02-18 08:56:16,937 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 153 [2023-02-18 08:56:16,938 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 153 [2023-02-18 08:56:16,938 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1788 states and 2443 transitions. [2023-02-18 08:56:16,938 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:16,938 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1788 states and 2443 transitions. [2023-02-18 08:56:16,939 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1788 states and 2443 transitions. [2023-02-18 08:56:16,954 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1788 to 1497. [2023-02-18 08:56:16,956 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 1497 states, 953 states have (on average 1.0577124868835257) internal successors, (1008), 960 states have internal predecessors, (1008), 395 states have call successors, (402), 149 states have call predecessors, (402), 149 states have return successors, (620), 387 states have call predecessors, (620), 395 states have call successors, (620) [2023-02-18 08:56:16,959 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1497 states to 1497 states and 2030 transitions. [2023-02-18 08:56:16,959 INFO L240 hiAutomatonCegarLoop]: Abstraction has 1497 states and 2030 transitions. [2023-02-18 08:56:16,959 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 33 states. [2023-02-18 08:56:16,960 INFO L428 stractBuchiCegarLoop]: Abstraction has 1497 states and 2030 transitions. [2023-02-18 08:56:16,960 INFO L335 stractBuchiCegarLoop]: ======== Iteration 41 ============ [2023-02-18 08:56:16,960 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 1497 states and 2030 transitions. [2023-02-18 08:56:16,962 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 121 [2023-02-18 08:56:16,962 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:16,962 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:16,964 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:16,964 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [46, 46, 31, 31, 31, 31, 15, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:16,964 INFO L748 eck$LassoCheckResult]: Stem: 128317#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 128268#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; 128269#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 128290#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; 128279#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 128280#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 129478#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 129476#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 129477#$Ultimate##0 ~n := #in~n; 129488#L25 assume ~n <= 0;#res := 1; 129486#factFINAL assume true; 129475#factEXIT >#68#return; 128305#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 128306#$Ultimate##0 ~n := #in~n; 129527#L25 assume ~n <= 0;#res := 1; 129526#factFINAL assume true; 129525#factEXIT >#70#return; 128250#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 128251#$Ultimate##0 ~n := #in~n; 129604#L25 assume ~n <= 0;#res := 1; 129603#factFINAL assume true; 129602#factEXIT >#72#return; 129601#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 129599#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 129600#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 129629#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 129627#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 129624#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 129625#$Ultimate##0 ~n := #in~n; 129634#L25 assume !(~n <= 0); 129631#L26 call #t~ret0 := fact(~n - 1);< 129632#$Ultimate##0 ~n := #in~n; 129635#L25 assume ~n <= 0;#res := 1; 129633#factFINAL assume true; 129630#factEXIT >#66#return; 129628#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129626#factFINAL assume true; 129623#factEXIT >#74#return; 129584#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 129587#$Ultimate##0 ~n := #in~n; 129590#L25 assume ~n <= 0;#res := 1; 129591#factFINAL assume true; 129583#factEXIT >#76#return; 129585#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 129655#$Ultimate##0 ~n := #in~n; 129656#L25 assume !(~n <= 0); 129615#L26 call #t~ret0 := fact(~n - 1);< 129619#$Ultimate##0 ~n := #in~n; 129618#L25 assume ~n <= 0;#res := 1; 129614#factFINAL assume true; 129616#factEXIT >#66#return; 129608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129609#factFINAL assume true; 129654#factEXIT >#78#return; 129653#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 129652#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 129651#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 129650#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 128295#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 128296#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 129645#$Ultimate##0 ~n := #in~n; 129710#L25 assume !(~n <= 0); 128244#L26 call #t~ret0 := fact(~n - 1);< 128278#$Ultimate##0 ~n := #in~n; 129718#L25 assume !(~n <= 0); 128246#L26 call #t~ret0 := fact(~n - 1);< 129715#$Ultimate##0 ~n := #in~n; 129720#L25 assume ~n <= 0;#res := 1; 129719#factFINAL assume true; 129717#factEXIT >#66#return; 129716#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129714#factFINAL assume true; 129706#factEXIT >#66#return; 129705#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129704#factFINAL assume true; 129703#factEXIT >#74#return; 129647#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 129697#$Ultimate##0 ~n := #in~n; 129702#L25 assume ~n <= 0;#res := 1; 129700#factFINAL assume true; 129699#factEXIT >#76#return; 128959#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 128960#$Ultimate##0 ~n := #in~n; 129679#L25 assume !(~n <= 0); 129667#L26 call #t~ret0 := fact(~n - 1);< 129671#$Ultimate##0 ~n := #in~n; 129680#L25 assume !(~n <= 0); 129666#L26 call #t~ret0 := fact(~n - 1);< 129677#$Ultimate##0 ~n := #in~n; 129691#L25 assume ~n <= 0;#res := 1; 129690#factFINAL assume true; 129688#factEXIT >#66#return; 129686#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129685#factFINAL assume true; 129682#factEXIT >#66#return; 129683#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129728#factFINAL assume true; 129725#factEXIT >#78#return; 128958#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 128956#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 128953#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 128951#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 128939#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 128915#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 128919#$Ultimate##0 ~n := #in~n; 128948#L25 assume !(~n <= 0); 128930#L26 call #t~ret0 := fact(~n - 1);< 128935#$Ultimate##0 ~n := #in~n; 128978#L25 assume !(~n <= 0); 128931#L26 call #t~ret0 := fact(~n - 1);< 128977#$Ultimate##0 ~n := #in~n; 128978#L25 assume !(~n <= 0); 128931#L26 call #t~ret0 := fact(~n - 1);< 128977#$Ultimate##0 ~n := #in~n; 128978#L25 assume !(~n <= 0); 128931#L26 call #t~ret0 := fact(~n - 1);< 128977#$Ultimate##0 ~n := #in~n; 129004#L25 assume ~n <= 0;#res := 1; 129003#factFINAL assume true; 129002#factEXIT >#66#return; 129001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129000#factFINAL assume true; 128998#factEXIT >#66#return; 128996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128994#factFINAL assume true; 128943#factEXIT >#66#return; 128934#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128976#factFINAL assume true; 128929#factEXIT >#66#return; 128933#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128920#factFINAL assume true; 128914#factEXIT >#74#return; 128917#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 128923#$Ultimate##0 ~n := #in~n; 128936#L25 assume ~n <= 0;#res := 1; 128928#factFINAL assume true; 128922#factEXIT >#76#return; 128916#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 128919#$Ultimate##0 ~n := #in~n; 128948#L25 assume !(~n <= 0); 128930#L26 call #t~ret0 := fact(~n - 1);< 128935#$Ultimate##0 ~n := #in~n; 128978#L25 assume !(~n <= 0); 128931#L26 call #t~ret0 := fact(~n - 1);< 128977#$Ultimate##0 ~n := #in~n; 128978#L25 assume !(~n <= 0); 128931#L26 call #t~ret0 := fact(~n - 1);< 128977#$Ultimate##0 ~n := #in~n; 129004#L25 assume ~n <= 0;#res := 1; 129003#factFINAL assume true; 129002#factEXIT >#66#return; 129001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129000#factFINAL assume true; 128998#factEXIT >#66#return; 128996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128994#factFINAL assume true; 128943#factEXIT >#66#return; 128941#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128940#factFINAL assume true; 128921#factEXIT >#78#return; 128574#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 128573#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 128572#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 128570#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 128569#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 128567#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 128568#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 129033#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 129028#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 129029#$Ultimate##0 ~n := #in~n; 129035#L25 assume ~n <= 0;#res := 1; 129032#factFINAL assume true; 129027#factEXIT >#68#return; 129022#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 129023#$Ultimate##0 ~n := #in~n; 129338#L25 assume ~n <= 0;#res := 1; 129337#factFINAL assume true; 129331#factEXIT >#70#return; 129328#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 129330#$Ultimate##0 ~n := #in~n; 129410#L25 assume !(~n <= 0); 129405#L26 call #t~ret0 := fact(~n - 1);< 129409#$Ultimate##0 ~n := #in~n; 129487#L25 assume ~n <= 0;#res := 1; 129484#factFINAL assume true; 129470#factEXIT >#66#return; 129397#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129398#factFINAL assume true; 129327#factEXIT >#72#return; 129329#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 129323#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 129324#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 129532#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 129059#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 128266#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 128267#$Ultimate##0 ~n := #in~n; 129496#L25 assume !(~n <= 0); 129400#L26 call #t~ret0 := fact(~n - 1);< 129409#$Ultimate##0 ~n := #in~n; 129487#L25 assume ~n <= 0;#res := 1; 129484#factFINAL assume true; 129470#factEXIT >#66#return; 129472#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129507#factFINAL assume true; 129506#factEXIT >#68#return; 129444#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 129458#$Ultimate##0 ~n := #in~n; 129491#L25 assume !(~n <= 0); 129401#L26 call #t~ret0 := fact(~n - 1);< 129479#$Ultimate##0 ~n := #in~n; 129487#L25 assume ~n <= 0;#res := 1; 129484#factFINAL assume true; 129470#factEXIT >#66#return; 129465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129457#factFINAL assume true; 129437#factEXIT >#70#return; 129454#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 129503#$Ultimate##0 ~n := #in~n; 129505#L25 assume ~n <= 0;#res := 1; 129504#factFINAL assume true; 129502#factEXIT >#72#return; 129501#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 129499#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 129495#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 129483#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 129481#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 129446#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 129458#$Ultimate##0 ~n := #in~n; 129491#L25 assume !(~n <= 0); 129401#L26 call #t~ret0 := fact(~n - 1);< 129479#$Ultimate##0 ~n := #in~n; 129512#L25 assume !(~n <= 0); 129402#L26 call #t~ret0 := fact(~n - 1);< 129510#$Ultimate##0 ~n := #in~n; 129531#L25 assume ~n <= 0;#res := 1; 129530#factFINAL assume true; 129514#factEXIT >#66#return; 129513#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129509#factFINAL assume true; 129399#factEXIT >#66#return; 129406#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129466#factFINAL assume true; 129459#factEXIT >#74#return; 129447#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 129458#$Ultimate##0 ~n := #in~n; 129491#L25 assume !(~n <= 0); 129401#L26 call #t~ret0 := fact(~n - 1);< 129479#$Ultimate##0 ~n := #in~n; 129487#L25 assume ~n <= 0;#res := 1; 129484#factFINAL assume true; 129470#factEXIT >#66#return; 129465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129457#factFINAL assume true; 129437#factEXIT >#76#return; 129451#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 129456#$Ultimate##0 ~n := #in~n; 129529#L25 assume !(~n <= 0); 129471#L26 call #t~ret0 := fact(~n - 1);< 129473#$Ultimate##0 ~n := #in~n; 129487#L25 assume ~n <= 0;#res := 1; 129484#factFINAL assume true; 129470#factEXIT >#66#return; 129465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129457#factFINAL assume true; 129437#factEXIT >#78#return; 129453#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 129536#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 129535#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 129534#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 129533#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 129370#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 129373#$Ultimate##0 ~n := #in~n; 129388#L25 assume !(~n <= 0); 129380#L26 call #t~ret0 := fact(~n - 1);< 129419#$Ultimate##0 ~n := #in~n; 129385#L25 assume !(~n <= 0); 129378#L26 call #t~ret0 := fact(~n - 1);< 129384#$Ultimate##0 ~n := #in~n; 129385#L25 assume !(~n <= 0); 129378#L26 call #t~ret0 := fact(~n - 1);< 129384#$Ultimate##0 ~n := #in~n; 129425#L25 assume ~n <= 0;#res := 1; 129424#factFINAL assume true; 129422#factEXIT >#66#return; 129420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129418#factFINAL assume true; 129417#factEXIT >#66#return; 129381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129383#factFINAL assume true; 129377#factEXIT >#66#return; 129376#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129374#factFINAL assume true; 129364#factEXIT >#74#return; 129367#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 129373#$Ultimate##0 ~n := #in~n; 129388#L25 assume !(~n <= 0); 129380#L26 call #t~ret0 := fact(~n - 1);< 129419#$Ultimate##0 ~n := #in~n; 129523#L25 assume ~n <= 0;#res := 1; 129522#factFINAL assume true; 129520#factEXIT >#66#return; 129521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129724#factFINAL assume true; 129375#factEXIT >#76#return; 129365#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 129373#$Ultimate##0 ~n := #in~n; 129388#L25 assume !(~n <= 0); 129380#L26 call #t~ret0 := fact(~n - 1);< 129419#$Ultimate##0 ~n := #in~n; 129385#L25 assume !(~n <= 0); 129378#L26 call #t~ret0 := fact(~n - 1);< 129384#$Ultimate##0 ~n := #in~n; 129425#L25 assume ~n <= 0;#res := 1; 129424#factFINAL assume true; 129422#factEXIT >#66#return; 129420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129418#factFINAL assume true; 129417#factEXIT >#66#return; 129416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129386#factFINAL assume true; 129387#factEXIT >#78#return; 128270#L30-8 [2023-02-18 08:56:16,964 INFO L750 eck$LassoCheckResult]: Loop: 128270#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 128271#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 128291#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 128301#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 128287#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 128288#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 128357#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 128358#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 128677#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 128265#$Ultimate##0 ~n := #in~n; 128887#L25 assume !(~n <= 0); 128414#L26 call #t~ret0 := fact(~n - 1);< 128595#$Ultimate##0 ~n := #in~n; 128672#L25 assume !(~n <= 0); 128417#L26 call #t~ret0 := fact(~n - 1);< 128668#$Ultimate##0 ~n := #in~n; 128672#L25 assume !(~n <= 0); 128417#L26 call #t~ret0 := fact(~n - 1);< 128668#$Ultimate##0 ~n := #in~n; 128676#L25 assume ~n <= 0;#res := 1; 128669#factFINAL assume true; 128665#factEXIT >#66#return; 128664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128442#factFINAL assume true; 128410#factEXIT >#66#return; 128426#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128881#factFINAL assume true; 128867#factEXIT >#66#return; 128869#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128878#factFINAL assume true; 128877#factEXIT >#68#return; 128873#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 128875#$Ultimate##0 ~n := #in~n; 128880#L25 assume ~n <= 0;#res := 1; 128879#factFINAL assume true; 128872#factEXIT >#70#return; 128863#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 128866#$Ultimate##0 ~n := #in~n; 128883#L25 assume !(~n <= 0); 128443#L26 call #t~ret0 := fact(~n - 1);< 128882#$Ultimate##0 ~n := #in~n; 129037#L25 assume !(~n <= 0); 128421#L26 call #t~ret0 := fact(~n - 1);< 128427#$Ultimate##0 ~n := #in~n; 128672#L25 assume !(~n <= 0); 128417#L26 call #t~ret0 := fact(~n - 1);< 128668#$Ultimate##0 ~n := #in~n; 128676#L25 assume ~n <= 0;#res := 1; 128669#factFINAL assume true; 128665#factEXIT >#66#return; 128664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128442#factFINAL assume true; 128410#factEXIT >#66#return; 128426#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128881#factFINAL assume true; 128867#factEXIT >#66#return; 128870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128884#factFINAL assume true; 128862#factEXIT >#72#return; 128865#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 129354#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 129353#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 129352#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 129351#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 128754#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 128759#$Ultimate##0 ~n := #in~n; 128876#L25 assume !(~n <= 0); 128420#L26 call #t~ret0 := fact(~n - 1);< 128595#$Ultimate##0 ~n := #in~n; 128672#L25 assume !(~n <= 0); 128417#L26 call #t~ret0 := fact(~n - 1);< 128668#$Ultimate##0 ~n := #in~n; 128672#L25 assume !(~n <= 0); 128417#L26 call #t~ret0 := fact(~n - 1);< 128668#$Ultimate##0 ~n := #in~n; 128676#L25 assume ~n <= 0;#res := 1; 128669#factFINAL assume true; 128665#factEXIT >#66#return; 128664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128442#factFINAL assume true; 128410#factEXIT >#66#return; 128426#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128881#factFINAL assume true; 128867#factEXIT >#66#return; 128861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128859#factFINAL assume true; 128750#factEXIT >#68#return; 128328#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 128355#$Ultimate##0 ~n := #in~n; 128351#L25 assume !(~n <= 0); 128353#L26 call #t~ret0 := fact(~n - 1);< 128595#$Ultimate##0 ~n := #in~n; 128600#L25 assume ~n <= 0;#res := 1; 128593#factFINAL assume true; 128533#factEXIT >#66#return; 128538#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128772#factFINAL assume true; 128687#factEXIT >#70#return; 128337#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 128355#$Ultimate##0 ~n := #in~n; 128351#L25 assume !(~n <= 0); 128353#L26 call #t~ret0 := fact(~n - 1);< 128595#$Ultimate##0 ~n := #in~n; 128672#L25 assume !(~n <= 0); 128417#L26 call #t~ret0 := fact(~n - 1);< 128668#$Ultimate##0 ~n := #in~n; 128676#L25 assume ~n <= 0;#res := 1; 128669#factFINAL assume true; 128665#factEXIT >#66#return; 128664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128442#factFINAL assume true; 128410#factEXIT >#66#return; 128425#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128680#factFINAL assume true; 128385#factEXIT >#72#return; 128395#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 129342#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 129341#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 129340#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 129339#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 128753#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 128759#$Ultimate##0 ~n := #in~n; 128876#L25 assume !(~n <= 0); 128420#L26 call #t~ret0 := fact(~n - 1);< 128595#$Ultimate##0 ~n := #in~n; 128672#L25 assume !(~n <= 0); 128417#L26 call #t~ret0 := fact(~n - 1);< 128668#$Ultimate##0 ~n := #in~n; 128672#L25 assume !(~n <= 0); 128417#L26 call #t~ret0 := fact(~n - 1);< 128668#$Ultimate##0 ~n := #in~n; 128676#L25 assume ~n <= 0;#res := 1; 128669#factFINAL assume true; 128665#factEXIT >#66#return; 128664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128442#factFINAL assume true; 128410#factEXIT >#66#return; 128426#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128881#factFINAL assume true; 128867#factEXIT >#66#return; 128861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128859#factFINAL assume true; 128750#factEXIT >#68#return; 128330#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 128355#$Ultimate##0 ~n := #in~n; 128351#L25 assume !(~n <= 0); 128353#L26 call #t~ret0 := fact(~n - 1);< 128595#$Ultimate##0 ~n := #in~n; 128672#L25 assume !(~n <= 0); 128417#L26 call #t~ret0 := fact(~n - 1);< 128668#$Ultimate##0 ~n := #in~n; 128676#L25 assume ~n <= 0;#res := 1; 128669#factFINAL assume true; 128665#factEXIT >#66#return; 128664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128442#factFINAL assume true; 128410#factEXIT >#66#return; 128425#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128680#factFINAL assume true; 128385#factEXIT >#70#return; 128336#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 128355#$Ultimate##0 ~n := #in~n; 128351#L25 assume !(~n <= 0); 128353#L26 call #t~ret0 := fact(~n - 1);< 128595#$Ultimate##0 ~n := #in~n; 128672#L25 assume !(~n <= 0); 128417#L26 call #t~ret0 := fact(~n - 1);< 128668#$Ultimate##0 ~n := #in~n; 128676#L25 assume ~n <= 0;#res := 1; 128669#factFINAL assume true; 128665#factEXIT >#66#return; 128664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128442#factFINAL assume true; 128410#factEXIT >#66#return; 128425#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128680#factFINAL assume true; 128385#factEXIT >#72#return; 128394#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 129062#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 129058#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 129057#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 129054#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 128758#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 128759#$Ultimate##0 ~n := #in~n; 128876#L25 assume !(~n <= 0); 128420#L26 call #t~ret0 := fact(~n - 1);< 128595#$Ultimate##0 ~n := #in~n; 128672#L25 assume !(~n <= 0); 128417#L26 call #t~ret0 := fact(~n - 1);< 128668#$Ultimate##0 ~n := #in~n; 128672#L25 assume !(~n <= 0); 128417#L26 call #t~ret0 := fact(~n - 1);< 128668#$Ultimate##0 ~n := #in~n; 128676#L25 assume ~n <= 0;#res := 1; 128669#factFINAL assume true; 128665#factEXIT >#66#return; 128664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128442#factFINAL assume true; 128410#factEXIT >#66#return; 128426#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128881#factFINAL assume true; 128867#factEXIT >#66#return; 128861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128859#factFINAL assume true; 128750#factEXIT >#68#return; 128323#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 128355#$Ultimate##0 ~n := #in~n; 128351#L25 assume !(~n <= 0); 128353#L26 call #t~ret0 := fact(~n - 1);< 128595#$Ultimate##0 ~n := #in~n; 128672#L25 assume !(~n <= 0); 128417#L26 call #t~ret0 := fact(~n - 1);< 128668#$Ultimate##0 ~n := #in~n; 128676#L25 assume ~n <= 0;#res := 1; 128669#factFINAL assume true; 128665#factEXIT >#66#return; 128664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128442#factFINAL assume true; 128410#factEXIT >#66#return; 128425#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128680#factFINAL assume true; 128385#factEXIT >#70#return; 128331#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 128355#$Ultimate##0 ~n := #in~n; 128351#L25 assume ~n <= 0;#res := 1; 128352#factFINAL assume true; 128322#factEXIT >#72#return; 128283#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 128284#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 128297#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 128349#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 128350#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 128679#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 128233#$Ultimate##0 ~n := #in~n; 129568#L25 assume !(~n <= 0); 128308#L26 call #t~ret0 := fact(~n - 1);< 128307#$Ultimate##0 ~n := #in~n; 128312#L25 assume !(~n <= 0); 129538#L26 call #t~ret0 := fact(~n - 1);< 129543#$Ultimate##0 ~n := #in~n; 128312#L25 assume !(~n <= 0); 129538#L26 call #t~ret0 := fact(~n - 1);< 129543#$Ultimate##0 ~n := #in~n; 129560#L25 assume ~n <= 0;#res := 1; 129559#factFINAL assume true; 129557#factEXIT >#66#return; 129554#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129552#factFINAL assume true; 129546#factEXIT >#66#return; 129540#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129542#factFINAL assume true; 129537#factEXIT >#66#return; 129539#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129411#factFINAL assume true; 129363#factEXIT >#74#return; 128253#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 129558#$Ultimate##0 ~n := #in~n; 129553#L25 assume !(~n <= 0); 128309#L26 call #t~ret0 := fact(~n - 1);< 128307#$Ultimate##0 ~n := #in~n; 128312#L25 assume !(~n <= 0); 129538#L26 call #t~ret0 := fact(~n - 1);< 129543#$Ultimate##0 ~n := #in~n; 128312#L25 assume !(~n <= 0); 129538#L26 call #t~ret0 := fact(~n - 1);< 129543#$Ultimate##0 ~n := #in~n; 129560#L25 assume ~n <= 0;#res := 1; 129559#factFINAL assume true; 129557#factEXIT >#66#return; 129554#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129552#factFINAL assume true; 129546#factEXIT >#66#return; 129540#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129542#factFINAL assume true; 129537#factEXIT >#66#return; 129539#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129411#factFINAL assume true; 129363#factEXIT >#76#return; 128274#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 128318#$Ultimate##0 ~n := #in~n; 128303#L25 assume !(~n <= 0); 128238#L26 call #t~ret0 := fact(~n - 1);< 128275#$Ultimate##0 ~n := #in~n; 129562#L25 assume ~n <= 0;#res := 1; 129550#factFINAL assume true; 128236#factEXIT >#66#return; 128241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 128299#factFINAL assume true; 129567#factEXIT >#78#return; 128270#L30-8 [2023-02-18 08:56:16,965 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:16,965 INFO L85 PathProgramCache]: Analyzing trace with hash -1473365166, now seen corresponding path program 28 times [2023-02-18 08:56:16,965 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:16,965 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [145498290] [2023-02-18 08:56:16,965 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:16,965 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:16,996 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:16,996 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [570200808] [2023-02-18 08:56:16,996 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:56:16,997 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:16,997 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:16,999 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-18 08:56:17,000 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-18 08:56:17,146 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:56:17,146 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:17,148 INFO L263 TraceCheckSpWp]: Trace formula consists of 736 conjuncts, 15 conjunts are in the unsatisfiable core [2023-02-18 08:56:17,151 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:17,183 INFO L134 CoverageAnalysis]: Checked inductivity of 5693 backedges. 3059 proven. 29 refuted. 0 times theorem prover too weak. 2605 trivial. 0 not checked. [2023-02-18 08:56:17,183 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:17,256 INFO L134 CoverageAnalysis]: Checked inductivity of 5693 backedges. 339 proven. 526 refuted. 0 times theorem prover too weak. 4828 trivial. 0 not checked. [2023-02-18 08:56:17,256 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:17,257 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [145498290] [2023-02-18 08:56:17,257 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:17,257 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [570200808] [2023-02-18 08:56:17,257 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [570200808] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:17,257 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:17,257 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 16 [2023-02-18 08:56:17,258 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1407211932] [2023-02-18 08:56:17,258 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:17,258 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:56:17,258 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:17,258 INFO L85 PathProgramCache]: Analyzing trace with hash -1200731331, now seen corresponding path program 29 times [2023-02-18 08:56:17,258 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:17,258 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1567000038] [2023-02-18 08:56:17,259 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:17,259 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:17,264 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:17,264 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [119244646] [2023-02-18 08:56:17,264 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:56:17,264 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:17,264 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:17,267 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-18 08:56:17,268 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-18 08:56:17,420 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 13 check-sat command(s) [2023-02-18 08:56:17,420 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:17,422 INFO L263 TraceCheckSpWp]: Trace formula consists of 569 conjuncts, 23 conjunts are in the unsatisfiable core [2023-02-18 08:56:17,424 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:17,469 INFO L134 CoverageAnalysis]: Checked inductivity of 5135 backedges. 2852 proven. 423 refuted. 0 times theorem prover too weak. 1860 trivial. 0 not checked. [2023-02-18 08:56:17,469 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:17,614 INFO L134 CoverageAnalysis]: Checked inductivity of 5135 backedges. 381 proven. 1035 refuted. 0 times theorem prover too weak. 3719 trivial. 0 not checked. [2023-02-18 08:56:17,614 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:17,614 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1567000038] [2023-02-18 08:56:17,614 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:17,614 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [119244646] [2023-02-18 08:56:17,615 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [119244646] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:17,615 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:17,615 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 18] total 22 [2023-02-18 08:56:17,615 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1666171206] [2023-02-18 08:56:17,615 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:17,615 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:17,615 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:17,616 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 22 interpolants. [2023-02-18 08:56:17,616 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=71, Invalid=391, Unknown=0, NotChecked=0, Total=462 [2023-02-18 08:56:17,616 INFO L87 Difference]: Start difference. First operand 1497 states and 2030 transitions. cyclomatic complexity: 558 Second operand has 22 states, 17 states have (on average 3.5294117647058822) internal successors, (60), 20 states have internal predecessors, (60), 15 states have call successors, (30), 2 states have call predecessors, (30), 8 states have return successors, (33), 11 states have call predecessors, (33), 15 states have call successors, (33) [2023-02-18 08:56:18,184 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:18,184 INFO L93 Difference]: Finished difference Result 2321 states and 3571 transitions. [2023-02-18 08:56:18,184 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2321 states and 3571 transitions. [2023-02-18 08:56:18,194 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 258 [2023-02-18 08:56:18,204 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2321 states to 2231 states and 3367 transitions. [2023-02-18 08:56:18,204 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 209 [2023-02-18 08:56:18,204 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 209 [2023-02-18 08:56:18,204 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2231 states and 3367 transitions. [2023-02-18 08:56:18,205 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:18,205 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2231 states and 3367 transitions. [2023-02-18 08:56:18,206 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2231 states and 3367 transitions. [2023-02-18 08:56:18,234 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2231 to 1731. [2023-02-18 08:56:18,236 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 1731 states, 1075 states have (on average 1.0567441860465117) internal successors, (1136), 1078 states have internal predecessors, (1136), 483 states have call successors, (490), 157 states have call predecessors, (490), 173 states have return successors, (936), 495 states have call predecessors, (936), 483 states have call successors, (936) [2023-02-18 08:56:18,240 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1731 states to 1731 states and 2562 transitions. [2023-02-18 08:56:18,240 INFO L240 hiAutomatonCegarLoop]: Abstraction has 1731 states and 2562 transitions. [2023-02-18 08:56:18,241 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 29 states. [2023-02-18 08:56:18,242 INFO L428 stractBuchiCegarLoop]: Abstraction has 1731 states and 2562 transitions. [2023-02-18 08:56:18,242 INFO L335 stractBuchiCegarLoop]: ======== Iteration 42 ============ [2023-02-18 08:56:18,242 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 1731 states and 2562 transitions. [2023-02-18 08:56:18,245 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 180 [2023-02-18 08:56:18,245 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:18,245 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:18,247 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [49, 49, 25, 25, 25, 25, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:18,247 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [51, 51, 36, 36, 36, 36, 15, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:18,247 INFO L748 eck$LassoCheckResult]: Stem: 135869#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 135824#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; 135825#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 135842#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; 135870#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 137168#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 137167#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 135806#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 135807#$Ultimate##0 ~n := #in~n; 137068#L25 assume ~n <= 0;#res := 1; 137067#factFINAL assume true; 137065#factEXIT >#68#return; 135864#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 135865#$Ultimate##0 ~n := #in~n; 137135#L25 assume ~n <= 0;#res := 1; 137134#factFINAL assume true; 137132#factEXIT >#70#return; 137129#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 137130#$Ultimate##0 ~n := #in~n; 137133#L25 assume ~n <= 0;#res := 1; 137131#factFINAL assume true; 137128#factEXIT >#72#return; 137127#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 137124#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 137120#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 137119#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 137118#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 137106#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 137107#$Ultimate##0 ~n := #in~n; 137117#L25 assume !(~n <= 0); 137115#L26 call #t~ret0 := fact(~n - 1);< 137116#$Ultimate##0 ~n := #in~n; 137126#L25 assume ~n <= 0;#res := 1; 137123#factFINAL assume true; 137114#factEXIT >#66#return; 137113#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 137112#factFINAL assume true; 137105#factEXIT >#74#return; 137100#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 137101#$Ultimate##0 ~n := #in~n; 137111#L25 assume ~n <= 0;#res := 1; 137104#factFINAL assume true; 137099#factEXIT >#76#return; 137096#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 137097#$Ultimate##0 ~n := #in~n; 137122#L25 assume !(~n <= 0); 137109#L26 call #t~ret0 := fact(~n - 1);< 137110#$Ultimate##0 ~n := #in~n; 137125#L25 assume ~n <= 0;#res := 1; 137121#factFINAL assume true; 137108#factEXIT >#66#return; 137103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 137098#factFINAL assume true; 137095#factEXIT >#78#return; 137094#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 137093#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 137092#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 137091#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 137090#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 137087#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 136356#$Ultimate##0 ~n := #in~n; 137148#L25 assume !(~n <= 0); 137140#L26 call #t~ret0 := fact(~n - 1);< 137145#$Ultimate##0 ~n := #in~n; 137163#L25 assume !(~n <= 0); 137141#L26 call #t~ret0 := fact(~n - 1);< 137160#$Ultimate##0 ~n := #in~n; 137165#L25 assume ~n <= 0;#res := 1; 137164#factFINAL assume true; 137161#factEXIT >#66#return; 137159#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 137158#factFINAL assume true; 137153#factEXIT >#66#return; 137152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 137146#factFINAL assume true; 137147#factEXIT >#74#return; 137062#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 137063#$Ultimate##0 ~n := #in~n; 137073#L25 assume ~n <= 0;#res := 1; 137074#factFINAL assume true; 137060#factEXIT >#76#return; 136353#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 137089#$Ultimate##0 ~n := #in~n; 137162#L25 assume !(~n <= 0); 137142#L26 call #t~ret0 := fact(~n - 1);< 137145#$Ultimate##0 ~n := #in~n; 137163#L25 assume !(~n <= 0); 137141#L26 call #t~ret0 := fact(~n - 1);< 137160#$Ultimate##0 ~n := #in~n; 137165#L25 assume ~n <= 0;#res := 1; 137164#factFINAL assume true; 137161#factEXIT >#66#return; 137159#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 137158#factFINAL assume true; 137153#factEXIT >#66#return; 137155#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 137509#factFINAL assume true; 137506#factEXIT >#78#return; 136351#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 136350#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 136349#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 136347#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 136320#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 136313#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 136316#$Ultimate##0 ~n := #in~n; 136366#L25 assume !(~n <= 0); 136363#L26 call #t~ret0 := fact(~n - 1);< 136364#$Ultimate##0 ~n := #in~n; 136378#L25 assume !(~n <= 0); 136362#L26 call #t~ret0 := fact(~n - 1);< 136376#$Ultimate##0 ~n := #in~n; 136378#L25 assume !(~n <= 0); 136362#L26 call #t~ret0 := fact(~n - 1);< 136376#$Ultimate##0 ~n := #in~n; 136383#L25 assume ~n <= 0;#res := 1; 136382#factFINAL assume true; 136381#factEXIT >#66#return; 136380#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136379#factFINAL assume true; 136375#factEXIT >#66#return; 136373#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136371#factFINAL assume true; 136361#factEXIT >#66#return; 136331#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136324#factFINAL assume true; 136312#factEXIT >#74#return; 136273#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 136274#$Ultimate##0 ~n := #in~n; 136296#L25 assume ~n <= 0;#res := 1; 136295#factFINAL assume true; 136272#factEXIT >#76#return; 136269#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 136270#$Ultimate##0 ~n := #in~n; 136343#L25 assume !(~n <= 0); 136337#L26 call #t~ret0 := fact(~n - 1);< 136340#$Ultimate##0 ~n := #in~n; 136348#L25 assume !(~n <= 0); 136335#L26 call #t~ret0 := fact(~n - 1);< 136346#$Ultimate##0 ~n := #in~n; 136348#L25 assume !(~n <= 0); 136335#L26 call #t~ret0 := fact(~n - 1);< 136346#$Ultimate##0 ~n := #in~n; 136377#L25 assume ~n <= 0;#res := 1; 136374#factFINAL assume true; 136372#factEXIT >#66#return; 136370#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136369#factFINAL assume true; 136368#factEXIT >#66#return; 136367#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136365#factFINAL assume true; 136344#factEXIT >#66#return; 136339#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136385#factFINAL assume true; 136333#factEXIT >#78#return; 136265#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 136264#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 136263#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 136262#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 136260#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 136258#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 136259#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 136579#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 136576#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 136577#$Ultimate##0 ~n := #in~n; 136589#L25 assume ~n <= 0;#res := 1; 136588#factFINAL assume true; 136575#factEXIT >#68#return; 136560#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 136561#$Ultimate##0 ~n := #in~n; 136924#L25 assume ~n <= 0;#res := 1; 136919#factFINAL assume true; 136916#factEXIT >#70#return; 136899#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 136914#$Ultimate##0 ~n := #in~n; 136908#L25 assume !(~n <= 0); 136876#L26 call #t~ret0 := fact(~n - 1);< 136900#$Ultimate##0 ~n := #in~n; 136883#L25 assume ~n <= 0;#res := 1; 136880#factFINAL assume true; 136872#factEXIT >#66#return; 136877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136940#factFINAL assume true; 136938#factEXIT >#72#return; 136936#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 136934#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 136932#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 136929#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 136928#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 136881#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 136909#$Ultimate##0 ~n := #in~n; 136904#L25 assume !(~n <= 0); 136873#L26 call #t~ret0 := fact(~n - 1);< 136879#$Ultimate##0 ~n := #in~n; 136883#L25 assume ~n <= 0;#res := 1; 136880#factFINAL assume true; 136872#factEXIT >#66#return; 136878#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136931#factFINAL assume true; 136927#factEXIT >#68#return; 136847#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 136862#$Ultimate##0 ~n := #in~n; 136903#L25 assume !(~n <= 0); 136875#L26 call #t~ret0 := fact(~n - 1);< 136895#$Ultimate##0 ~n := #in~n; 136883#L25 assume ~n <= 0;#res := 1; 136880#factFINAL assume true; 136872#factEXIT >#66#return; 136871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136870#factFINAL assume true; 136863#factEXIT >#70#return; 136867#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 136922#$Ultimate##0 ~n := #in~n; 136926#L25 assume ~n <= 0;#res := 1; 136925#factFINAL assume true; 136920#factEXIT >#72#return; 136917#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 136910#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 136906#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 136897#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 136888#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 136853#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 136862#$Ultimate##0 ~n := #in~n; 136903#L25 assume !(~n <= 0); 136875#L26 call #t~ret0 := fact(~n - 1);< 136895#$Ultimate##0 ~n := #in~n; 136902#L25 assume !(~n <= 0); 136891#L26 call #t~ret0 := fact(~n - 1);< 136901#$Ultimate##0 ~n := #in~n; 136923#L25 assume ~n <= 0;#res := 1; 136918#factFINAL assume true; 136911#factEXIT >#66#return; 136907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136898#factFINAL assume true; 136889#factEXIT >#66#return; 136887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136886#factFINAL assume true; 136884#factEXIT >#74#return; 136854#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 136862#$Ultimate##0 ~n := #in~n; 136903#L25 assume !(~n <= 0); 136875#L26 call #t~ret0 := fact(~n - 1);< 136895#$Ultimate##0 ~n := #in~n; 136883#L25 assume ~n <= 0;#res := 1; 136880#factFINAL assume true; 136872#factEXIT >#66#return; 136871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136870#factFINAL assume true; 136863#factEXIT >#76#return; 136864#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 136869#$Ultimate##0 ~n := #in~n; 136948#L25 assume !(~n <= 0); 136874#L26 call #t~ret0 := fact(~n - 1);< 136879#$Ultimate##0 ~n := #in~n; 136883#L25 assume ~n <= 0;#res := 1; 136880#factFINAL assume true; 136872#factEXIT >#66#return; 136871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136870#factFINAL assume true; 136863#factEXIT >#78#return; 136866#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 136964#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 136963#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 136962#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 136825#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 136777#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 136783#$Ultimate##0 ~n := #in~n; 136805#L25 assume !(~n <= 0); 136796#L26 call #t~ret0 := fact(~n - 1);< 136802#$Ultimate##0 ~n := #in~n; 136809#L25 assume !(~n <= 0); 136797#L26 call #t~ret0 := fact(~n - 1);< 136808#$Ultimate##0 ~n := #in~n; 136809#L25 assume !(~n <= 0); 136797#L26 call #t~ret0 := fact(~n - 1);< 136808#$Ultimate##0 ~n := #in~n; 136819#L25 assume ~n <= 0;#res := 1; 136817#factFINAL assume true; 136816#factEXIT >#66#return; 136815#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136812#factFINAL assume true; 136803#factEXIT >#66#return; 136804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136807#factFINAL assume true; 136795#factEXIT >#66#return; 136791#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136790#factFINAL assume true; 136789#factEXIT >#74#return; 136778#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 136783#$Ultimate##0 ~n := #in~n; 136805#L25 assume !(~n <= 0); 136796#L26 call #t~ret0 := fact(~n - 1);< 136802#$Ultimate##0 ~n := #in~n; 136813#L25 assume ~n <= 0;#res := 1; 136810#factFINAL assume true; 136801#factEXIT >#66#return; 136792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136787#factFINAL assume true; 136785#factEXIT >#76#return; 136774#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 136783#$Ultimate##0 ~n := #in~n; 136805#L25 assume !(~n <= 0); 136796#L26 call #t~ret0 := fact(~n - 1);< 136802#$Ultimate##0 ~n := #in~n; 136809#L25 assume !(~n <= 0); 136797#L26 call #t~ret0 := fact(~n - 1);< 136808#$Ultimate##0 ~n := #in~n; 136819#L25 assume ~n <= 0;#res := 1; 136817#factFINAL assume true; 136816#factEXIT >#66#return; 136815#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136812#factFINAL assume true; 136803#factEXIT >#66#return; 136793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136788#factFINAL assume true; 136786#factEXIT >#78#return; 135793#L30-8 [2023-02-18 08:56:18,248 INFO L750 eck$LassoCheckResult]: Loop: 135793#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 135843#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 135844#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 135857#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 135840#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 135832#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 135833#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 135872#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 135804#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 135805#$Ultimate##0 ~n := #in~n; 136224#L25 assume !(~n <= 0); 135986#L26 call #t~ret0 := fact(~n - 1);< 136043#$Ultimate##0 ~n := #in~n; 136242#L25 assume !(~n <= 0); 135991#L26 call #t~ret0 := fact(~n - 1);< 136240#$Ultimate##0 ~n := #in~n; 136242#L25 assume !(~n <= 0); 135991#L26 call #t~ret0 := fact(~n - 1);< 136240#$Ultimate##0 ~n := #in~n; 136244#L25 assume ~n <= 0;#res := 1; 136243#factFINAL assume true; 136237#factEXIT >#66#return; 136235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136232#factFINAL assume true; 135982#factEXIT >#66#return; 135999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136197#factFINAL assume true; 136185#factEXIT >#66#return; 136191#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136285#factFINAL assume true; 136284#factEXIT >#68#return; 136171#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 136175#$Ultimate##0 ~n := #in~n; 136184#L25 assume ~n <= 0;#res := 1; 136178#factFINAL assume true; 136170#factEXIT >#70#return; 136087#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 136094#$Ultimate##0 ~n := #in~n; 136396#L25 assume !(~n <= 0); 136186#L26 call #t~ret0 := fact(~n - 1);< 136261#$Ultimate##0 ~n := #in~n; 136395#L25 assume !(~n <= 0); 135994#L26 call #t~ret0 := fact(~n - 1);< 136001#$Ultimate##0 ~n := #in~n; 136242#L25 assume !(~n <= 0); 135991#L26 call #t~ret0 := fact(~n - 1);< 136240#$Ultimate##0 ~n := #in~n; 136244#L25 assume ~n <= 0;#res := 1; 136243#factFINAL assume true; 136237#factEXIT >#66#return; 136235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136232#factFINAL assume true; 135982#factEXIT >#66#return; 135999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136197#factFINAL assume true; 136185#factEXIT >#66#return; 136188#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136257#factFINAL assume true; 136086#factEXIT >#72#return; 136092#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 136326#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 136323#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 136322#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 136319#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 136143#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 136165#$Ultimate##0 ~n := #in~n; 136226#L25 assume !(~n <= 0); 136038#L26 call #t~ret0 := fact(~n - 1);< 136217#$Ultimate##0 ~n := #in~n; 136213#L25 assume !(~n <= 0); 135989#L26 call #t~ret0 := fact(~n - 1);< 136202#$Ultimate##0 ~n := #in~n; 136620#L25 assume !(~n <= 0); 136238#L26 call #t~ret0 := fact(~n - 1);< 136239#$Ultimate##0 ~n := #in~n; 136244#L25 assume ~n <= 0;#res := 1; 136243#factFINAL assume true; 136237#factEXIT >#66#return; 136235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136232#factFINAL assume true; 135982#factEXIT >#66#return; 135999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136197#factFINAL assume true; 136185#factEXIT >#66#return; 136181#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136164#factFINAL assume true; 136141#factEXIT >#68#return; 135897#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 135943#$Ultimate##0 ~n := #in~n; 136054#L25 assume !(~n <= 0); 135985#L26 call #t~ret0 := fact(~n - 1);< 136043#$Ultimate##0 ~n := #in~n; 136053#L25 assume ~n <= 0;#res := 1; 136046#factFINAL assume true; 136036#factEXIT >#66#return; 136039#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136078#factFINAL assume true; 136060#factEXIT >#70#return; 135884#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 135943#$Ultimate##0 ~n := #in~n; 136054#L25 assume !(~n <= 0); 135985#L26 call #t~ret0 := fact(~n - 1);< 136043#$Ultimate##0 ~n := #in~n; 136242#L25 assume !(~n <= 0); 135991#L26 call #t~ret0 := fact(~n - 1);< 136240#$Ultimate##0 ~n := #in~n; 136242#L25 assume !(~n <= 0); 135991#L26 call #t~ret0 := fact(~n - 1);< 136240#$Ultimate##0 ~n := #in~n; 136242#L25 assume !(~n <= 0); 135991#L26 call #t~ret0 := fact(~n - 1);< 136240#$Ultimate##0 ~n := #in~n; 136244#L25 assume ~n <= 0;#res := 1; 136243#factFINAL assume true; 136237#factEXIT >#66#return; 136235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136232#factFINAL assume true; 135982#factEXIT >#66#return; 135999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136197#factFINAL assume true; 136185#factEXIT >#66#return; 136190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136393#factFINAL assume true; 136218#factEXIT >#66#return; 136219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 135944#factFINAL assume true; 135955#factEXIT >#72#return; 135962#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 136254#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 136253#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 136252#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 136251#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 136145#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 136165#$Ultimate##0 ~n := #in~n; 136226#L25 assume !(~n <= 0); 136038#L26 call #t~ret0 := fact(~n - 1);< 136217#$Ultimate##0 ~n := #in~n; 136213#L25 assume !(~n <= 0); 135989#L26 call #t~ret0 := fact(~n - 1);< 136202#$Ultimate##0 ~n := #in~n; 136620#L25 assume !(~n <= 0); 136238#L26 call #t~ret0 := fact(~n - 1);< 136239#$Ultimate##0 ~n := #in~n; 136244#L25 assume ~n <= 0;#res := 1; 136243#factFINAL assume true; 136237#factEXIT >#66#return; 136235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136232#factFINAL assume true; 135982#factEXIT >#66#return; 135999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136197#factFINAL assume true; 136185#factEXIT >#66#return; 136181#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136164#factFINAL assume true; 136141#factEXIT >#68#return; 135877#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 135943#$Ultimate##0 ~n := #in~n; 136054#L25 assume !(~n <= 0); 135985#L26 call #t~ret0 := fact(~n - 1);< 136043#$Ultimate##0 ~n := #in~n; 136242#L25 assume !(~n <= 0); 135991#L26 call #t~ret0 := fact(~n - 1);< 136240#$Ultimate##0 ~n := #in~n; 136244#L25 assume ~n <= 0;#res := 1; 136243#factFINAL assume true; 136237#factEXIT >#66#return; 136235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136232#factFINAL assume true; 135982#factEXIT >#66#return; 135998#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136019#factFINAL assume true; 136017#factEXIT >#70#return; 135892#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 135907#$Ultimate##0 ~n := #in~n; 135909#L25 assume !(~n <= 0); 135910#L26 call #t~ret0 := fact(~n - 1);< 136042#$Ultimate##0 ~n := #in~n; 136053#L25 assume ~n <= 0;#res := 1; 136046#factFINAL assume true; 136036#factEXIT >#66#return; 136039#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136078#factFINAL assume true; 136060#factEXIT >#72#return; 136063#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 136250#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 136249#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 136248#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 136247#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 136147#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 136165#$Ultimate##0 ~n := #in~n; 136226#L25 assume !(~n <= 0); 136038#L26 call #t~ret0 := fact(~n - 1);< 136217#$Ultimate##0 ~n := #in~n; 136213#L25 assume !(~n <= 0); 135989#L26 call #t~ret0 := fact(~n - 1);< 136202#$Ultimate##0 ~n := #in~n; 136620#L25 assume !(~n <= 0); 136238#L26 call #t~ret0 := fact(~n - 1);< 136239#$Ultimate##0 ~n := #in~n; 136244#L25 assume ~n <= 0;#res := 1; 136243#factFINAL assume true; 136237#factEXIT >#66#return; 136235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136232#factFINAL assume true; 135982#factEXIT >#66#return; 135999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136197#factFINAL assume true; 136185#factEXIT >#66#return; 136181#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136164#factFINAL assume true; 136141#factEXIT >#68#return; 135879#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 135943#$Ultimate##0 ~n := #in~n; 136054#L25 assume !(~n <= 0); 135985#L26 call #t~ret0 := fact(~n - 1);< 136043#$Ultimate##0 ~n := #in~n; 136242#L25 assume !(~n <= 0); 135991#L26 call #t~ret0 := fact(~n - 1);< 136240#$Ultimate##0 ~n := #in~n; 136242#L25 assume !(~n <= 0); 135991#L26 call #t~ret0 := fact(~n - 1);< 136240#$Ultimate##0 ~n := #in~n; 136242#L25 assume !(~n <= 0); 135991#L26 call #t~ret0 := fact(~n - 1);< 136240#$Ultimate##0 ~n := #in~n; 136244#L25 assume ~n <= 0;#res := 1; 136243#factFINAL assume true; 136237#factEXIT >#66#return; 136235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136232#factFINAL assume true; 135982#factEXIT >#66#return; 135999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136197#factFINAL assume true; 136185#factEXIT >#66#return; 136190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136393#factFINAL assume true; 136218#factEXIT >#66#return; 136219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 135944#factFINAL assume true; 135955#factEXIT >#70#return; 135898#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 135907#$Ultimate##0 ~n := #in~n; 135909#L25 assume ~n <= 0;#res := 1; 135908#factFINAL assume true; 135873#factEXIT >#72#return; 135836#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 135837#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 135850#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 136747#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 135846#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 135847#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 137043#$Ultimate##0 ~n := #in~n; 137044#L25 assume !(~n <= 0); 136997#L26 call #t~ret0 := fact(~n - 1);< 137004#$Ultimate##0 ~n := #in~n; 137007#L25 assume !(~n <= 0); 137001#L26 call #t~ret0 := fact(~n - 1);< 137006#$Ultimate##0 ~n := #in~n; 137007#L25 assume !(~n <= 0); 137001#L26 call #t~ret0 := fact(~n - 1);< 137006#$Ultimate##0 ~n := #in~n; 137007#L25 assume !(~n <= 0); 137001#L26 call #t~ret0 := fact(~n - 1);< 137006#$Ultimate##0 ~n := #in~n; 137008#L25 assume ~n <= 0;#res := 1; 137015#factFINAL assume true; 137014#factEXIT >#66#return; 137013#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 137012#factFINAL assume true; 137009#factEXIT >#66#return; 137011#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 137262#factFINAL assume true; 137256#factEXIT >#66#return; 137003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 137005#factFINAL assume true; 136994#factEXIT >#66#return; 136976#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136965#factFINAL assume true; 136770#factEXIT >#74#return; 135791#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 136966#$Ultimate##0 ~n := #in~n; 137264#L25 assume !(~n <= 0); 136998#L26 call #t~ret0 := fact(~n - 1);< 137004#$Ultimate##0 ~n := #in~n; 137007#L25 assume !(~n <= 0); 137001#L26 call #t~ret0 := fact(~n - 1);< 137006#$Ultimate##0 ~n := #in~n; 137007#L25 assume !(~n <= 0); 137001#L26 call #t~ret0 := fact(~n - 1);< 137006#$Ultimate##0 ~n := #in~n; 137007#L25 assume !(~n <= 0); 137001#L26 call #t~ret0 := fact(~n - 1);< 137006#$Ultimate##0 ~n := #in~n; 137008#L25 assume ~n <= 0;#res := 1; 137015#factFINAL assume true; 137014#factEXIT >#66#return; 137013#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 137012#factFINAL assume true; 137009#factEXIT >#66#return; 137011#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 137262#factFINAL assume true; 137256#factEXIT >#66#return; 137003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 137005#factFINAL assume true; 136994#factEXIT >#66#return; 136976#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 136965#factFINAL assume true; 136770#factEXIT >#76#return; 135794#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 135866#$Ultimate##0 ~n := #in~n; 135859#L25 assume !(~n <= 0); 135860#L26 call #t~ret0 := fact(~n - 1);< 135829#$Ultimate##0 ~n := #in~n; 137236#L25 assume ~n <= 0;#res := 1; 137235#factFINAL assume true; 137231#factEXIT >#66#return; 137232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 137266#factFINAL assume true; 137248#factEXIT >#78#return; 135793#L30-8 [2023-02-18 08:56:18,248 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:18,248 INFO L85 PathProgramCache]: Analyzing trace with hash 1931448586, now seen corresponding path program 29 times [2023-02-18 08:56:18,248 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:18,248 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1935253945] [2023-02-18 08:56:18,249 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:18,249 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:18,255 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:18,255 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [495669421] [2023-02-18 08:56:18,255 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:56:18,256 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:18,256 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:18,259 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-18 08:56:18,259 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-18 08:56:18,424 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 15 check-sat command(s) [2023-02-18 08:56:18,425 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:18,427 INFO L263 TraceCheckSpWp]: Trace formula consists of 644 conjuncts, 11 conjunts are in the unsatisfiable core [2023-02-18 08:56:18,429 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:18,451 INFO L134 CoverageAnalysis]: Checked inductivity of 5447 backedges. 2753 proven. 24 refuted. 0 times theorem prover too weak. 2670 trivial. 0 not checked. [2023-02-18 08:56:18,451 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:18,519 INFO L134 CoverageAnalysis]: Checked inductivity of 5447 backedges. 277 proven. 146 refuted. 0 times theorem prover too weak. 5024 trivial. 0 not checked. [2023-02-18 08:56:18,519 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:18,519 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1935253945] [2023-02-18 08:56:18,519 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:18,519 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [495669421] [2023-02-18 08:56:18,519 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [495669421] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:18,519 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:18,519 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 9] total 12 [2023-02-18 08:56:18,520 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1724287230] [2023-02-18 08:56:18,520 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:18,520 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:56:18,520 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:18,520 INFO L85 PathProgramCache]: Analyzing trace with hash 22707013, now seen corresponding path program 30 times [2023-02-18 08:56:18,520 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:18,520 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [714567844] [2023-02-18 08:56:18,520 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:18,521 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:18,527 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:18,527 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [879111476] [2023-02-18 08:56:18,527 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:56:18,527 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:18,527 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:18,529 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-18 08:56:18,529 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-18 08:56:18,748 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 17 check-sat command(s) [2023-02-18 08:56:18,748 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:18,750 INFO L263 TraceCheckSpWp]: Trace formula consists of 695 conjuncts, 17 conjunts are in the unsatisfiable core [2023-02-18 08:56:18,753 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:18,806 INFO L134 CoverageAnalysis]: Checked inductivity of 6425 backedges. 2680 proven. 363 refuted. 0 times theorem prover too weak. 3382 trivial. 0 not checked. [2023-02-18 08:56:18,807 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:18,914 INFO L134 CoverageAnalysis]: Checked inductivity of 6425 backedges. 322 proven. 588 refuted. 0 times theorem prover too weak. 5515 trivial. 0 not checked. [2023-02-18 08:56:18,914 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:18,914 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [714567844] [2023-02-18 08:56:18,915 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:18,915 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [879111476] [2023-02-18 08:56:18,915 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [879111476] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:18,915 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:18,915 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 18 [2023-02-18 08:56:18,915 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1993999483] [2023-02-18 08:56:18,915 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:18,916 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:18,916 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:18,916 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2023-02-18 08:56:18,916 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=27, Invalid=105, Unknown=0, NotChecked=0, Total=132 [2023-02-18 08:56:18,917 INFO L87 Difference]: Start difference. First operand 1731 states and 2562 transitions. cyclomatic complexity: 856 Second operand has 12 states, 9 states have (on average 5.555555555555555) internal successors, (50), 12 states have internal predecessors, (50), 7 states have call successors, (23), 2 states have call predecessors, (23), 4 states have return successors, (23), 5 states have call predecessors, (23), 7 states have call successors, (23) [2023-02-18 08:56:19,101 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:19,101 INFO L93 Difference]: Finished difference Result 1449 states and 2106 transitions. [2023-02-18 08:56:19,102 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1449 states and 2106 transitions. [2023-02-18 08:56:19,107 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 180 [2023-02-18 08:56:19,114 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1449 states to 1341 states and 1992 transitions. [2023-02-18 08:56:19,115 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 124 [2023-02-18 08:56:19,115 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 136 [2023-02-18 08:56:19,115 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1341 states and 1992 transitions. [2023-02-18 08:56:19,115 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:19,115 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1341 states and 1992 transitions. [2023-02-18 08:56:19,116 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1341 states and 1992 transitions. [2023-02-18 08:56:19,129 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1341 to 1341. [2023-02-18 08:56:19,131 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 1341 states, 836 states have (on average 1.0502392344497609) internal successors, (878), 836 states have internal predecessors, (878), 379 states have call successors, (385), 118 states have call predecessors, (385), 126 states have return successors, (729), 386 states have call predecessors, (729), 379 states have call successors, (729) [2023-02-18 08:56:19,135 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1341 states to 1341 states and 1992 transitions. [2023-02-18 08:56:19,136 INFO L240 hiAutomatonCegarLoop]: Abstraction has 1341 states and 1992 transitions. [2023-02-18 08:56:19,136 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2023-02-18 08:56:19,136 INFO L428 stractBuchiCegarLoop]: Abstraction has 1341 states and 1992 transitions. [2023-02-18 08:56:19,136 INFO L335 stractBuchiCegarLoop]: ======== Iteration 43 ============ [2023-02-18 08:56:19,137 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 1341 states and 1992 transitions. [2023-02-18 08:56:19,139 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 180 [2023-02-18 08:56:19,139 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:19,139 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:19,140 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [51, 51, 27, 27, 27, 27, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:19,141 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [44, 44, 29, 29, 29, 29, 15, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:19,141 INFO L748 eck$LassoCheckResult]: Stem: 142902#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 142853#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; 142854#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 142880#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; 142903#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 143186#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 143183#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 143178#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 143179#$Ultimate##0 ~n := #in~n; 143185#L25 assume ~n <= 0;#res := 1; 143182#factFINAL assume true; 143177#factEXIT >#68#return; 143172#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 143173#$Ultimate##0 ~n := #in~n; 143181#L25 assume ~n <= 0;#res := 1; 143176#factFINAL assume true; 143171#factEXIT >#70#return; 143167#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 143168#$Ultimate##0 ~n := #in~n; 143175#L25 assume ~n <= 0;#res := 1; 143170#factFINAL assume true; 143166#factEXIT >#72#return; 143163#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 143156#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 143152#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 143146#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 143137#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 143132#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 143133#$Ultimate##0 ~n := #in~n; 143155#L25 assume !(~n <= 0); 143150#L26 call #t~ret0 := fact(~n - 1);< 143151#$Ultimate##0 ~n := #in~n; 143162#L25 assume ~n <= 0;#res := 1; 143154#factFINAL assume true; 143149#factEXIT >#66#return; 143145#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143136#factFINAL assume true; 143131#factEXIT >#74#return; 143126#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 143128#$Ultimate##0 ~n := #in~n; 143235#L25 assume ~n <= 0;#res := 1; 143231#factFINAL assume true; 143229#factEXIT >#76#return; 143224#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 143225#$Ultimate##0 ~n := #in~n; 143237#L25 assume !(~n <= 0); 143233#L26 call #t~ret0 := fact(~n - 1);< 143234#$Ultimate##0 ~n := #in~n; 143238#L25 assume ~n <= 0;#res := 1; 143236#factFINAL assume true; 143232#factEXIT >#66#return; 143230#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143228#factFINAL assume true; 143223#factEXIT >#78#return; 143219#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 143192#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 143191#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 143189#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 143187#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 143090#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 143093#$Ultimate##0 ~n := #in~n; 143148#L25 assume !(~n <= 0); 143139#L26 call #t~ret0 := fact(~n - 1);< 143144#$Ultimate##0 ~n := #in~n; 143161#L25 assume !(~n <= 0); 143140#L26 call #t~ret0 := fact(~n - 1);< 143160#$Ultimate##0 ~n := #in~n; 143184#L25 assume ~n <= 0;#res := 1; 143180#factFINAL assume true; 143174#factEXIT >#66#return; 143169#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143164#factFINAL assume true; 143157#factEXIT >#66#return; 143158#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143195#factFINAL assume true; 143118#factEXIT >#74#return; 143075#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 143078#$Ultimate##0 ~n := #in~n; 143190#L25 assume ~n <= 0;#res := 1; 143188#factFINAL assume true; 143074#factEXIT >#76#return; 143031#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 143032#$Ultimate##0 ~n := #in~n; 143215#L25 assume !(~n <= 0); 143101#L26 call #t~ret0 := fact(~n - 1);< 143104#$Ultimate##0 ~n := #in~n; 143214#L25 assume !(~n <= 0); 143100#L26 call #t~ret0 := fact(~n - 1);< 143208#$Ultimate##0 ~n := #in~n; 143213#L25 assume ~n <= 0;#res := 1; 143211#factFINAL assume true; 143207#factEXIT >#66#return; 143205#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143111#factFINAL assume true; 143107#factEXIT >#66#return; 143109#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 144133#factFINAL assume true; 144132#factEXIT >#78#return; 143025#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 143023#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 143020#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 143014#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 143009#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 142984#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 142986#$Ultimate##0 ~n := #in~n; 143006#L25 assume !(~n <= 0); 143000#L26 call #t~ret0 := fact(~n - 1);< 143004#$Ultimate##0 ~n := #in~n; 143019#L25 assume !(~n <= 0); 142999#L26 call #t~ret0 := fact(~n - 1);< 143017#$Ultimate##0 ~n := #in~n; 143019#L25 assume !(~n <= 0); 142999#L26 call #t~ret0 := fact(~n - 1);< 143017#$Ultimate##0 ~n := #in~n; 143019#L25 assume !(~n <= 0); 142999#L26 call #t~ret0 := fact(~n - 1);< 143017#$Ultimate##0 ~n := #in~n; 143040#L25 assume ~n <= 0;#res := 1; 143036#factFINAL assume true; 143026#factEXIT >#66#return; 143024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143021#factFINAL assume true; 143016#factEXIT >#66#return; 143012#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143007#factFINAL assume true; 142998#factEXIT >#66#return; 143003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143018#factFINAL assume true; 143013#factEXIT >#66#return; 143008#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 142989#factFINAL assume true; 142982#factEXIT >#74#return; 142985#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 142991#$Ultimate##0 ~n := #in~n; 143015#L25 assume ~n <= 0;#res := 1; 143011#factFINAL assume true; 142990#factEXIT >#76#return; 142983#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 142986#$Ultimate##0 ~n := #in~n; 143006#L25 assume !(~n <= 0); 143000#L26 call #t~ret0 := fact(~n - 1);< 143004#$Ultimate##0 ~n := #in~n; 143019#L25 assume !(~n <= 0); 142999#L26 call #t~ret0 := fact(~n - 1);< 143017#$Ultimate##0 ~n := #in~n; 143019#L25 assume !(~n <= 0); 142999#L26 call #t~ret0 := fact(~n - 1);< 143017#$Ultimate##0 ~n := #in~n; 143040#L25 assume ~n <= 0;#res := 1; 143036#factFINAL assume true; 143026#factEXIT >#66#return; 143024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143021#factFINAL assume true; 143016#factEXIT >#66#return; 143012#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143007#factFINAL assume true; 142998#factEXIT >#66#return; 142996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 142995#factFINAL assume true; 142988#factEXIT >#78#return; 142979#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 142978#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 142977#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 142976#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 142877#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 142869#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 142870#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 142889#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 142812#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 143399#$Ultimate##0 ~n := #in~n; 143427#L25 assume !(~n <= 0); 143408#L26 call #t~ret0 := fact(~n - 1);< 143420#$Ultimate##0 ~n := #in~n; 143428#L25 assume ~n <= 0;#res := 1; 143421#factFINAL assume true; 143406#factEXIT >#66#return; 143404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143402#factFINAL assume true; 143398#factEXIT >#68#return; 143390#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 143395#$Ultimate##0 ~n := #in~n; 143401#L25 assume ~n <= 0;#res := 1; 143397#factFINAL assume true; 143388#factEXIT >#70#return; 143375#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 143381#$Ultimate##0 ~n := #in~n; 143379#L25 assume !(~n <= 0); 143300#L26 call #t~ret0 := fact(~n - 1);< 143339#$Ultimate##0 ~n := #in~n; 143372#L25 assume ~n <= 0;#res := 1; 143367#factFINAL assume true; 143359#factEXIT >#66#return; 143362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143522#factFINAL assume true; 143521#factEXIT >#72#return; 143520#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 143519#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 143517#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 143516#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 143515#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 143294#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 143297#$Ultimate##0 ~n := #in~n; 143342#L25 assume !(~n <= 0); 143309#L26 call #t~ret0 := fact(~n - 1);< 143339#$Ultimate##0 ~n := #in~n; 143372#L25 assume ~n <= 0;#res := 1; 143367#factFINAL assume true; 143359#factEXIT >#66#return; 143364#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143518#factFINAL assume true; 143514#factEXIT >#68#return; 143262#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 143287#$Ultimate##0 ~n := #in~n; 143371#L25 assume !(~n <= 0); 143310#L26 call #t~ret0 := fact(~n - 1);< 143366#$Ultimate##0 ~n := #in~n; 143372#L25 assume ~n <= 0;#res := 1; 143367#factFINAL assume true; 143359#factEXIT >#66#return; 143358#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143352#factFINAL assume true; 143344#factEXIT >#70#return; 142948#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 142942#$Ultimate##0 ~n := #in~n; 142957#L25 assume ~n <= 0;#res := 1; 142947#factFINAL assume true; 142953#factEXIT >#72#return; 143335#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 143333#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 143331#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 143326#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 143319#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 143260#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 143287#$Ultimate##0 ~n := #in~n; 143371#L25 assume !(~n <= 0); 143310#L26 call #t~ret0 := fact(~n - 1);< 143366#$Ultimate##0 ~n := #in~n; 143355#L25 assume !(~n <= 0); 143312#L26 call #t~ret0 := fact(~n - 1);< 143330#$Ultimate##0 ~n := #in~n; 143334#L25 assume ~n <= 0;#res := 1; 143332#factFINAL assume true; 143327#factEXIT >#66#return; 143325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143323#factFINAL assume true; 143299#factEXIT >#66#return; 143298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143288#factFINAL assume true; 143241#factEXIT >#74#return; 143243#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 143287#$Ultimate##0 ~n := #in~n; 143371#L25 assume !(~n <= 0); 143310#L26 call #t~ret0 := fact(~n - 1);< 143366#$Ultimate##0 ~n := #in~n; 143372#L25 assume ~n <= 0;#res := 1; 143367#factFINAL assume true; 143359#factEXIT >#66#return; 143358#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143352#factFINAL assume true; 143344#factEXIT >#76#return; 143268#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 143353#$Ultimate##0 ~n := #in~n; 143369#L25 assume !(~n <= 0); 143360#L26 call #t~ret0 := fact(~n - 1);< 143365#$Ultimate##0 ~n := #in~n; 143372#L25 assume ~n <= 0;#res := 1; 143367#factFINAL assume true; 143359#factEXIT >#66#return; 143358#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143352#factFINAL assume true; 143344#factEXIT >#78#return; 143345#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 144094#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 144048#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 144041#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 143744#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 143619#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 143612#$Ultimate##0 ~n := #in~n; 144079#L25 assume !(~n <= 0); 142803#L26 call #t~ret0 := fact(~n - 1);< 143752#$Ultimate##0 ~n := #in~n; 143775#L25 assume !(~n <= 0); 142801#L26 call #t~ret0 := fact(~n - 1);< 143773#$Ultimate##0 ~n := #in~n; 143775#L25 assume !(~n <= 0); 142801#L26 call #t~ret0 := fact(~n - 1);< 143773#$Ultimate##0 ~n := #in~n; 143777#L25 assume ~n <= 0;#res := 1; 143788#factFINAL assume true; 143785#factEXIT >#66#return; 143783#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143772#factFINAL assume true; 143749#factEXIT >#66#return; 143751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 144089#factFINAL assume true; 144084#factEXIT >#66#return; 144083#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 144082#factFINAL assume true; 144053#factEXIT >#74#return; 143614#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 143612#$Ultimate##0 ~n := #in~n; 144079#L25 assume !(~n <= 0); 142803#L26 call #t~ret0 := fact(~n - 1);< 143752#$Ultimate##0 ~n := #in~n; 143720#L25 assume ~n <= 0;#res := 1; 143716#factFINAL assume true; 143707#factEXIT >#66#return; 143710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 144057#factFINAL assume true; 144054#factEXIT >#76#return; 143618#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 143612#$Ultimate##0 ~n := #in~n; 144079#L25 assume !(~n <= 0); 142803#L26 call #t~ret0 := fact(~n - 1);< 143752#$Ultimate##0 ~n := #in~n; 143775#L25 assume !(~n <= 0); 142801#L26 call #t~ret0 := fact(~n - 1);< 143773#$Ultimate##0 ~n := #in~n; 143777#L25 assume ~n <= 0;#res := 1; 143788#factFINAL assume true; 143785#factEXIT >#66#return; 143783#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143772#factFINAL assume true; 143749#factEXIT >#66#return; 143747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143745#factFINAL assume true; 143613#factEXIT >#78#return; 143609#L30-8 [2023-02-18 08:56:19,141 INFO L750 eck$LassoCheckResult]: Loop: 143609#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 143608#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 143607#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 143606#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 143605#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 143604#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 143603#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 143602#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 142817#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 142818#$Ultimate##0 ~n := #in~n; 143627#L25 assume !(~n <= 0); 143313#L26 call #t~ret0 := fact(~n - 1);< 143366#$Ultimate##0 ~n := #in~n; 143355#L25 assume !(~n <= 0); 143312#L26 call #t~ret0 := fact(~n - 1);< 143330#$Ultimate##0 ~n := #in~n; 143355#L25 assume !(~n <= 0); 143312#L26 call #t~ret0 := fact(~n - 1);< 143330#$Ultimate##0 ~n := #in~n; 143334#L25 assume ~n <= 0;#res := 1; 143332#factFINAL assume true; 143327#factEXIT >#66#return; 143325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143323#factFINAL assume true; 143299#factEXIT >#66#return; 143316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143599#factFINAL assume true; 143584#factEXIT >#66#return; 143588#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143686#factFINAL assume true; 143684#factEXIT >#68#return; 143594#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 143598#$Ultimate##0 ~n := #in~n; 143628#L25 assume ~n <= 0;#res := 1; 143626#factFINAL assume true; 143593#factEXIT >#70#return; 143565#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 143571#$Ultimate##0 ~n := #in~n; 143591#L25 assume !(~n <= 0); 143324#L26 call #t~ret0 := fact(~n - 1);< 143589#$Ultimate##0 ~n := #in~n; 143629#L25 assume !(~n <= 0); 143307#L26 call #t~ret0 := fact(~n - 1);< 143318#$Ultimate##0 ~n := #in~n; 143355#L25 assume !(~n <= 0); 143312#L26 call #t~ret0 := fact(~n - 1);< 143330#$Ultimate##0 ~n := #in~n; 143334#L25 assume ~n <= 0;#res := 1; 143332#factFINAL assume true; 143327#factEXIT >#66#return; 143325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143323#factFINAL assume true; 143299#factEXIT >#66#return; 143316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143599#factFINAL assume true; 143584#factEXIT >#66#return; 143575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143581#factFINAL assume true; 143563#factEXIT >#72#return; 143568#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 143682#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 143681#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 143680#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 143679#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 143502#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 143512#$Ultimate##0 ~n := #in~n; 143508#L25 assume !(~n <= 0); 143354#L26 call #t~ret0 := fact(~n - 1);< 143501#$Ultimate##0 ~n := #in~n; 143500#L25 assume !(~n <= 0); 143311#L26 call #t~ret0 := fact(~n - 1);< 143351#$Ultimate##0 ~n := #in~n; 143349#L25 assume !(~n <= 0); 143328#L26 call #t~ret0 := fact(~n - 1);< 143329#$Ultimate##0 ~n := #in~n; 143334#L25 assume ~n <= 0;#res := 1; 143332#factFINAL assume true; 143327#factEXIT >#66#return; 143325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143323#factFINAL assume true; 143299#factEXIT >#66#return; 143316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143599#factFINAL assume true; 143584#factEXIT >#66#return; 143587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143625#factFINAL assume true; 143624#factEXIT >#68#return; 142909#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 143086#$Ultimate##0 ~n := #in~n; 143357#L25 assume !(~n <= 0); 143301#L26 call #t~ret0 := fact(~n - 1);< 143366#$Ultimate##0 ~n := #in~n; 143372#L25 assume ~n <= 0;#res := 1; 143367#factFINAL assume true; 143359#factEXIT >#66#return; 143363#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143579#factFINAL assume true; 143548#factEXIT >#70#return; 142925#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 143086#$Ultimate##0 ~n := #in~n; 143357#L25 assume !(~n <= 0); 143301#L26 call #t~ret0 := fact(~n - 1);< 143366#$Ultimate##0 ~n := #in~n; 143355#L25 assume !(~n <= 0); 143312#L26 call #t~ret0 := fact(~n - 1);< 143330#$Ultimate##0 ~n := #in~n; 143334#L25 assume ~n <= 0;#res := 1; 143332#factFINAL assume true; 143327#factEXIT >#66#return; 143325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143323#factFINAL assume true; 143299#factEXIT >#66#return; 143315#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143523#factFINAL assume true; 143271#factEXIT >#72#return; 143281#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 143674#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 143673#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 143672#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 143671#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 143504#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 143512#$Ultimate##0 ~n := #in~n; 143508#L25 assume !(~n <= 0); 143354#L26 call #t~ret0 := fact(~n - 1);< 143501#$Ultimate##0 ~n := #in~n; 143500#L25 assume !(~n <= 0); 143311#L26 call #t~ret0 := fact(~n - 1);< 143351#$Ultimate##0 ~n := #in~n; 143349#L25 assume !(~n <= 0); 143328#L26 call #t~ret0 := fact(~n - 1);< 143329#$Ultimate##0 ~n := #in~n; 143334#L25 assume ~n <= 0;#res := 1; 143332#factFINAL assume true; 143327#factEXIT >#66#return; 143325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143323#factFINAL assume true; 143299#factEXIT >#66#return; 143316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143599#factFINAL assume true; 143584#factEXIT >#66#return; 143587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143625#factFINAL assume true; 143624#factEXIT >#68#return; 142915#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 143086#$Ultimate##0 ~n := #in~n; 143357#L25 assume !(~n <= 0); 143301#L26 call #t~ret0 := fact(~n - 1);< 143366#$Ultimate##0 ~n := #in~n; 143355#L25 assume !(~n <= 0); 143312#L26 call #t~ret0 := fact(~n - 1);< 143330#$Ultimate##0 ~n := #in~n; 143334#L25 assume ~n <= 0;#res := 1; 143332#factFINAL assume true; 143327#factEXIT >#66#return; 143325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143323#factFINAL assume true; 143299#factEXIT >#66#return; 143315#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143523#factFINAL assume true; 143271#factEXIT >#70#return; 142928#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 143376#$Ultimate##0 ~n := #in~n; 143373#L25 assume !(~n <= 0); 143361#L26 call #t~ret0 := fact(~n - 1);< 143365#$Ultimate##0 ~n := #in~n; 143372#L25 assume ~n <= 0;#res := 1; 143367#factFINAL assume true; 143359#factEXIT >#66#return; 143363#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143579#factFINAL assume true; 143548#factEXIT >#72#return; 143549#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 143666#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 143665#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 143664#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 143663#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 143505#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 143512#$Ultimate##0 ~n := #in~n; 143508#L25 assume !(~n <= 0); 143354#L26 call #t~ret0 := fact(~n - 1);< 143501#$Ultimate##0 ~n := #in~n; 143500#L25 assume !(~n <= 0); 143311#L26 call #t~ret0 := fact(~n - 1);< 143351#$Ultimate##0 ~n := #in~n; 143349#L25 assume !(~n <= 0); 143328#L26 call #t~ret0 := fact(~n - 1);< 143329#$Ultimate##0 ~n := #in~n; 143334#L25 assume ~n <= 0;#res := 1; 143332#factFINAL assume true; 143327#factEXIT >#66#return; 143325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143323#factFINAL assume true; 143299#factEXIT >#66#return; 143316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143599#factFINAL assume true; 143584#factEXIT >#66#return; 143587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143625#factFINAL assume true; 143624#factEXIT >#68#return; 142911#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 143086#$Ultimate##0 ~n := #in~n; 143357#L25 assume !(~n <= 0); 143301#L26 call #t~ret0 := fact(~n - 1);< 143366#$Ultimate##0 ~n := #in~n; 143355#L25 assume !(~n <= 0); 143312#L26 call #t~ret0 := fact(~n - 1);< 143330#$Ultimate##0 ~n := #in~n; 143334#L25 assume ~n <= 0;#res := 1; 143332#factFINAL assume true; 143327#factEXIT >#66#return; 143325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143323#factFINAL assume true; 143299#factEXIT >#66#return; 143315#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143523#factFINAL assume true; 143271#factEXIT >#70#return; 142924#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 143376#$Ultimate##0 ~n := #in~n; 143373#L25 assume ~n <= 0;#res := 1; 143356#factFINAL assume true; 142906#factEXIT >#72#return; 142940#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 144093#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 144092#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 144091#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 144090#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 142859#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 144040#$Ultimate##0 ~n := #in~n; 143944#L25 assume !(~n <= 0); 142799#L26 call #t~ret0 := fact(~n - 1);< 142862#$Ultimate##0 ~n := #in~n; 143775#L25 assume !(~n <= 0); 142801#L26 call #t~ret0 := fact(~n - 1);< 143773#$Ultimate##0 ~n := #in~n; 143775#L25 assume !(~n <= 0); 142801#L26 call #t~ret0 := fact(~n - 1);< 143773#$Ultimate##0 ~n := #in~n; 143777#L25 assume ~n <= 0;#res := 1; 143788#factFINAL assume true; 143785#factEXIT >#66#return; 143783#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143772#factFINAL assume true; 143749#factEXIT >#66#return; 143751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 144089#factFINAL assume true; 144084#factEXIT >#66#return; 144085#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 144047#factFINAL assume true; 143067#factEXIT >#74#return; 142892#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 142895#$Ultimate##0 ~n := #in~n; 142891#L25 assume !(~n <= 0); 142800#L26 call #t~ret0 := fact(~n - 1);< 142862#$Ultimate##0 ~n := #in~n; 143775#L25 assume !(~n <= 0); 142801#L26 call #t~ret0 := fact(~n - 1);< 143773#$Ultimate##0 ~n := #in~n; 143777#L25 assume ~n <= 0;#res := 1; 143788#factFINAL assume true; 143785#factEXIT >#66#return; 143783#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143772#factFINAL assume true; 143749#factEXIT >#66#return; 143750#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 144086#factFINAL assume true; 144051#factEXIT >#76#return; 143073#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 143622#$Ultimate##0 ~n := #in~n; 144102#L25 assume !(~n <= 0); 143709#L26 call #t~ret0 := fact(~n - 1);< 143711#$Ultimate##0 ~n := #in~n; 143720#L25 assume ~n <= 0;#res := 1; 143716#factFINAL assume true; 143707#factEXIT >#66#return; 143695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 143692#factFINAL assume true; 143610#factEXIT >#78#return; 143609#L30-8 [2023-02-18 08:56:19,142 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:19,142 INFO L85 PathProgramCache]: Analyzing trace with hash -168556198, now seen corresponding path program 30 times [2023-02-18 08:56:19,142 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:19,142 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1776034575] [2023-02-18 08:56:19,142 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:19,142 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:19,149 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:19,149 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [566301804] [2023-02-18 08:56:19,149 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:56:19,149 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:19,150 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:19,152 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-18 08:56:19,153 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-18 08:56:19,357 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 17 check-sat command(s) [2023-02-18 08:56:19,357 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:19,360 INFO L263 TraceCheckSpWp]: Trace formula consists of 748 conjuncts, 15 conjunts are in the unsatisfiable core [2023-02-18 08:56:19,363 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:19,392 INFO L134 CoverageAnalysis]: Checked inductivity of 5945 backedges. 3159 proven. 29 refuted. 0 times theorem prover too weak. 2757 trivial. 0 not checked. [2023-02-18 08:56:19,392 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:19,465 INFO L134 CoverageAnalysis]: Checked inductivity of 5945 backedges. 339 proven. 546 refuted. 0 times theorem prover too weak. 5060 trivial. 0 not checked. [2023-02-18 08:56:19,465 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:19,465 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1776034575] [2023-02-18 08:56:19,465 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:19,465 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [566301804] [2023-02-18 08:56:19,465 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [566301804] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:19,465 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:19,466 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 16 [2023-02-18 08:56:19,466 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1585091806] [2023-02-18 08:56:19,466 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:19,466 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:56:19,466 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:19,466 INFO L85 PathProgramCache]: Analyzing trace with hash -1540250419, now seen corresponding path program 31 times [2023-02-18 08:56:19,466 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:19,466 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1152474005] [2023-02-18 08:56:19,466 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:19,466 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:19,471 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:19,471 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1142821049] [2023-02-18 08:56:19,471 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:56:19,471 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:19,472 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:19,473 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-18 08:56:19,480 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-18 08:56:19,616 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:56:19,617 INFO L263 TraceCheckSpWp]: Trace formula consists of 611 conjuncts, 13 conjunts are in the unsatisfiable core [2023-02-18 08:56:19,619 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:19,651 INFO L134 CoverageAnalysis]: Checked inductivity of 4661 backedges. 2058 proven. 13 refuted. 0 times theorem prover too weak. 2590 trivial. 0 not checked. [2023-02-18 08:56:19,651 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:19,710 INFO L134 CoverageAnalysis]: Checked inductivity of 4661 backedges. 422 proven. 131 refuted. 0 times theorem prover too weak. 4108 trivial. 0 not checked. [2023-02-18 08:56:19,710 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:19,711 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1152474005] [2023-02-18 08:56:19,711 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:19,711 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1142821049] [2023-02-18 08:56:19,711 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1142821049] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:19,711 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:19,711 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 13] total 14 [2023-02-18 08:56:19,711 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [766153828] [2023-02-18 08:56:19,711 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:19,711 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:19,711 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:19,712 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2023-02-18 08:56:19,712 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=139, Unknown=0, NotChecked=0, Total=182 [2023-02-18 08:56:19,712 INFO L87 Difference]: Start difference. First operand 1341 states and 1992 transitions. cyclomatic complexity: 668 Second operand has 14 states, 13 states have (on average 4.0) internal successors, (52), 14 states have internal predecessors, (52), 9 states have call successors, (24), 2 states have call predecessors, (24), 5 states have return successors, (25), 8 states have call predecessors, (25), 9 states have call successors, (25) [2023-02-18 08:56:19,989 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:19,989 INFO L93 Difference]: Finished difference Result 1415 states and 2052 transitions. [2023-02-18 08:56:19,989 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1415 states and 2052 transitions. [2023-02-18 08:56:19,995 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 210 [2023-02-18 08:56:20,003 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1415 states to 1415 states and 2052 transitions. [2023-02-18 08:56:20,003 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 136 [2023-02-18 08:56:20,003 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 136 [2023-02-18 08:56:20,003 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1415 states and 2052 transitions. [2023-02-18 08:56:20,003 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:20,004 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1415 states and 2052 transitions. [2023-02-18 08:56:20,004 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1415 states and 2052 transitions. [2023-02-18 08:56:20,019 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1415 to 1341. [2023-02-18 08:56:20,021 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 1341 states, 836 states have (on average 1.0502392344497609) internal successors, (878), 836 states have internal predecessors, (878), 379 states have call successors, (385), 118 states have call predecessors, (385), 126 states have return successors, (713), 386 states have call predecessors, (713), 379 states have call successors, (713) [2023-02-18 08:56:20,025 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1341 states to 1341 states and 1976 transitions. [2023-02-18 08:56:20,025 INFO L240 hiAutomatonCegarLoop]: Abstraction has 1341 states and 1976 transitions. [2023-02-18 08:56:20,025 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2023-02-18 08:56:20,026 INFO L428 stractBuchiCegarLoop]: Abstraction has 1341 states and 1976 transitions. [2023-02-18 08:56:20,026 INFO L335 stractBuchiCegarLoop]: ======== Iteration 44 ============ [2023-02-18 08:56:20,026 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 1341 states and 1976 transitions. [2023-02-18 08:56:20,029 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 180 [2023-02-18 08:56:20,029 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:20,029 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:20,030 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:20,030 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [46, 46, 31, 31, 31, 31, 15, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:20,030 INFO L748 eck$LassoCheckResult]: Stem: 149292#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 149237#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; 149238#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 149260#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; 149293#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 149611#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 149609#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 149606#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 149607#$Ultimate##0 ~n := #in~n; 149610#L25 assume ~n <= 0;#res := 1; 149608#factFINAL assume true; 149605#factEXIT >#68#return; 149601#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 149602#$Ultimate##0 ~n := #in~n; 149604#L25 assume ~n <= 0;#res := 1; 149603#factFINAL assume true; 149600#factEXIT >#70#return; 149549#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 149550#$Ultimate##0 ~n := #in~n; 149562#L25 assume ~n <= 0;#res := 1; 149561#factFINAL assume true; 149548#factEXIT >#72#return; 149547#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 149541#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 149537#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 149532#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 149531#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 149528#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 149529#$Ultimate##0 ~n := #in~n; 149546#L25 assume !(~n <= 0); 149544#L26 call #t~ret0 := fact(~n - 1);< 149545#$Ultimate##0 ~n := #in~n; 149564#L25 assume ~n <= 0;#res := 1; 149563#factFINAL assume true; 149543#factEXIT >#66#return; 149540#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149536#factFINAL assume true; 149527#factEXIT >#74#return; 149520#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 149521#$Ultimate##0 ~n := #in~n; 149594#L25 assume ~n <= 0;#res := 1; 149589#factFINAL assume true; 149586#factEXIT >#76#return; 149582#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 149583#$Ultimate##0 ~n := #in~n; 149595#L25 assume !(~n <= 0); 149592#L26 call #t~ret0 := fact(~n - 1);< 149593#$Ultimate##0 ~n := #in~n; 149599#L25 assume ~n <= 0;#res := 1; 149597#factFINAL assume true; 149591#factEXIT >#66#return; 149588#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149585#factFINAL assume true; 149581#factEXIT >#78#return; 149577#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 149574#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 149570#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 149569#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 149565#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 149440#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 149444#$Ultimate##0 ~n := #in~n; 149612#L25 assume !(~n <= 0); 149554#L26 call #t~ret0 := fact(~n - 1);< 149557#$Ultimate##0 ~n := #in~n; 149573#L25 assume !(~n <= 0); 149552#L26 call #t~ret0 := fact(~n - 1);< 149568#$Ultimate##0 ~n := #in~n; 149598#L25 assume ~n <= 0;#res := 1; 149596#factFINAL assume true; 149590#factEXIT >#66#return; 149587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149584#factFINAL assume true; 149578#factEXIT >#66#return; 149580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149615#factFINAL assume true; 149613#factEXIT >#74#return; 149442#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 149472#$Ultimate##0 ~n := #in~n; 149559#L25 assume ~n <= 0;#res := 1; 149558#factFINAL assume true; 149457#factEXIT >#76#return; 149459#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 149576#$Ultimate##0 ~n := #in~n; 149572#L25 assume !(~n <= 0); 149553#L26 call #t~ret0 := fact(~n - 1);< 149557#$Ultimate##0 ~n := #in~n; 149573#L25 assume !(~n <= 0); 149552#L26 call #t~ret0 := fact(~n - 1);< 149568#$Ultimate##0 ~n := #in~n; 149598#L25 assume ~n <= 0;#res := 1; 149596#factFINAL assume true; 149590#factEXIT >#66#return; 149587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149584#factFINAL assume true; 149578#factEXIT >#66#return; 149579#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 150541#factFINAL assume true; 150540#factEXIT >#78#return; 149437#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 149435#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 149423#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 149417#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 149413#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 149409#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 149410#$Ultimate##0 ~n := #in~n; 149425#L25 assume !(~n <= 0); 149421#L26 call #t~ret0 := fact(~n - 1);< 149422#$Ultimate##0 ~n := #in~n; 149430#L25 assume !(~n <= 0); 149420#L26 call #t~ret0 := fact(~n - 1);< 149428#$Ultimate##0 ~n := #in~n; 149430#L25 assume !(~n <= 0); 149420#L26 call #t~ret0 := fact(~n - 1);< 149428#$Ultimate##0 ~n := #in~n; 149434#L25 assume ~n <= 0;#res := 1; 149433#factFINAL assume true; 149432#factEXIT >#66#return; 149431#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149429#factFINAL assume true; 149427#factEXIT >#66#return; 149426#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149424#factFINAL assume true; 149419#factEXIT >#66#return; 149416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149412#factFINAL assume true; 149408#factEXIT >#74#return; 149377#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 149378#$Ultimate##0 ~n := #in~n; 149389#L25 assume ~n <= 0;#res := 1; 149381#factFINAL assume true; 149376#factEXIT >#76#return; 149365#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 149371#$Ultimate##0 ~n := #in~n; 149406#L25 assume !(~n <= 0); 149383#L26 call #t~ret0 := fact(~n - 1);< 149388#$Ultimate##0 ~n := #in~n; 149403#L25 assume !(~n <= 0); 149384#L26 call #t~ret0 := fact(~n - 1);< 149401#$Ultimate##0 ~n := #in~n; 149403#L25 assume !(~n <= 0); 149384#L26 call #t~ret0 := fact(~n - 1);< 149401#$Ultimate##0 ~n := #in~n; 149418#L25 assume ~n <= 0;#res := 1; 149415#factFINAL assume true; 149411#factEXIT >#66#return; 149407#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149405#factFINAL assume true; 149400#factEXIT >#66#return; 149396#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149391#factFINAL assume true; 149382#factEXIT >#66#return; 149386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149446#factFINAL assume true; 149364#factEXIT >#78#return; 149363#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 149362#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 149361#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 149360#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 149258#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 149250#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 149251#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 149270#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 149214#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 149792#$Ultimate##0 ~n := #in~n; 149817#L25 assume !(~n <= 0); 149802#L26 call #t~ret0 := fact(~n - 1);< 149812#$Ultimate##0 ~n := #in~n; 149818#L25 assume ~n <= 0;#res := 1; 149813#factFINAL assume true; 149799#factEXIT >#66#return; 149798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149797#factFINAL assume true; 149791#factEXIT >#68#return; 149781#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 149785#$Ultimate##0 ~n := #in~n; 149790#L25 assume ~n <= 0;#res := 1; 149789#factFINAL assume true; 149778#factEXIT >#70#return; 149774#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 149775#$Ultimate##0 ~n := #in~n; 149795#L25 assume !(~n <= 0); 149694#L26 call #t~ret0 := fact(~n - 1);< 149721#$Ultimate##0 ~n := #in~n; 149753#L25 assume ~n <= 0;#res := 1; 149824#factFINAL assume true; 149742#factEXIT >#66#return; 149744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149777#factFINAL assume true; 149773#factEXIT >#72#return; 149771#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 149769#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 149767#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 149764#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 149763#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 149676#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 149680#$Ultimate##0 ~n := #in~n; 149724#L25 assume !(~n <= 0); 149696#L26 call #t~ret0 := fact(~n - 1);< 149721#$Ultimate##0 ~n := #in~n; 149753#L25 assume ~n <= 0;#res := 1; 149824#factFINAL assume true; 149742#factEXIT >#66#return; 149746#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149765#factFINAL assume true; 149762#factEXIT >#68#return; 149638#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 149670#$Ultimate##0 ~n := #in~n; 149830#L25 assume !(~n <= 0); 149690#L26 call #t~ret0 := fact(~n - 1);< 149747#$Ultimate##0 ~n := #in~n; 149753#L25 assume ~n <= 0;#res := 1; 149824#factFINAL assume true; 149742#factEXIT >#66#return; 149741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149735#factFINAL assume true; 149726#factEXIT >#70#return; 149336#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 149332#$Ultimate##0 ~n := #in~n; 149344#L25 assume ~n <= 0;#res := 1; 149335#factFINAL assume true; 149341#factEXIT >#72#return; 149717#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 149715#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 149713#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 149708#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 149702#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 149640#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 149670#$Ultimate##0 ~n := #in~n; 149830#L25 assume !(~n <= 0); 149690#L26 call #t~ret0 := fact(~n - 1);< 149747#$Ultimate##0 ~n := #in~n; 149738#L25 assume !(~n <= 0); 149695#L26 call #t~ret0 := fact(~n - 1);< 149712#$Ultimate##0 ~n := #in~n; 149716#L25 assume ~n <= 0;#res := 1; 149714#factFINAL assume true; 149709#factEXIT >#66#return; 149707#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149706#factFINAL assume true; 149682#factEXIT >#66#return; 149681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149671#factFINAL assume true; 149621#factEXIT >#74#return; 149622#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 149670#$Ultimate##0 ~n := #in~n; 149830#L25 assume !(~n <= 0); 149690#L26 call #t~ret0 := fact(~n - 1);< 149747#$Ultimate##0 ~n := #in~n; 149753#L25 assume ~n <= 0;#res := 1; 149824#factFINAL assume true; 149742#factEXIT >#66#return; 149741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149735#factFINAL assume true; 149726#factEXIT >#76#return; 149647#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 149736#$Ultimate##0 ~n := #in~n; 149831#L25 assume !(~n <= 0); 149743#L26 call #t~ret0 := fact(~n - 1);< 149748#$Ultimate##0 ~n := #in~n; 149753#L25 assume ~n <= 0;#res := 1; 149824#factFINAL assume true; 149742#factEXIT >#66#return; 149741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149735#factFINAL assume true; 149726#factEXIT >#78#return; 149727#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 150057#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 150056#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 150055#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 150054#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 149229#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 149288#$Ultimate##0 ~n := #in~n; 150489#L25 assume !(~n <= 0); 149208#L26 call #t~ret0 := fact(~n - 1);< 150306#$Ultimate##0 ~n := #in~n; 150178#L25 assume !(~n <= 0); 150171#L26 call #t~ret0 := fact(~n - 1);< 150176#$Ultimate##0 ~n := #in~n; 150178#L25 assume !(~n <= 0); 150171#L26 call #t~ret0 := fact(~n - 1);< 150176#$Ultimate##0 ~n := #in~n; 150181#L25 assume ~n <= 0;#res := 1; 150185#factFINAL assume true; 150184#factEXIT >#66#return; 150183#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 150182#factFINAL assume true; 150179#factEXIT >#66#return; 150177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 150175#factFINAL assume true; 150167#factEXIT >#66#return; 150165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 150133#factFINAL assume true; 150134#factEXIT >#74#return; 149230#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 149288#$Ultimate##0 ~n := #in~n; 150489#L25 assume !(~n <= 0); 149208#L26 call #t~ret0 := fact(~n - 1);< 150306#$Ultimate##0 ~n := #in~n; 150310#L25 assume ~n <= 0;#res := 1; 150305#factFINAL assume true; 149206#factEXIT >#66#return; 149212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 150433#factFINAL assume true; 149445#factEXIT >#76#return; 149234#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 149288#$Ultimate##0 ~n := #in~n; 150489#L25 assume !(~n <= 0); 149208#L26 call #t~ret0 := fact(~n - 1);< 150306#$Ultimate##0 ~n := #in~n; 150178#L25 assume !(~n <= 0); 150171#L26 call #t~ret0 := fact(~n - 1);< 150176#$Ultimate##0 ~n := #in~n; 150181#L25 assume ~n <= 0;#res := 1; 150185#factFINAL assume true; 150184#factEXIT >#66#return; 150183#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 150182#factFINAL assume true; 150179#factEXIT >#66#return; 149268#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149225#factFINAL assume true; 149235#factEXIT >#78#return; 149239#L30-8 [2023-02-18 08:56:20,031 INFO L750 eck$LassoCheckResult]: Loop: 149239#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 149240#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 149261#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 149291#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 149348#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 149346#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 149343#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 149334#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 149221#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 149222#$Ultimate##0 ~n := #in~n; 149901#L25 assume !(~n <= 0); 149693#L26 call #t~ret0 := fact(~n - 1);< 149747#$Ultimate##0 ~n := #in~n; 149738#L25 assume !(~n <= 0); 149695#L26 call #t~ret0 := fact(~n - 1);< 149712#$Ultimate##0 ~n := #in~n; 149738#L25 assume !(~n <= 0); 149695#L26 call #t~ret0 := fact(~n - 1);< 149712#$Ultimate##0 ~n := #in~n; 149716#L25 assume ~n <= 0;#res := 1; 149714#factFINAL assume true; 149709#factEXIT >#66#return; 149707#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149706#factFINAL assume true; 149682#factEXIT >#66#return; 149697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149872#factFINAL assume true; 149868#factEXIT >#66#return; 149870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 150114#factFINAL assume true; 150101#factEXIT >#68#return; 150096#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 150098#$Ultimate##0 ~n := #in~n; 150112#L25 assume ~n <= 0;#res := 1; 150099#factFINAL assume true; 150093#factEXIT >#70#return; 149882#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 149886#$Ultimate##0 ~n := #in~n; 149885#L25 assume !(~n <= 0); 149860#L26 call #t~ret0 := fact(~n - 1);< 149879#$Ultimate##0 ~n := #in~n; 149878#L25 assume !(~n <= 0); 149683#L26 call #t~ret0 := fact(~n - 1);< 149701#$Ultimate##0 ~n := #in~n; 149738#L25 assume !(~n <= 0); 149695#L26 call #t~ret0 := fact(~n - 1);< 149712#$Ultimate##0 ~n := #in~n; 149716#L25 assume ~n <= 0;#res := 1; 149714#factFINAL assume true; 149709#factEXIT >#66#return; 149707#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149706#factFINAL assume true; 149682#factEXIT >#66#return; 149697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149872#factFINAL assume true; 149868#factEXIT >#66#return; 149861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 150092#factFINAL assume true; 150089#factEXIT >#72#return; 150090#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 150158#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 150156#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 150152#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 150149#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 149759#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 149761#$Ultimate##0 ~n := #in~n; 149760#L25 assume !(~n <= 0); 149737#L26 call #t~ret0 := fact(~n - 1);< 149752#$Ultimate##0 ~n := #in~n; 149751#L25 assume !(~n <= 0); 149686#L26 call #t~ret0 := fact(~n - 1);< 149734#$Ultimate##0 ~n := #in~n; 149732#L25 assume !(~n <= 0); 149710#L26 call #t~ret0 := fact(~n - 1);< 149711#$Ultimate##0 ~n := #in~n; 149716#L25 assume ~n <= 0;#res := 1; 149714#factFINAL assume true; 149709#factEXIT >#66#return; 149707#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149706#factFINAL assume true; 149682#factEXIT >#66#return; 149697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149872#factFINAL assume true; 149868#factEXIT >#66#return; 149866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149858#factFINAL assume true; 149857#factEXIT >#68#return; 149313#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 149620#$Ultimate##0 ~n := #in~n; 149825#L25 assume !(~n <= 0); 149687#L26 call #t~ret0 := fact(~n - 1);< 149747#$Ultimate##0 ~n := #in~n; 149753#L25 assume ~n <= 0;#res := 1; 149824#factFINAL assume true; 149742#factEXIT >#66#return; 149745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149856#factFINAL assume true; 149843#factEXIT >#70#return; 149298#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 149620#$Ultimate##0 ~n := #in~n; 149825#L25 assume !(~n <= 0); 149687#L26 call #t~ret0 := fact(~n - 1);< 149747#$Ultimate##0 ~n := #in~n; 149738#L25 assume !(~n <= 0); 149695#L26 call #t~ret0 := fact(~n - 1);< 149712#$Ultimate##0 ~n := #in~n; 149738#L25 assume !(~n <= 0); 149695#L26 call #t~ret0 := fact(~n - 1);< 149712#$Ultimate##0 ~n := #in~n; 149716#L25 assume ~n <= 0;#res := 1; 149714#factFINAL assume true; 149709#factEXIT >#66#return; 149707#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149706#factFINAL assume true; 149682#factEXIT >#66#return; 149697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149872#factFINAL assume true; 149868#factEXIT >#66#return; 149871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149893#factFINAL assume true; 149651#factEXIT >#72#return; 149664#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 150424#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 150422#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 150420#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 150419#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 149755#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 149761#$Ultimate##0 ~n := #in~n; 149760#L25 assume !(~n <= 0); 149737#L26 call #t~ret0 := fact(~n - 1);< 149752#$Ultimate##0 ~n := #in~n; 149751#L25 assume !(~n <= 0); 149686#L26 call #t~ret0 := fact(~n - 1);< 149734#$Ultimate##0 ~n := #in~n; 149732#L25 assume !(~n <= 0); 149710#L26 call #t~ret0 := fact(~n - 1);< 149711#$Ultimate##0 ~n := #in~n; 149716#L25 assume ~n <= 0;#res := 1; 149714#factFINAL assume true; 149709#factEXIT >#66#return; 149707#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149706#factFINAL assume true; 149682#factEXIT >#66#return; 149697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149872#factFINAL assume true; 149868#factEXIT >#66#return; 149866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149858#factFINAL assume true; 149857#factEXIT >#68#return; 149319#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 149620#$Ultimate##0 ~n := #in~n; 149825#L25 assume !(~n <= 0); 149687#L26 call #t~ret0 := fact(~n - 1);< 149747#$Ultimate##0 ~n := #in~n; 149738#L25 assume !(~n <= 0); 149695#L26 call #t~ret0 := fact(~n - 1);< 149712#$Ultimate##0 ~n := #in~n; 149716#L25 assume ~n <= 0;#res := 1; 149714#factFINAL assume true; 149709#factEXIT >#66#return; 149707#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149706#factFINAL assume true; 149682#factEXIT >#66#return; 149699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149889#factFINAL assume true; 149849#factEXIT >#70#return; 149314#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 149455#$Ultimate##0 ~n := #in~n; 149456#L25 assume !(~n <= 0); 149740#L26 call #t~ret0 := fact(~n - 1);< 149748#$Ultimate##0 ~n := #in~n; 149753#L25 assume ~n <= 0;#res := 1; 149824#factFINAL assume true; 149742#factEXIT >#66#return; 149745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149856#factFINAL assume true; 149843#factEXIT >#72#return; 149844#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 150511#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 150510#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 150508#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 149945#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 149758#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 149761#$Ultimate##0 ~n := #in~n; 149760#L25 assume !(~n <= 0); 149737#L26 call #t~ret0 := fact(~n - 1);< 149752#$Ultimate##0 ~n := #in~n; 149751#L25 assume !(~n <= 0); 149686#L26 call #t~ret0 := fact(~n - 1);< 149734#$Ultimate##0 ~n := #in~n; 149732#L25 assume !(~n <= 0); 149710#L26 call #t~ret0 := fact(~n - 1);< 149711#$Ultimate##0 ~n := #in~n; 149716#L25 assume ~n <= 0;#res := 1; 149714#factFINAL assume true; 149709#factEXIT >#66#return; 149707#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149706#factFINAL assume true; 149682#factEXIT >#66#return; 149697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149872#factFINAL assume true; 149868#factEXIT >#66#return; 149866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149858#factFINAL assume true; 149857#factEXIT >#68#return; 149310#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 149620#$Ultimate##0 ~n := #in~n; 149825#L25 assume !(~n <= 0); 149687#L26 call #t~ret0 := fact(~n - 1);< 149747#$Ultimate##0 ~n := #in~n; 149738#L25 assume !(~n <= 0); 149695#L26 call #t~ret0 := fact(~n - 1);< 149712#$Ultimate##0 ~n := #in~n; 149738#L25 assume !(~n <= 0); 149695#L26 call #t~ret0 := fact(~n - 1);< 149712#$Ultimate##0 ~n := #in~n; 149716#L25 assume ~n <= 0;#res := 1; 149714#factFINAL assume true; 149709#factEXIT >#66#return; 149707#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149706#factFINAL assume true; 149682#factEXIT >#66#return; 149697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149872#factFINAL assume true; 149868#factEXIT >#66#return; 149871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 149893#factFINAL assume true; 149651#factEXIT >#70#return; 149305#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 149455#$Ultimate##0 ~n := #in~n; 149456#L25 assume ~n <= 0;#res := 1; 149739#factFINAL assume true; 149296#factEXIT >#72#return; 149330#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 150501#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 150500#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 150499#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 150498#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 149888#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 150482#$Ultimate##0 ~n := #in~n; 150493#L25 assume !(~n <= 0); 150169#L26 call #t~ret0 := fact(~n - 1);< 150174#$Ultimate##0 ~n := #in~n; 150178#L25 assume !(~n <= 0); 150171#L26 call #t~ret0 := fact(~n - 1);< 150176#$Ultimate##0 ~n := #in~n; 150178#L25 assume !(~n <= 0); 150171#L26 call #t~ret0 := fact(~n - 1);< 150176#$Ultimate##0 ~n := #in~n; 150181#L25 assume ~n <= 0;#res := 1; 150185#factFINAL assume true; 150184#factEXIT >#66#return; 150183#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 150182#factFINAL assume true; 150179#factEXIT >#66#return; 150177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 150175#factFINAL assume true; 150167#factEXIT >#66#return; 150172#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 150484#factFINAL assume true; 150116#factEXIT >#74#return; 149274#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 149281#$Ultimate##0 ~n := #in~n; 149273#L25 assume !(~n <= 0); 149275#L26 call #t~ret0 := fact(~n - 1);< 150174#$Ultimate##0 ~n := #in~n; 150178#L25 assume !(~n <= 0); 150171#L26 call #t~ret0 := fact(~n - 1);< 150176#$Ultimate##0 ~n := #in~n; 150181#L25 assume ~n <= 0;#res := 1; 150185#factFINAL assume true; 150184#factEXIT >#66#return; 150183#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 150182#factFINAL assume true; 150179#factEXIT >#66#return; 150180#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 150495#factFINAL assume true; 150486#factEXIT >#76#return; 150123#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 150496#$Ultimate##0 ~n := #in~n; 150497#L25 assume !(~n <= 0); 149210#L26 call #t~ret0 := fact(~n - 1);< 149244#$Ultimate##0 ~n := #in~n; 150310#L25 assume ~n <= 0;#res := 1; 150305#factFINAL assume true; 149206#factEXIT >#66#return; 149211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 150430#factFINAL assume true; 150431#factEXIT >#78#return; 149239#L30-8 [2023-02-18 08:56:20,031 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:20,031 INFO L85 PathProgramCache]: Analyzing trace with hash 2135700754, now seen corresponding path program 31 times [2023-02-18 08:56:20,031 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:20,032 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1657170052] [2023-02-18 08:56:20,032 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:20,032 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:20,039 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:20,039 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2036432349] [2023-02-18 08:56:20,039 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:56:20,039 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:20,039 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:20,042 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-18 08:56:20,043 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-18 08:56:20,279 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:20,279 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:20,361 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:20,398 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:20,399 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:20,399 INFO L85 PathProgramCache]: Analyzing trace with hash -507406067, now seen corresponding path program 32 times [2023-02-18 08:56:20,399 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:20,399 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [576829770] [2023-02-18 08:56:20,399 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:20,399 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:20,405 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:20,405 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [799255291] [2023-02-18 08:56:20,406 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:56:20,406 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:20,406 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:20,409 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-18 08:56:20,410 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-18 08:56:20,571 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:56:20,571 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:20,574 INFO L263 TraceCheckSpWp]: Trace formula consists of 635 conjuncts, 24 conjunts are in the unsatisfiable core [2023-02-18 08:56:20,576 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:20,632 INFO L134 CoverageAnalysis]: Checked inductivity of 5135 backedges. 2720 proven. 263 refuted. 0 times theorem prover too weak. 2152 trivial. 0 not checked. [2023-02-18 08:56:20,632 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:20,790 INFO L134 CoverageAnalysis]: Checked inductivity of 5135 backedges. 198 proven. 1061 refuted. 0 times theorem prover too weak. 3876 trivial. 0 not checked. [2023-02-18 08:56:20,790 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:20,791 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [576829770] [2023-02-18 08:56:20,791 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:20,791 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [799255291] [2023-02-18 08:56:20,791 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [799255291] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:20,791 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:20,791 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 21] total 27 [2023-02-18 08:56:20,791 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [706041058] [2023-02-18 08:56:20,791 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:20,791 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:20,792 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:20,792 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 27 interpolants. [2023-02-18 08:56:20,792 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=97, Invalid=605, Unknown=0, NotChecked=0, Total=702 [2023-02-18 08:56:20,792 INFO L87 Difference]: Start difference. First operand 1341 states and 1976 transitions. cyclomatic complexity: 652 Second operand has 27 states, 23 states have (on average 2.9565217391304346) internal successors, (68), 27 states have internal predecessors, (68), 16 states have call successors, (34), 2 states have call predecessors, (34), 9 states have return successors, (37), 12 states have call predecessors, (37), 16 states have call successors, (37) [2023-02-18 08:56:21,721 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:21,722 INFO L93 Difference]: Finished difference Result 1777 states and 2652 transitions. [2023-02-18 08:56:21,722 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1777 states and 2652 transitions. [2023-02-18 08:56:21,729 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 332 [2023-02-18 08:56:21,737 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1777 states to 1775 states and 2648 transitions. [2023-02-18 08:56:21,737 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 183 [2023-02-18 08:56:21,737 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 183 [2023-02-18 08:56:21,737 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1775 states and 2648 transitions. [2023-02-18 08:56:21,737 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:21,738 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1775 states and 2648 transitions. [2023-02-18 08:56:21,738 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1775 states and 2648 transitions. [2023-02-18 08:56:21,757 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1775 to 1363. [2023-02-18 08:56:21,758 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 1363 states, 840 states have (on average 1.0523809523809524) internal successors, (884), 840 states have internal predecessors, (884), 397 states have call successors, (403), 120 states have call predecessors, (403), 126 states have return successors, (735), 402 states have call predecessors, (735), 397 states have call successors, (735) [2023-02-18 08:56:21,762 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1363 states to 1363 states and 2022 transitions. [2023-02-18 08:56:21,762 INFO L240 hiAutomatonCegarLoop]: Abstraction has 1363 states and 2022 transitions. [2023-02-18 08:56:21,762 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 34 states. [2023-02-18 08:56:21,763 INFO L428 stractBuchiCegarLoop]: Abstraction has 1363 states and 2022 transitions. [2023-02-18 08:56:21,763 INFO L335 stractBuchiCegarLoop]: ======== Iteration 45 ============ [2023-02-18 08:56:21,763 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 1363 states and 2022 transitions. [2023-02-18 08:56:21,765 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 188 [2023-02-18 08:56:21,765 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:21,766 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:21,767 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:21,767 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [47, 47, 32, 32, 32, 32, 15, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:21,767 INFO L748 eck$LassoCheckResult]: Stem: 154244#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 154177#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; 154178#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 154202#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; 154245#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 154483#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 154481#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 154478#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 154479#$Ultimate##0 ~n := #in~n; 154482#L25 assume ~n <= 0;#res := 1; 154480#factFINAL assume true; 154477#factEXIT >#68#return; 154467#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 154468#$Ultimate##0 ~n := #in~n; 154473#L25 assume ~n <= 0;#res := 1; 154469#factFINAL assume true; 154466#factEXIT >#70#return; 154464#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 154465#$Ultimate##0 ~n := #in~n; 154475#L25 assume ~n <= 0;#res := 1; 154472#factFINAL assume true; 154463#factEXIT >#72#return; 154462#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 154461#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 154459#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 154457#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 154453#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 154445#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 154446#$Ultimate##0 ~n := #in~n; 154476#L25 assume !(~n <= 0); 154455#L26 call #t~ret0 := fact(~n - 1);< 154456#$Ultimate##0 ~n := #in~n; 154474#L25 assume ~n <= 0;#res := 1; 154471#factFINAL assume true; 154454#factEXIT >#66#return; 154452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154451#factFINAL assume true; 154444#factEXIT >#74#return; 154439#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 154440#$Ultimate##0 ~n := #in~n; 154538#L25 assume ~n <= 0;#res := 1; 154534#factFINAL assume true; 154532#factEXIT >#76#return; 154529#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 154530#$Ultimate##0 ~n := #in~n; 154540#L25 assume !(~n <= 0); 154536#L26 call #t~ret0 := fact(~n - 1);< 154537#$Ultimate##0 ~n := #in~n; 154541#L25 assume ~n <= 0;#res := 1; 154539#factFINAL assume true; 154535#factEXIT >#66#return; 154533#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154531#factFINAL assume true; 154528#factEXIT >#78#return; 154527#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 154526#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 154525#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 154523#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 154515#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 154393#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 154416#$Ultimate##0 ~n := #in~n; 154524#L25 assume !(~n <= 0); 154519#L26 call #t~ret0 := fact(~n - 1);< 154522#$Ultimate##0 ~n := #in~n; 154553#L25 assume !(~n <= 0); 154517#L26 call #t~ret0 := fact(~n - 1);< 154551#$Ultimate##0 ~n := #in~n; 154555#L25 assume ~n <= 0;#res := 1; 154552#factFINAL assume true; 154550#factEXIT >#66#return; 154549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154547#factFINAL assume true; 154542#factEXIT >#66#return; 154544#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154499#factFINAL assume true; 154500#factEXIT >#74#return; 154403#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 154426#$Ultimate##0 ~n := #in~n; 154509#L25 assume ~n <= 0;#res := 1; 154508#factFINAL assume true; 154506#factEXIT >#76#return; 154396#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 154397#$Ultimate##0 ~n := #in~n; 154554#L25 assume !(~n <= 0); 154518#L26 call #t~ret0 := fact(~n - 1);< 154522#$Ultimate##0 ~n := #in~n; 154553#L25 assume !(~n <= 0); 154517#L26 call #t~ret0 := fact(~n - 1);< 154551#$Ultimate##0 ~n := #in~n; 154555#L25 assume ~n <= 0;#res := 1; 154552#factFINAL assume true; 154550#factEXIT >#66#return; 154549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154547#factFINAL assume true; 154542#factEXIT >#66#return; 154543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 155498#factFINAL assume true; 155496#factEXIT >#78#return; 154383#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 154381#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 154379#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 154374#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 154341#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 154336#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 154337#$Ultimate##0 ~n := #in~n; 154353#L25 assume !(~n <= 0); 154349#L26 call #t~ret0 := fact(~n - 1);< 154350#$Ultimate##0 ~n := #in~n; 154361#L25 assume !(~n <= 0); 154348#L26 call #t~ret0 := fact(~n - 1);< 154358#$Ultimate##0 ~n := #in~n; 154361#L25 assume !(~n <= 0); 154348#L26 call #t~ret0 := fact(~n - 1);< 154358#$Ultimate##0 ~n := #in~n; 154365#L25 assume ~n <= 0;#res := 1; 154364#factFINAL assume true; 154363#factEXIT >#66#return; 154362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154359#factFINAL assume true; 154357#factEXIT >#66#return; 154355#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154352#factFINAL assume true; 154347#factEXIT >#66#return; 154346#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154340#factFINAL assume true; 154335#factEXIT >#74#return; 154313#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 154314#$Ultimate##0 ~n := #in~n; 154331#L25 assume ~n <= 0;#res := 1; 154330#factFINAL assume true; 154312#factEXIT >#76#return; 154305#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 154306#$Ultimate##0 ~n := #in~n; 154344#L25 assume !(~n <= 0); 154323#L26 call #t~ret0 := fact(~n - 1);< 154326#$Ultimate##0 ~n := #in~n; 154345#L25 assume !(~n <= 0); 154321#L26 call #t~ret0 := fact(~n - 1);< 154339#$Ultimate##0 ~n := #in~n; 154345#L25 assume !(~n <= 0); 154321#L26 call #t~ret0 := fact(~n - 1);< 154339#$Ultimate##0 ~n := #in~n; 154360#L25 assume ~n <= 0;#res := 1; 154356#factFINAL assume true; 154354#factEXIT >#66#return; 154351#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154343#factFINAL assume true; 154338#factEXIT >#66#return; 154334#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154333#factFINAL assume true; 154332#factEXIT >#66#return; 154325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154398#factFINAL assume true; 154308#factEXIT >#78#return; 154299#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 154298#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 154297#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 154296#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 154199#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 154191#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 154192#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 154225#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 154786#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 154789#$Ultimate##0 ~n := #in~n; 154813#L25 assume !(~n <= 0); 154799#L26 call #t~ret0 := fact(~n - 1);< 154812#$Ultimate##0 ~n := #in~n; 154838#L25 assume ~n <= 0;#res := 1; 154831#factFINAL assume true; 154823#factEXIT >#66#return; 154822#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154821#factFINAL assume true; 154818#factEXIT >#68#return; 154781#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 154783#$Ultimate##0 ~n := #in~n; 154868#L25 assume ~n <= 0;#res := 1; 154867#factFINAL assume true; 154778#factEXIT >#70#return; 154725#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 154729#$Ultimate##0 ~n := #in~n; 154739#L25 assume !(~n <= 0); 154677#L26 call #t~ret0 := fact(~n - 1);< 154714#$Ultimate##0 ~n := #in~n; 154791#L25 assume ~n <= 0;#res := 1; 154742#factFINAL assume true; 154707#factEXIT >#66#return; 154710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154733#factFINAL assume true; 154730#factEXIT >#72#return; 154722#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 154720#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 154718#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 154716#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 154702#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 154641#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 154645#$Ultimate##0 ~n := #in~n; 154740#L25 assume !(~n <= 0); 154678#L26 call #t~ret0 := fact(~n - 1);< 154714#$Ultimate##0 ~n := #in~n; 154791#L25 assume ~n <= 0;#res := 1; 154742#factFINAL assume true; 154707#factEXIT >#66#return; 154709#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154701#factFINAL assume true; 154698#factEXIT >#68#return; 154570#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 154625#$Ultimate##0 ~n := #in~n; 154790#L25 assume !(~n <= 0); 154663#L26 call #t~ret0 := fact(~n - 1);< 154670#$Ultimate##0 ~n := #in~n; 154791#L25 assume ~n <= 0;#res := 1; 154742#factFINAL assume true; 154707#factEXIT >#66#return; 154700#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154695#factFINAL assume true; 154687#factEXIT >#70#return; 154368#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 154294#$Ultimate##0 ~n := #in~n; 154888#L25 assume ~n <= 0;#res := 1; 154366#factFINAL assume true; 154372#factEXIT >#72#return; 154671#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 154652#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 154650#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 154649#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 154647#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 154574#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 154625#$Ultimate##0 ~n := #in~n; 154790#L25 assume !(~n <= 0); 154663#L26 call #t~ret0 := fact(~n - 1);< 154670#$Ultimate##0 ~n := #in~n; 154741#L25 assume !(~n <= 0); 154662#L26 call #t~ret0 := fact(~n - 1);< 154706#$Ultimate##0 ~n := #in~n; 154732#L25 assume ~n <= 0;#res := 1; 154731#factFINAL assume true; 154703#factEXIT >#66#return; 154699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154692#factFINAL assume true; 154676#factEXIT >#66#return; 154637#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154624#factFINAL assume true; 154564#factEXIT >#74#return; 154578#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 154625#$Ultimate##0 ~n := #in~n; 154790#L25 assume !(~n <= 0); 154663#L26 call #t~ret0 := fact(~n - 1);< 154670#$Ultimate##0 ~n := #in~n; 154791#L25 assume ~n <= 0;#res := 1; 154742#factFINAL assume true; 154707#factEXIT >#66#return; 154700#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154695#factFINAL assume true; 154687#factEXIT >#76#return; 154593#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 154697#$Ultimate##0 ~n := #in~n; 154893#L25 assume !(~n <= 0); 154708#L26 call #t~ret0 := fact(~n - 1);< 154712#$Ultimate##0 ~n := #in~n; 154791#L25 assume ~n <= 0;#res := 1; 154742#factFINAL assume true; 154707#factEXIT >#66#return; 154700#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154695#factFINAL assume true; 154687#factEXIT >#78#return; 154690#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 154946#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 154944#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 154943#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 154939#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 154940#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 154247#$Ultimate##0 ~n := #in~n; 155401#L25 assume !(~n <= 0); 154141#L26 call #t~ret0 := fact(~n - 1);< 155398#$Ultimate##0 ~n := #in~n; 155158#L25 assume !(~n <= 0); 154185#L26 call #t~ret0 := fact(~n - 1);< 154190#$Ultimate##0 ~n := #in~n; 155158#L25 assume !(~n <= 0); 154185#L26 call #t~ret0 := fact(~n - 1);< 154190#$Ultimate##0 ~n := #in~n; 155160#L25 assume ~n <= 0;#res := 1; 155361#factFINAL assume true; 155360#factEXIT >#66#return; 155359#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 155358#factFINAL assume true; 155355#factEXIT >#66#return; 155357#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 155400#factFINAL assume true; 155397#factEXIT >#66#return; 155379#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 155376#factFINAL assume true; 155377#factEXIT >#74#return; 155351#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 154247#$Ultimate##0 ~n := #in~n; 155401#L25 assume !(~n <= 0); 154141#L26 call #t~ret0 := fact(~n - 1);< 155398#$Ultimate##0 ~n := #in~n; 154228#L25 assume ~n <= 0;#res := 1; 154164#factFINAL assume true; 154140#factEXIT >#66#return; 154145#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 155392#factFINAL assume true; 155387#factEXIT >#76#return; 154246#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 154247#$Ultimate##0 ~n := #in~n; 155401#L25 assume !(~n <= 0); 154141#L26 call #t~ret0 := fact(~n - 1);< 155398#$Ultimate##0 ~n := #in~n; 155158#L25 assume !(~n <= 0); 154185#L26 call #t~ret0 := fact(~n - 1);< 154190#$Ultimate##0 ~n := #in~n; 155160#L25 assume ~n <= 0;#res := 1; 155361#factFINAL assume true; 155360#factEXIT >#66#return; 155359#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 155358#factFINAL assume true; 155355#factEXIT >#66#return; 155354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 155345#factFINAL assume true; 155352#factEXIT >#78#return; 154990#L30-8 [2023-02-18 08:56:21,768 INFO L750 eck$LassoCheckResult]: Loop: 154990#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 154989#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 154972#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 154971#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 154923#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 154253#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 154254#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 154249#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 154250#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 154161#$Ultimate##0 ~n := #in~n; 154922#L25 assume !(~n <= 0); 154655#L26 call #t~ret0 := fact(~n - 1);< 154670#$Ultimate##0 ~n := #in~n; 154741#L25 assume !(~n <= 0); 154662#L26 call #t~ret0 := fact(~n - 1);< 154706#$Ultimate##0 ~n := #in~n; 154741#L25 assume !(~n <= 0); 154662#L26 call #t~ret0 := fact(~n - 1);< 154706#$Ultimate##0 ~n := #in~n; 154732#L25 assume ~n <= 0;#res := 1; 154731#factFINAL assume true; 154703#factEXIT >#66#return; 154699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154692#factFINAL assume true; 154676#factEXIT >#66#return; 154683#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154872#factFINAL assume true; 154854#factEXIT >#66#return; 154855#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154964#factFINAL assume true; 154962#factEXIT >#68#return; 154915#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 154917#$Ultimate##0 ~n := #in~n; 154920#L25 assume ~n <= 0;#res := 1; 154918#factFINAL assume true; 154912#factEXIT >#70#return; 154883#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 154887#$Ultimate##0 ~n := #in~n; 154885#L25 assume !(~n <= 0); 154659#L26 call #t~ret0 := fact(~n - 1);< 154879#$Ultimate##0 ~n := #in~n; 154877#L25 assume !(~n <= 0); 154664#L26 call #t~ret0 := fact(~n - 1);< 154686#$Ultimate##0 ~n := #in~n; 154741#L25 assume !(~n <= 0); 154662#L26 call #t~ret0 := fact(~n - 1);< 154706#$Ultimate##0 ~n := #in~n; 154732#L25 assume ~n <= 0;#res := 1; 154731#factFINAL assume true; 154703#factEXIT >#66#return; 154699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154692#factFINAL assume true; 154676#factEXIT >#66#return; 154683#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154872#factFINAL assume true; 154854#factEXIT >#66#return; 154668#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154927#factFINAL assume true; 154908#factEXIT >#72#return; 154911#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 155107#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 155106#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 155105#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 155104#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 154773#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 154777#$Ultimate##0 ~n := #in~n; 154860#L25 assume !(~n <= 0); 154693#L26 call #t~ret0 := fact(~n - 1);< 154858#$Ultimate##0 ~n := #in~n; 154963#L25 assume !(~n <= 0); 154679#L26 call #t~ret0 := fact(~n - 1);< 154694#$Ultimate##0 ~n := #in~n; 155476#L25 assume !(~n <= 0); 154704#L26 call #t~ret0 := fact(~n - 1);< 154705#$Ultimate##0 ~n := #in~n; 154732#L25 assume ~n <= 0;#res := 1; 154731#factFINAL assume true; 154703#factEXIT >#66#return; 154699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154692#factFINAL assume true; 154676#factEXIT >#66#return; 154683#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154872#factFINAL assume true; 154854#factEXIT >#66#return; 154853#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154852#factFINAL assume true; 154770#factEXIT >#68#return; 154603#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 154595#$Ultimate##0 ~n := #in~n; 154744#L25 assume !(~n <= 0); 154661#L26 call #t~ret0 := fact(~n - 1);< 154670#$Ultimate##0 ~n := #in~n; 154791#L25 assume ~n <= 0;#res := 1; 154742#factFINAL assume true; 154707#factEXIT >#66#return; 154711#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154760#factFINAL assume true; 154755#factEXIT >#70#return; 154285#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 154846#$Ultimate##0 ~n := #in~n; 154884#L25 assume !(~n <= 0); 154681#L26 call #t~ret0 := fact(~n - 1);< 154714#$Ultimate##0 ~n := #in~n; 155476#L25 assume !(~n <= 0); 154704#L26 call #t~ret0 := fact(~n - 1);< 154705#$Ultimate##0 ~n := #in~n; 154732#L25 assume ~n <= 0;#res := 1; 154731#factFINAL assume true; 154703#factEXIT >#66#return; 154699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154692#factFINAL assume true; 154676#factEXIT >#66#return; 154684#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154845#factFINAL assume true; 154837#factEXIT >#72#return; 154623#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 154987#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 154986#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 154982#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 154961#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 154774#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 154777#$Ultimate##0 ~n := #in~n; 154860#L25 assume !(~n <= 0); 154693#L26 call #t~ret0 := fact(~n - 1);< 154858#$Ultimate##0 ~n := #in~n; 154963#L25 assume !(~n <= 0); 154679#L26 call #t~ret0 := fact(~n - 1);< 154694#$Ultimate##0 ~n := #in~n; 155476#L25 assume !(~n <= 0); 154704#L26 call #t~ret0 := fact(~n - 1);< 154705#$Ultimate##0 ~n := #in~n; 154732#L25 assume ~n <= 0;#res := 1; 154731#factFINAL assume true; 154703#factEXIT >#66#return; 154699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154692#factFINAL assume true; 154676#factEXIT >#66#return; 154683#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154872#factFINAL assume true; 154854#factEXIT >#66#return; 154853#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154852#factFINAL assume true; 154770#factEXIT >#68#return; 154604#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 154595#$Ultimate##0 ~n := #in~n; 154744#L25 assume !(~n <= 0); 154661#L26 call #t~ret0 := fact(~n - 1);< 154670#$Ultimate##0 ~n := #in~n; 154741#L25 assume !(~n <= 0); 154662#L26 call #t~ret0 := fact(~n - 1);< 154706#$Ultimate##0 ~n := #in~n; 154732#L25 assume ~n <= 0;#res := 1; 154731#factFINAL assume true; 154703#factEXIT >#66#return; 154699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154692#factFINAL assume true; 154676#factEXIT >#66#return; 154684#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154845#factFINAL assume true; 154837#factEXIT >#70#return; 154259#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 154761#$Ultimate##0 ~n := #in~n; 154375#L25 assume !(~n <= 0); 154377#L26 call #t~ret0 := fact(~n - 1);< 154712#$Ultimate##0 ~n := #in~n; 154791#L25 assume ~n <= 0;#res := 1; 154742#factFINAL assume true; 154707#factEXIT >#66#return; 154711#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154760#factFINAL assume true; 154755#factEXIT >#72#return; 154757#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 154960#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 154959#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 154958#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 154866#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 154775#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 154777#$Ultimate##0 ~n := #in~n; 154860#L25 assume !(~n <= 0); 154693#L26 call #t~ret0 := fact(~n - 1);< 154858#$Ultimate##0 ~n := #in~n; 154963#L25 assume !(~n <= 0); 154679#L26 call #t~ret0 := fact(~n - 1);< 154694#$Ultimate##0 ~n := #in~n; 155476#L25 assume !(~n <= 0); 154704#L26 call #t~ret0 := fact(~n - 1);< 154705#$Ultimate##0 ~n := #in~n; 154732#L25 assume ~n <= 0;#res := 1; 154731#factFINAL assume true; 154703#factEXIT >#66#return; 154699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154692#factFINAL assume true; 154676#factEXIT >#66#return; 154683#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154872#factFINAL assume true; 154854#factEXIT >#66#return; 154853#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154852#factFINAL assume true; 154770#factEXIT >#68#return; 154594#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 154595#$Ultimate##0 ~n := #in~n; 154744#L25 assume !(~n <= 0); 154661#L26 call #t~ret0 := fact(~n - 1);< 154670#$Ultimate##0 ~n := #in~n; 154741#L25 assume !(~n <= 0); 154662#L26 call #t~ret0 := fact(~n - 1);< 154706#$Ultimate##0 ~n := #in~n; 154741#L25 assume !(~n <= 0); 154662#L26 call #t~ret0 := fact(~n - 1);< 154706#$Ultimate##0 ~n := #in~n; 154741#L25 assume !(~n <= 0); 154662#L26 call #t~ret0 := fact(~n - 1);< 154706#$Ultimate##0 ~n := #in~n; 154732#L25 assume ~n <= 0;#res := 1; 154731#factFINAL assume true; 154703#factEXIT >#66#return; 154699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154692#factFINAL assume true; 154676#factEXIT >#66#return; 154683#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154872#factFINAL assume true; 154854#factEXIT >#66#return; 154669#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154979#factFINAL assume true; 154653#factEXIT >#66#return; 154666#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154596#factFINAL assume true; 154612#factEXIT >#70#return; 154260#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 154761#$Ultimate##0 ~n := #in~n; 154375#L25 assume ~n <= 0;#res := 1; 154376#factFINAL assume true; 154257#factEXIT >#72#return; 154195#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 154196#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 154207#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 154242#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 154205#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 154136#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 154137#$Ultimate##0 ~n := #in~n; 155410#L25 assume !(~n <= 0); 154189#L26 call #t~ret0 := fact(~n - 1);< 155159#$Ultimate##0 ~n := #in~n; 155158#L25 assume !(~n <= 0); 154185#L26 call #t~ret0 := fact(~n - 1);< 154190#$Ultimate##0 ~n := #in~n; 155158#L25 assume !(~n <= 0); 154185#L26 call #t~ret0 := fact(~n - 1);< 154190#$Ultimate##0 ~n := #in~n; 155160#L25 assume ~n <= 0;#res := 1; 155361#factFINAL assume true; 155360#factEXIT >#66#return; 155359#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 155358#factFINAL assume true; 155355#factEXIT >#66#return; 155357#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 155400#factFINAL assume true; 155397#factEXIT >#66#return; 155396#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 155391#factFINAL assume true; 155363#factEXIT >#74#return; 155344#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 155353#$Ultimate##0 ~n := #in~n; 155406#L25 assume !(~n <= 0); 154188#L26 call #t~ret0 := fact(~n - 1);< 155159#$Ultimate##0 ~n := #in~n; 155158#L25 assume !(~n <= 0); 154185#L26 call #t~ret0 := fact(~n - 1);< 154190#$Ultimate##0 ~n := #in~n; 155158#L25 assume !(~n <= 0); 154185#L26 call #t~ret0 := fact(~n - 1);< 154190#$Ultimate##0 ~n := #in~n; 155160#L25 assume ~n <= 0;#res := 1; 155361#factFINAL assume true; 155360#factEXIT >#66#return; 155359#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 155358#factFINAL assume true; 155355#factEXIT >#66#return; 155357#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 155400#factFINAL assume true; 155397#factEXIT >#66#return; 155396#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 155391#factFINAL assume true; 155363#factEXIT >#76#return; 154183#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 155292#$Ultimate##0 ~n := #in~n; 155291#L25 assume !(~n <= 0); 154143#L26 call #t~ret0 := fact(~n - 1);< 154184#$Ultimate##0 ~n := #in~n; 154228#L25 assume ~n <= 0;#res := 1; 154164#factFINAL assume true; 154140#factEXIT >#66#return; 154146#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 155402#factFINAL assume true; 155083#factEXIT >#78#return; 154990#L30-8 [2023-02-18 08:56:21,768 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:21,768 INFO L85 PathProgramCache]: Analyzing trace with hash 2135700754, now seen corresponding path program 32 times [2023-02-18 08:56:21,768 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:21,768 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2039807604] [2023-02-18 08:56:21,768 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:21,768 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:21,775 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:21,775 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [811834129] [2023-02-18 08:56:21,775 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:56:21,775 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:21,776 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:21,778 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-18 08:56:21,779 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-18 08:56:21,990 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:56:21,990 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:21,990 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:22,071 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:22,111 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:22,111 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:22,111 INFO L85 PathProgramCache]: Analyzing trace with hash -1991629755, now seen corresponding path program 33 times [2023-02-18 08:56:22,111 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:22,111 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [9812152] [2023-02-18 08:56:22,111 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:22,112 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:22,117 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:22,117 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1988529887] [2023-02-18 08:56:22,117 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:56:22,117 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:22,118 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:22,120 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-18 08:56:22,121 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-18 08:56:22,269 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 9 check-sat command(s) [2023-02-18 08:56:22,270 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:22,271 INFO L263 TraceCheckSpWp]: Trace formula consists of 494 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-18 08:56:22,274 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:22,324 INFO L134 CoverageAnalysis]: Checked inductivity of 5381 backedges. 1867 proven. 15 refuted. 0 times theorem prover too weak. 3499 trivial. 0 not checked. [2023-02-18 08:56:22,324 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:22,405 INFO L134 CoverageAnalysis]: Checked inductivity of 5381 backedges. 659 proven. 120 refuted. 0 times theorem prover too weak. 4602 trivial. 0 not checked. [2023-02-18 08:56:22,406 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:22,406 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [9812152] [2023-02-18 08:56:22,406 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:22,406 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1988529887] [2023-02-18 08:56:22,406 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1988529887] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:22,406 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:22,406 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 16] total 17 [2023-02-18 08:56:22,406 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1132558753] [2023-02-18 08:56:22,406 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:22,406 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:22,406 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:22,407 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 17 interpolants. [2023-02-18 08:56:22,407 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=211, Unknown=0, NotChecked=0, Total=272 [2023-02-18 08:56:22,407 INFO L87 Difference]: Start difference. First operand 1363 states and 2022 transitions. cyclomatic complexity: 676 Second operand has 17 states, 16 states have (on average 3.5) internal successors, (56), 17 states have internal predecessors, (56), 11 states have call successors, (23), 2 states have call predecessors, (23), 6 states have return successors, (25), 9 states have call predecessors, (25), 11 states have call successors, (25) [2023-02-18 08:56:22,795 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:22,795 INFO L93 Difference]: Finished difference Result 1631 states and 2400 transitions. [2023-02-18 08:56:22,796 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1631 states and 2400 transitions. [2023-02-18 08:56:22,802 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 247 [2023-02-18 08:56:22,824 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1631 states to 1584 states and 2327 transitions. [2023-02-18 08:56:22,824 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 162 [2023-02-18 08:56:22,824 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 162 [2023-02-18 08:56:22,824 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1584 states and 2327 transitions. [2023-02-18 08:56:22,825 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:22,825 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1584 states and 2327 transitions. [2023-02-18 08:56:22,825 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1584 states and 2327 transitions. [2023-02-18 08:56:22,841 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1584 to 1399. [2023-02-18 08:56:22,843 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 1399 states, 888 states have (on average 1.0518018018018018) internal successors, (934), 890 states have internal predecessors, (934), 386 states have call successors, (391), 120 states have call predecessors, (391), 125 states have return successors, (685), 388 states have call predecessors, (685), 386 states have call successors, (685) [2023-02-18 08:56:22,847 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1399 states to 1399 states and 2010 transitions. [2023-02-18 08:56:22,847 INFO L240 hiAutomatonCegarLoop]: Abstraction has 1399 states and 2010 transitions. [2023-02-18 08:56:22,847 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2023-02-18 08:56:22,848 INFO L428 stractBuchiCegarLoop]: Abstraction has 1399 states and 2010 transitions. [2023-02-18 08:56:22,848 INFO L335 stractBuchiCegarLoop]: ======== Iteration 46 ============ [2023-02-18 08:56:22,848 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 1399 states and 2010 transitions. [2023-02-18 08:56:22,852 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 205 [2023-02-18 08:56:22,852 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:22,852 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:22,854 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [51, 51, 27, 27, 27, 27, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:22,854 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [48, 48, 33, 33, 33, 33, 15, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:22,854 INFO L748 eck$LassoCheckResult]: Stem: 159015#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 158965#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; 158966#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 158985#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; 159016#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 159223#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 159221#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 159217#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 159218#$Ultimate##0 ~n := #in~n; 159222#L25 assume ~n <= 0;#res := 1; 159220#factFINAL assume true; 159216#factEXIT >#68#return; 159212#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 159213#$Ultimate##0 ~n := #in~n; 159219#L25 assume ~n <= 0;#res := 1; 159215#factFINAL assume true; 159211#factEXIT >#70#return; 159208#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 159209#$Ultimate##0 ~n := #in~n; 159214#L25 assume ~n <= 0;#res := 1; 159210#factFINAL assume true; 159207#factEXIT >#72#return; 159206#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 159204#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 159201#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 159197#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 159195#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 159191#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 159192#$Ultimate##0 ~n := #in~n; 159203#L25 assume !(~n <= 0); 159199#L26 call #t~ret0 := fact(~n - 1);< 159200#$Ultimate##0 ~n := #in~n; 159205#L25 assume ~n <= 0;#res := 1; 159202#factFINAL assume true; 159198#factEXIT >#66#return; 159196#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159194#factFINAL assume true; 159190#factEXIT >#74#return; 159179#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 159180#$Ultimate##0 ~n := #in~n; 159183#L25 assume ~n <= 0;#res := 1; 159182#factFINAL assume true; 159178#factEXIT >#76#return; 159157#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 159158#$Ultimate##0 ~n := #in~n; 159193#L25 assume !(~n <= 0); 159186#L26 call #t~ret0 := fact(~n - 1);< 159187#$Ultimate##0 ~n := #in~n; 159189#L25 assume ~n <= 0;#res := 1; 159188#factFINAL assume true; 159185#factEXIT >#66#return; 159184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159159#factFINAL assume true; 159156#factEXIT >#78#return; 159155#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 159154#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 159153#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 159151#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 159149#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 159146#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 159127#$Ultimate##0 ~n := #in~n; 159172#L25 assume !(~n <= 0); 159165#L26 call #t~ret0 := fact(~n - 1);< 159169#$Ultimate##0 ~n := #in~n; 159177#L25 assume !(~n <= 0); 159164#L26 call #t~ret0 := fact(~n - 1);< 159171#$Ultimate##0 ~n := #in~n; 159176#L25 assume ~n <= 0;#res := 1; 159175#factFINAL assume true; 159174#factEXIT >#66#return; 159173#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159170#factFINAL assume true; 159163#factEXIT >#66#return; 159168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159145#factFINAL assume true; 159147#factEXIT >#74#return; 159011#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 159009#$Ultimate##0 ~n := #in~n; 159012#L25 assume ~n <= 0;#res := 1; 160311#factFINAL assume true; 160310#factEXIT >#76#return; 158963#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 159017#$Ultimate##0 ~n := #in~n; 160309#L25 assume !(~n <= 0); 158973#L26 call #t~ret0 := fact(~n - 1);< 158974#$Ultimate##0 ~n := #in~n; 160291#L25 assume !(~n <= 0); 158943#L26 call #t~ret0 := fact(~n - 1);< 160308#$Ultimate##0 ~n := #in~n; 159004#L25 assume ~n <= 0;#res := 1; 159005#factFINAL assume true; 158942#factEXIT >#66#return; 158944#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160320#factFINAL assume true; 160317#factEXIT >#66#return; 160318#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160325#factFINAL assume true; 160324#factEXIT >#78#return; 158969#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 158970#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 158987#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 159254#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 159148#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 159076#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 159080#$Ultimate##0 ~n := #in~n; 159113#L25 assume !(~n <= 0); 159094#L26 call #t~ret0 := fact(~n - 1);< 159099#$Ultimate##0 ~n := #in~n; 159136#L25 assume !(~n <= 0); 159096#L26 call #t~ret0 := fact(~n - 1);< 159132#$Ultimate##0 ~n := #in~n; 159136#L25 assume !(~n <= 0); 159096#L26 call #t~ret0 := fact(~n - 1);< 159132#$Ultimate##0 ~n := #in~n; 159136#L25 assume !(~n <= 0); 159096#L26 call #t~ret0 := fact(~n - 1);< 159132#$Ultimate##0 ~n := #in~n; 159141#L25 assume ~n <= 0;#res := 1; 159140#factFINAL assume true; 159139#factEXIT >#66#return; 159138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159134#factFINAL assume true; 159131#factEXIT >#66#return; 159129#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159119#factFINAL assume true; 159115#factEXIT >#66#return; 159097#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159144#factFINAL assume true; 159093#factEXIT >#66#return; 159087#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159081#factFINAL assume true; 159075#factEXIT >#74#return; 159078#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 159143#$Ultimate##0 ~n := #in~n; 159152#L25 assume ~n <= 0;#res := 1; 159150#factFINAL assume true; 159142#factEXIT >#76#return; 159077#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 159080#$Ultimate##0 ~n := #in~n; 159113#L25 assume !(~n <= 0); 159094#L26 call #t~ret0 := fact(~n - 1);< 159099#$Ultimate##0 ~n := #in~n; 159136#L25 assume !(~n <= 0); 159096#L26 call #t~ret0 := fact(~n - 1);< 159132#$Ultimate##0 ~n := #in~n; 159136#L25 assume !(~n <= 0); 159096#L26 call #t~ret0 := fact(~n - 1);< 159132#$Ultimate##0 ~n := #in~n; 159141#L25 assume ~n <= 0;#res := 1; 159140#factFINAL assume true; 159139#factEXIT >#66#return; 159138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159134#factFINAL assume true; 159131#factEXIT >#66#return; 159129#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159119#factFINAL assume true; 159115#factEXIT >#66#return; 159100#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159088#factFINAL assume true; 159082#factEXIT >#78#return; 159072#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 159071#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 159070#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 159069#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 158983#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 158975#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 158976#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 158997#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 159530#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 159533#$Ultimate##0 ~n := #in~n; 159577#L25 assume !(~n <= 0); 159557#L26 call #t~ret0 := fact(~n - 1);< 159575#$Ultimate##0 ~n := #in~n; 159626#L25 assume ~n <= 0;#res := 1; 159650#factFINAL assume true; 159643#factEXIT >#66#return; 159641#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159640#factFINAL assume true; 159529#factEXIT >#68#return; 159524#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 159527#$Ultimate##0 ~n := #in~n; 159692#L25 assume ~n <= 0;#res := 1; 159690#factFINAL assume true; 159522#factEXIT >#70#return; 159517#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 159520#$Ultimate##0 ~n := #in~n; 159737#L25 assume !(~n <= 0); 159375#L26 call #t~ret0 := fact(~n - 1);< 159410#$Ultimate##0 ~n := #in~n; 159457#L25 assume ~n <= 0;#res := 1; 159535#factFINAL assume true; 159458#factEXIT >#66#return; 159463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159718#factFINAL assume true; 159534#factEXIT >#72#return; 159528#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 159521#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 159515#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 159513#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 159454#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 159316#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 159322#$Ultimate##0 ~n := #in~n; 159413#L25 assume !(~n <= 0); 159377#L26 call #t~ret0 := fact(~n - 1);< 159410#$Ultimate##0 ~n := #in~n; 159457#L25 assume ~n <= 0;#res := 1; 159535#factFINAL assume true; 159458#factEXIT >#66#return; 159455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159418#factFINAL assume true; 159417#factEXIT >#68#return; 159275#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 159313#$Ultimate##0 ~n := #in~n; 159540#L25 assume !(~n <= 0); 159357#L26 call #t~ret0 := fact(~n - 1);< 159370#$Ultimate##0 ~n := #in~n; 159457#L25 assume ~n <= 0;#res := 1; 159535#factFINAL assume true; 159458#factEXIT >#66#return; 159462#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159420#factFINAL assume true; 159396#factEXIT >#70#return; 159059#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 159053#$Ultimate##0 ~n := #in~n; 159061#L25 assume ~n <= 0;#res := 1; 159054#factFINAL assume true; 159060#factEXIT >#72#return; 159414#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 159412#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 159411#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 159409#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 159384#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 159282#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 159313#$Ultimate##0 ~n := #in~n; 159540#L25 assume !(~n <= 0); 159357#L26 call #t~ret0 := fact(~n - 1);< 159370#$Ultimate##0 ~n := #in~n; 159480#L25 assume !(~n <= 0); 159362#L26 call #t~ret0 := fact(~n - 1);< 159435#$Ultimate##0 ~n := #in~n; 159607#L25 assume ~n <= 0;#res := 1; 159476#factFINAL assume true; 159432#factEXIT >#66#return; 159423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159404#factFINAL assume true; 159373#factEXIT >#66#return; 159372#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159343#factFINAL assume true; 159262#factEXIT >#74#return; 159264#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 159313#$Ultimate##0 ~n := #in~n; 159540#L25 assume !(~n <= 0); 159357#L26 call #t~ret0 := fact(~n - 1);< 159370#$Ultimate##0 ~n := #in~n; 159457#L25 assume ~n <= 0;#res := 1; 159535#factFINAL assume true; 159458#factEXIT >#66#return; 159462#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159420#factFINAL assume true; 159396#factEXIT >#76#return; 159286#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 159421#$Ultimate##0 ~n := #in~n; 159536#L25 assume !(~n <= 0); 159459#L26 call #t~ret0 := fact(~n - 1);< 159465#$Ultimate##0 ~n := #in~n; 159457#L25 assume ~n <= 0;#res := 1; 159535#factFINAL assume true; 159458#factEXIT >#66#return; 159462#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159420#factFINAL assume true; 159396#factEXIT >#78#return; 159400#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 160151#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 160150#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 160148#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 160096#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 158953#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 159013#$Ultimate##0 ~n := #in~n; 160094#L25 assume !(~n <= 0); 158934#L26 call #t~ret0 := fact(~n - 1);< 160082#$Ultimate##0 ~n := #in~n; 159257#L25 assume !(~n <= 0); 158937#L26 call #t~ret0 := fact(~n - 1);< 159256#$Ultimate##0 ~n := #in~n; 159257#L25 assume !(~n <= 0); 158937#L26 call #t~ret0 := fact(~n - 1);< 159256#$Ultimate##0 ~n := #in~n; 159259#L25 assume ~n <= 0;#res := 1; 160069#factFINAL assume true; 160068#factEXIT >#66#return; 160067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160066#factFINAL assume true; 160063#factEXIT >#66#return; 160065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160115#factFINAL assume true; 160114#factEXIT >#66#return; 160103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160104#factFINAL assume true; 160070#factEXIT >#74#return; 158954#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 159013#$Ultimate##0 ~n := #in~n; 160094#L25 assume !(~n <= 0); 158934#L26 call #t~ret0 := fact(~n - 1);< 160082#$Ultimate##0 ~n := #in~n; 160095#L25 assume ~n <= 0;#res := 1; 160093#factFINAL assume true; 160080#factEXIT >#66#return; 158995#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 158951#factFINAL assume true; 158960#factEXIT >#76#return; 158958#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 159013#$Ultimate##0 ~n := #in~n; 160094#L25 assume !(~n <= 0); 158934#L26 call #t~ret0 := fact(~n - 1);< 160082#$Ultimate##0 ~n := #in~n; 159257#L25 assume !(~n <= 0); 158937#L26 call #t~ret0 := fact(~n - 1);< 159256#$Ultimate##0 ~n := #in~n; 159259#L25 assume ~n <= 0;#res := 1; 160069#factFINAL assume true; 160068#factEXIT >#66#return; 160067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160066#factFINAL assume true; 160063#factEXIT >#66#return; 160061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160041#factFINAL assume true; 160031#factEXIT >#78#return; 158967#L30-8 [2023-02-18 08:56:22,854 INFO L750 eck$LassoCheckResult]: Loop: 158967#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 158968#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 158986#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 159083#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 159067#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 159065#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 159063#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 159018#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 158947#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 158948#$Ultimate##0 ~n := #in~n; 159616#L25 assume !(~n <= 0); 159354#L26 call #t~ret0 := fact(~n - 1);< 159370#$Ultimate##0 ~n := #in~n; 159480#L25 assume !(~n <= 0); 159362#L26 call #t~ret0 := fact(~n - 1);< 159435#$Ultimate##0 ~n := #in~n; 159480#L25 assume !(~n <= 0); 159362#L26 call #t~ret0 := fact(~n - 1);< 159435#$Ultimate##0 ~n := #in~n; 159607#L25 assume ~n <= 0;#res := 1; 159476#factFINAL assume true; 159432#factEXIT >#66#return; 159423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159404#factFINAL assume true; 159373#factEXIT >#66#return; 159381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159386#factFINAL assume true; 159352#factEXIT >#66#return; 159366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159618#factFINAL assume true; 159617#factEXIT >#68#return; 159502#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 159503#$Ultimate##0 ~n := #in~n; 159611#L25 assume ~n <= 0;#res := 1; 159506#factFINAL assume true; 159498#factEXIT >#70#return; 159442#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 159497#$Ultimate##0 ~n := #in~n; 159452#L25 assume !(~n <= 0); 159360#L26 call #t~ret0 := fact(~n - 1);< 159439#$Ultimate##0 ~n := #in~n; 159438#L25 assume !(~n <= 0); 159358#L26 call #t~ret0 := fact(~n - 1);< 159383#$Ultimate##0 ~n := #in~n; 159480#L25 assume !(~n <= 0); 159362#L26 call #t~ret0 := fact(~n - 1);< 159435#$Ultimate##0 ~n := #in~n; 159607#L25 assume ~n <= 0;#res := 1; 159476#factFINAL assume true; 159432#factEXIT >#66#return; 159423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159404#factFINAL assume true; 159373#factEXIT >#66#return; 159381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159386#factFINAL assume true; 159352#factEXIT >#66#return; 159369#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160123#factFINAL assume true; 159493#factEXIT >#72#return; 159494#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 159614#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 159613#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 159612#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 159610#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 159330#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 159342#$Ultimate##0 ~n := #in~n; 159464#L25 assume !(~n <= 0); 159359#L26 call #t~ret0 := fact(~n - 1);< 159456#$Ultimate##0 ~n := #in~n; 159419#L25 assume !(~n <= 0); 159376#L26 call #t~ret0 := fact(~n - 1);< 159395#$Ultimate##0 ~n := #in~n; 159477#L25 assume !(~n <= 0); 159433#L26 call #t~ret0 := fact(~n - 1);< 159434#$Ultimate##0 ~n := #in~n; 159607#L25 assume ~n <= 0;#res := 1; 159476#factFINAL assume true; 159432#factEXIT >#66#return; 159423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159404#factFINAL assume true; 159373#factEXIT >#66#return; 159381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159386#factFINAL assume true; 159352#factEXIT >#66#return; 159350#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159347#factFINAL assume true; 159323#factEXIT >#68#return; 159298#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 159314#$Ultimate##0 ~n := #in~n; 159723#L25 assume !(~n <= 0); 159353#L26 call #t~ret0 := fact(~n - 1);< 159370#$Ultimate##0 ~n := #in~n; 159457#L25 assume ~n <= 0;#res := 1; 159535#factFINAL assume true; 159458#factEXIT >#66#return; 159461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159468#factFINAL assume true; 159424#factEXIT >#70#return; 159022#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 159261#$Ultimate##0 ~n := #in~n; 159542#L25 assume !(~n <= 0); 159374#L26 call #t~ret0 := fact(~n - 1);< 159410#$Ultimate##0 ~n := #in~n; 159477#L25 assume !(~n <= 0); 159433#L26 call #t~ret0 := fact(~n - 1);< 159434#$Ultimate##0 ~n := #in~n; 159607#L25 assume ~n <= 0;#res := 1; 159476#factFINAL assume true; 159432#factEXIT >#66#return; 159423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159404#factFINAL assume true; 159373#factEXIT >#66#return; 159379#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159547#factFINAL assume true; 159473#factEXIT >#72#return; 159304#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 159488#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 159486#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 159484#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 159483#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 159327#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 159342#$Ultimate##0 ~n := #in~n; 159464#L25 assume !(~n <= 0); 159359#L26 call #t~ret0 := fact(~n - 1);< 159456#$Ultimate##0 ~n := #in~n; 159419#L25 assume !(~n <= 0); 159376#L26 call #t~ret0 := fact(~n - 1);< 159395#$Ultimate##0 ~n := #in~n; 159477#L25 assume !(~n <= 0); 159433#L26 call #t~ret0 := fact(~n - 1);< 159434#$Ultimate##0 ~n := #in~n; 159607#L25 assume ~n <= 0;#res := 1; 159476#factFINAL assume true; 159432#factEXIT >#66#return; 159423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159404#factFINAL assume true; 159373#factEXIT >#66#return; 159381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159386#factFINAL assume true; 159352#factEXIT >#66#return; 159350#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159347#factFINAL assume true; 159323#factEXIT >#68#return; 159296#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 159314#$Ultimate##0 ~n := #in~n; 159723#L25 assume !(~n <= 0); 159353#L26 call #t~ret0 := fact(~n - 1);< 159370#$Ultimate##0 ~n := #in~n; 159480#L25 assume !(~n <= 0); 159362#L26 call #t~ret0 := fact(~n - 1);< 159435#$Ultimate##0 ~n := #in~n; 159607#L25 assume ~n <= 0;#res := 1; 159476#factFINAL assume true; 159432#factEXIT >#66#return; 159423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159404#factFINAL assume true; 159373#factEXIT >#66#return; 159379#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159547#factFINAL assume true; 159473#factEXIT >#70#return; 159025#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 159431#$Ultimate##0 ~n := #in~n; 159538#L25 assume !(~n <= 0); 159460#L26 call #t~ret0 := fact(~n - 1);< 159465#$Ultimate##0 ~n := #in~n; 159457#L25 assume ~n <= 0;#res := 1; 159535#factFINAL assume true; 159458#factEXIT >#66#return; 159461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159468#factFINAL assume true; 159424#factEXIT >#72#return; 159422#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 159402#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 159371#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 159351#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 159349#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 159335#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 159342#$Ultimate##0 ~n := #in~n; 159464#L25 assume !(~n <= 0); 159359#L26 call #t~ret0 := fact(~n - 1);< 159456#$Ultimate##0 ~n := #in~n; 159419#L25 assume !(~n <= 0); 159376#L26 call #t~ret0 := fact(~n - 1);< 159395#$Ultimate##0 ~n := #in~n; 159477#L25 assume !(~n <= 0); 159433#L26 call #t~ret0 := fact(~n - 1);< 159434#$Ultimate##0 ~n := #in~n; 159607#L25 assume ~n <= 0;#res := 1; 159476#factFINAL assume true; 159432#factEXIT >#66#return; 159423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159404#factFINAL assume true; 159373#factEXIT >#66#return; 159381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159386#factFINAL assume true; 159352#factEXIT >#66#return; 159350#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159347#factFINAL assume true; 159323#factEXIT >#68#return; 159301#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 159314#$Ultimate##0 ~n := #in~n; 159723#L25 assume !(~n <= 0); 159353#L26 call #t~ret0 := fact(~n - 1);< 159370#$Ultimate##0 ~n := #in~n; 159480#L25 assume !(~n <= 0); 159362#L26 call #t~ret0 := fact(~n - 1);< 159435#$Ultimate##0 ~n := #in~n; 159480#L25 assume !(~n <= 0); 159362#L26 call #t~ret0 := fact(~n - 1);< 159435#$Ultimate##0 ~n := #in~n; 159607#L25 assume ~n <= 0;#res := 1; 159476#factFINAL assume true; 159432#factEXIT >#66#return; 159423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159404#factFINAL assume true; 159373#factEXIT >#66#return; 159381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159386#factFINAL assume true; 159352#factEXIT >#66#return; 159365#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159642#factFINAL assume true; 159291#factEXIT >#70#return; 159028#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 159431#$Ultimate##0 ~n := #in~n; 159538#L25 assume ~n <= 0;#res := 1; 159436#factFINAL assume true; 159019#factEXIT >#72#return; 159051#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 160098#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 160097#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 160086#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 160083#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 159001#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 159008#$Ultimate##0 ~n := #in~n; 159000#L25 assume !(~n <= 0); 158936#L26 call #t~ret0 := fact(~n - 1);< 159258#$Ultimate##0 ~n := #in~n; 159257#L25 assume !(~n <= 0); 158937#L26 call #t~ret0 := fact(~n - 1);< 159256#$Ultimate##0 ~n := #in~n; 159257#L25 assume !(~n <= 0); 158937#L26 call #t~ret0 := fact(~n - 1);< 159256#$Ultimate##0 ~n := #in~n; 159257#L25 assume !(~n <= 0); 158937#L26 call #t~ret0 := fact(~n - 1);< 159256#$Ultimate##0 ~n := #in~n; 159259#L25 assume ~n <= 0;#res := 1; 160069#factFINAL assume true; 160068#factEXIT >#66#return; 160067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160066#factFINAL assume true; 160063#factEXIT >#66#return; 160065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160115#factFINAL assume true; 160114#factEXIT >#66#return; 158941#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159255#factFINAL assume true; 158931#factEXIT >#66#return; 158939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160085#factFINAL assume true; 160074#factEXIT >#74#return; 159740#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 160078#$Ultimate##0 ~n := #in~n; 160100#L25 assume !(~n <= 0); 158932#L26 call #t~ret0 := fact(~n - 1);< 159258#$Ultimate##0 ~n := #in~n; 159257#L25 assume !(~n <= 0); 158937#L26 call #t~ret0 := fact(~n - 1);< 159256#$Ultimate##0 ~n := #in~n; 159257#L25 assume !(~n <= 0); 158937#L26 call #t~ret0 := fact(~n - 1);< 159256#$Ultimate##0 ~n := #in~n; 159257#L25 assume !(~n <= 0); 158937#L26 call #t~ret0 := fact(~n - 1);< 159256#$Ultimate##0 ~n := #in~n; 159259#L25 assume ~n <= 0;#res := 1; 160069#factFINAL assume true; 160068#factEXIT >#66#return; 160067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160066#factFINAL assume true; 160063#factEXIT >#66#return; 160065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160115#factFINAL assume true; 160114#factEXIT >#66#return; 158941#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 159255#factFINAL assume true; 158931#factEXIT >#66#return; 158939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160085#factFINAL assume true; 160074#factEXIT >#76#return; 159745#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 160028#$Ultimate##0 ~n := #in~n; 160029#L25 assume !(~n <= 0); 160081#L26 call #t~ret0 := fact(~n - 1);< 158972#$Ultimate##0 ~n := #in~n; 160095#L25 assume ~n <= 0;#res := 1; 160093#factFINAL assume true; 160080#factEXIT >#66#return; 160079#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160077#factFINAL assume true; 160076#factEXIT >#78#return; 158967#L30-8 [2023-02-18 08:56:22,855 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:22,855 INFO L85 PathProgramCache]: Analyzing trace with hash -168556198, now seen corresponding path program 33 times [2023-02-18 08:56:22,855 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:22,855 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1985782818] [2023-02-18 08:56:22,855 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:22,855 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:22,863 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:22,864 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1533162144] [2023-02-18 08:56:22,864 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:56:22,864 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:22,864 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:22,867 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-18 08:56:22,868 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-18 08:56:23,054 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 10 check-sat command(s) [2023-02-18 08:56:23,054 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:23,057 INFO L263 TraceCheckSpWp]: Trace formula consists of 629 conjuncts, 21 conjunts are in the unsatisfiable core [2023-02-18 08:56:23,059 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:23,119 INFO L134 CoverageAnalysis]: Checked inductivity of 5945 backedges. 3543 proven. 112 refuted. 0 times theorem prover too weak. 2290 trivial. 0 not checked. [2023-02-18 08:56:23,119 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:23,272 INFO L134 CoverageAnalysis]: Checked inductivity of 5945 backedges. 579 proven. 950 refuted. 0 times theorem prover too weak. 4416 trivial. 0 not checked. [2023-02-18 08:56:23,272 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:23,272 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1985782818] [2023-02-18 08:56:23,273 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:23,273 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1533162144] [2023-02-18 08:56:23,273 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1533162144] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:23,273 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:23,273 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 21] total 24 [2023-02-18 08:56:23,273 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [784410288] [2023-02-18 08:56:23,273 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:23,273 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:56:23,273 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:23,274 INFO L85 PathProgramCache]: Analyzing trace with hash 2015189565, now seen corresponding path program 34 times [2023-02-18 08:56:23,274 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:23,274 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1813129680] [2023-02-18 08:56:23,274 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:23,274 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:23,279 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:23,279 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [726859613] [2023-02-18 08:56:23,279 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:56:23,280 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:23,280 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:23,281 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-18 08:56:23,282 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-18 08:56:23,447 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:56:23,448 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:23,449 INFO L263 TraceCheckSpWp]: Trace formula consists of 659 conjuncts, 22 conjunts are in the unsatisfiable core [2023-02-18 08:56:23,451 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:23,517 INFO L134 CoverageAnalysis]: Checked inductivity of 5633 backedges. 1118 proven. 703 refuted. 0 times theorem prover too weak. 3812 trivial. 0 not checked. [2023-02-18 08:56:23,518 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:23,682 INFO L134 CoverageAnalysis]: Checked inductivity of 5633 backedges. 689 proven. 780 refuted. 0 times theorem prover too weak. 4164 trivial. 0 not checked. [2023-02-18 08:56:23,682 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:23,682 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1813129680] [2023-02-18 08:56:23,682 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:23,682 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [726859613] [2023-02-18 08:56:23,682 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [726859613] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:23,682 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:23,683 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 21] total 24 [2023-02-18 08:56:23,683 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1175122581] [2023-02-18 08:56:23,683 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:23,683 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:23,683 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:23,684 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 24 interpolants. [2023-02-18 08:56:23,684 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=87, Invalid=465, Unknown=0, NotChecked=0, Total=552 [2023-02-18 08:56:23,684 INFO L87 Difference]: Start difference. First operand 1399 states and 2010 transitions. cyclomatic complexity: 627 Second operand has 24 states, 21 states have (on average 2.9523809523809526) internal successors, (62), 24 states have internal predecessors, (62), 15 states have call successors, (20), 2 states have call predecessors, (20), 10 states have return successors, (24), 11 states have call predecessors, (24), 15 states have call successors, (24) [2023-02-18 08:56:24,263 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:24,263 INFO L93 Difference]: Finished difference Result 1748 states and 2550 transitions. [2023-02-18 08:56:24,263 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1748 states and 2550 transitions. [2023-02-18 08:56:24,271 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 317 [2023-02-18 08:56:24,279 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1748 states to 1744 states and 2542 transitions. [2023-02-18 08:56:24,279 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 202 [2023-02-18 08:56:24,279 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 208 [2023-02-18 08:56:24,279 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1744 states and 2542 transitions. [2023-02-18 08:56:24,280 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:24,280 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1744 states and 2542 transitions. [2023-02-18 08:56:24,280 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1744 states and 2542 transitions. [2023-02-18 08:56:24,297 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1744 to 1537. [2023-02-18 08:56:24,298 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 1537 states, 970 states have (on average 1.0597938144329897) internal successors, (1028), 970 states have internal predecessors, (1028), 442 states have call successors, (447), 144 states have call predecessors, (447), 125 states have return successors, (777), 422 states have call predecessors, (777), 442 states have call successors, (777) [2023-02-18 08:56:24,303 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1537 states to 1537 states and 2252 transitions. [2023-02-18 08:56:24,303 INFO L240 hiAutomatonCegarLoop]: Abstraction has 1537 states and 2252 transitions. [2023-02-18 08:56:24,303 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 24 states. [2023-02-18 08:56:24,304 INFO L428 stractBuchiCegarLoop]: Abstraction has 1537 states and 2252 transitions. [2023-02-18 08:56:24,304 INFO L335 stractBuchiCegarLoop]: ======== Iteration 47 ============ [2023-02-18 08:56:24,304 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 1537 states and 2252 transitions. [2023-02-18 08:56:24,307 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 242 [2023-02-18 08:56:24,307 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:24,308 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:24,309 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [53, 53, 29, 29, 29, 29, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:24,309 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [47, 47, 32, 32, 32, 32, 15, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:24,309 INFO L748 eck$LassoCheckResult]: Stem: 166017#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 165958#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; 165959#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 165979#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; 166018#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 166234#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 166232#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 166228#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 166229#$Ultimate##0 ~n := #in~n; 166233#L25 assume ~n <= 0;#res := 1; 166230#factFINAL assume true; 166227#factEXIT >#68#return; 166223#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 166224#$Ultimate##0 ~n := #in~n; 166231#L25 assume ~n <= 0;#res := 1; 166226#factFINAL assume true; 166222#factEXIT >#70#return; 166219#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 166220#$Ultimate##0 ~n := #in~n; 166225#L25 assume ~n <= 0;#res := 1; 166221#factFINAL assume true; 166218#factEXIT >#72#return; 166217#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 166216#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 166214#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 166211#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 166208#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 166196#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 166197#$Ultimate##0 ~n := #in~n; 166215#L25 assume !(~n <= 0); 166205#L26 call #t~ret0 := fact(~n - 1);< 166206#$Ultimate##0 ~n := #in~n; 166213#L25 assume ~n <= 0;#res := 1; 166210#factFINAL assume true; 166204#factEXIT >#66#return; 166203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166201#factFINAL assume true; 166195#factEXIT >#74#return; 166190#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 166191#$Ultimate##0 ~n := #in~n; 166207#L25 assume ~n <= 0;#res := 1; 166194#factFINAL assume true; 166189#factEXIT >#76#return; 166186#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 166187#$Ultimate##0 ~n := #in~n; 166202#L25 assume !(~n <= 0); 166199#L26 call #t~ret0 := fact(~n - 1);< 166200#$Ultimate##0 ~n := #in~n; 166212#L25 assume ~n <= 0;#res := 1; 166209#factFINAL assume true; 166198#factEXIT >#66#return; 166193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166188#factFINAL assume true; 166185#factEXIT >#78#return; 166184#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 166183#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 166182#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 166181#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 166180#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 166178#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 166157#$Ultimate##0 ~n := #in~n; 166252#L25 assume !(~n <= 0); 166248#L26 call #t~ret0 := fact(~n - 1);< 166250#$Ultimate##0 ~n := #in~n; 166261#L25 assume !(~n <= 0); 166246#L26 call #t~ret0 := fact(~n - 1);< 166260#$Ultimate##0 ~n := #in~n; 166266#L25 assume ~n <= 0;#res := 1; 166265#factFINAL assume true; 166264#factEXIT >#66#return; 166263#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166259#factFINAL assume true; 166254#factEXIT >#66#return; 166239#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166177#factFINAL assume true; 166179#factEXIT >#74#return; 166167#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 166168#$Ultimate##0 ~n := #in~n; 166278#L25 assume ~n <= 0;#res := 1; 166276#factFINAL assume true; 166269#factEXIT >#76#return; 166270#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 166284#$Ultimate##0 ~n := #in~n; 166326#L25 assume !(~n <= 0); 166290#L26 call #t~ret0 := fact(~n - 1);< 166295#$Ultimate##0 ~n := #in~n; 166317#L25 assume !(~n <= 0); 166292#L26 call #t~ret0 := fact(~n - 1);< 166311#$Ultimate##0 ~n := #in~n; 166316#L25 assume ~n <= 0;#res := 1; 166315#factFINAL assume true; 166310#factEXIT >#66#return; 166308#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166307#factFINAL assume true; 166302#factEXIT >#66#return; 166303#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 167448#factFINAL assume true; 167447#factEXIT >#78#return; 166158#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 166148#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 166144#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 166108#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 166099#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 166085#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 166089#$Ultimate##0 ~n := #in~n; 166136#L25 assume !(~n <= 0); 166103#L26 call #t~ret0 := fact(~n - 1);< 166107#$Ultimate##0 ~n := #in~n; 166123#L25 assume !(~n <= 0); 166102#L26 call #t~ret0 := fact(~n - 1);< 166121#$Ultimate##0 ~n := #in~n; 166123#L25 assume !(~n <= 0); 166102#L26 call #t~ret0 := fact(~n - 1);< 166121#$Ultimate##0 ~n := #in~n; 166123#L25 assume !(~n <= 0); 166102#L26 call #t~ret0 := fact(~n - 1);< 166121#$Ultimate##0 ~n := #in~n; 166153#L25 assume ~n <= 0;#res := 1; 166151#factFINAL assume true; 166147#factEXIT >#66#return; 166143#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166140#factFINAL assume true; 166120#factEXIT >#66#return; 166115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166114#factFINAL assume true; 166111#factEXIT >#66#return; 166105#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166171#factFINAL assume true; 166101#factEXIT >#66#return; 166098#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166091#factFINAL assume true; 166083#factEXIT >#74#return; 166086#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 166094#$Ultimate##0 ~n := #in~n; 166113#L25 assume ~n <= 0;#res := 1; 166112#factFINAL assume true; 166093#factEXIT >#76#return; 166084#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 166089#$Ultimate##0 ~n := #in~n; 166136#L25 assume !(~n <= 0); 166103#L26 call #t~ret0 := fact(~n - 1);< 166107#$Ultimate##0 ~n := #in~n; 166123#L25 assume !(~n <= 0); 166102#L26 call #t~ret0 := fact(~n - 1);< 166121#$Ultimate##0 ~n := #in~n; 166123#L25 assume !(~n <= 0); 166102#L26 call #t~ret0 := fact(~n - 1);< 166121#$Ultimate##0 ~n := #in~n; 166153#L25 assume ~n <= 0;#res := 1; 166151#factFINAL assume true; 166147#factEXIT >#66#return; 166143#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166140#factFINAL assume true; 166120#factEXIT >#66#return; 166115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166114#factFINAL assume true; 166111#factEXIT >#66#return; 166110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166109#factFINAL assume true; 166092#factEXIT >#78#return; 166082#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 166081#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 166080#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 166079#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 166078#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 165968#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 165969#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 165991#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 165927#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 166608#$Ultimate##0 ~n := #in~n; 166632#L25 assume !(~n <= 0); 166624#L26 call #t~ret0 := fact(~n - 1);< 166630#$Ultimate##0 ~n := #in~n; 166642#L25 assume ~n <= 0;#res := 1; 166635#factFINAL assume true; 166613#factEXIT >#66#return; 166611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166609#factFINAL assume true; 166607#factEXIT >#68#return; 166601#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 166606#$Ultimate##0 ~n := #in~n; 166652#L25 assume ~n <= 0;#res := 1; 166610#factFINAL assume true; 166599#factEXIT >#70#return; 166534#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 166546#$Ultimate##0 ~n := #in~n; 166789#L25 assume !(~n <= 0); 166457#L26 call #t~ret0 := fact(~n - 1);< 166535#$Ultimate##0 ~n := #in~n; 166553#L25 assume ~n <= 0;#res := 1; 166533#factFINAL assume true; 166520#factEXIT >#66#return; 166525#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166583#factFINAL assume true; 166545#factEXIT >#72#return; 166543#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 166542#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 166541#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 166540#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 166528#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 166423#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 166428#$Ultimate##0 ~n := #in~n; 166550#L25 assume !(~n <= 0); 166459#L26 call #t~ret0 := fact(~n - 1);< 166535#$Ultimate##0 ~n := #in~n; 166553#L25 assume ~n <= 0;#res := 1; 166533#factFINAL assume true; 166520#factEXIT >#66#return; 166524#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166519#factFINAL assume true; 166508#factEXIT >#68#return; 166350#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 166410#$Ultimate##0 ~n := #in~n; 166537#L25 assume !(~n <= 0); 166460#L26 call #t~ret0 := fact(~n - 1);< 166526#$Ultimate##0 ~n := #in~n; 166553#L25 assume ~n <= 0;#res := 1; 166533#factFINAL assume true; 166520#factEXIT >#66#return; 166518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166505#factFINAL assume true; 166496#factEXIT >#70#return; 166068#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 166064#$Ultimate##0 ~n := #in~n; 166503#L25 assume ~n <= 0;#res := 1; 166065#factFINAL assume true; 166071#factEXIT >#72#return; 166490#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 166488#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 166487#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 166478#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 166476#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 166355#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 166413#$Ultimate##0 ~n := #in~n; 166788#L25 assume !(~n <= 0); 166463#L26 call #t~ret0 := fact(~n - 1);< 166594#$Ultimate##0 ~n := #in~n; 166847#L25 assume !(~n <= 0); 166467#L26 call #t~ret0 := fact(~n - 1);< 166699#$Ultimate##0 ~n := #in~n; 166847#L25 assume !(~n <= 0); 166467#L26 call #t~ret0 := fact(~n - 1);< 166699#$Ultimate##0 ~n := #in~n; 166009#L25 assume ~n <= 0;#res := 1; 166692#factFINAL assume true; 166683#factEXIT >#66#return; 166681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166677#factFINAL assume true; 166451#factEXIT >#66#return; 166473#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166693#factFINAL assume true; 166479#factEXIT >#66#return; 166482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166819#factFINAL assume true; 166809#factEXIT >#74#return; 166348#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 166414#$Ultimate##0 ~n := #in~n; 166824#L25 assume !(~n <= 0); 166454#L26 call #t~ret0 := fact(~n - 1);< 166474#$Ultimate##0 ~n := #in~n; 166845#L25 assume !(~n <= 0); 166466#L26 call #t~ret0 := fact(~n - 1);< 166678#$Ultimate##0 ~n := #in~n; 166009#L25 assume ~n <= 0;#res := 1; 166692#factFINAL assume true; 166683#factEXIT >#66#return; 166681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166677#factFINAL assume true; 166451#factEXIT >#66#return; 166449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166412#factFINAL assume true; 166345#factEXIT >#76#return; 166370#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 166507#$Ultimate##0 ~n := #in~n; 166538#L25 assume !(~n <= 0); 166521#L26 call #t~ret0 := fact(~n - 1);< 166527#$Ultimate##0 ~n := #in~n; 166553#L25 assume ~n <= 0;#res := 1; 166533#factFINAL assume true; 166520#factEXIT >#66#return; 166518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166505#factFINAL assume true; 166496#factEXIT >#78#return; 166500#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 166807#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 166812#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 166798#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 166794#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 166795#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 167374#$Ultimate##0 ~n := #in~n; 167411#L25 assume !(~n <= 0); 165922#L26 call #t~ret0 := fact(~n - 1);< 167408#$Ultimate##0 ~n := #in~n; 167341#L25 assume !(~n <= 0); 165918#L26 call #t~ret0 := fact(~n - 1);< 165967#$Ultimate##0 ~n := #in~n; 167341#L25 assume !(~n <= 0); 165918#L26 call #t~ret0 := fact(~n - 1);< 165967#$Ultimate##0 ~n := #in~n; 166006#L25 assume ~n <= 0;#res := 1; 167413#factFINAL assume true; 167412#factEXIT >#66#return; 167410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 167407#factFINAL assume true; 167402#factEXIT >#66#return; 167401#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 167399#factFINAL assume true; 167389#factEXIT >#66#return; 167386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 167384#factFINAL assume true; 167382#factEXIT >#74#return; 166010#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 166011#$Ultimate##0 ~n := #in~n; 167423#L25 assume !(~n <= 0); 167392#L26 call #t~ret0 := fact(~n - 1);< 167422#$Ultimate##0 ~n := #in~n; 167431#L25 assume ~n <= 0;#res := 1; 167425#factFINAL assume true; 167419#factEXIT >#66#return; 167418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 167417#factFINAL assume true; 167388#factEXIT >#76#return; 167373#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 167374#$Ultimate##0 ~n := #in~n; 167411#L25 assume !(~n <= 0); 165922#L26 call #t~ret0 := fact(~n - 1);< 167408#$Ultimate##0 ~n := #in~n; 167341#L25 assume !(~n <= 0); 165918#L26 call #t~ret0 := fact(~n - 1);< 165967#$Ultimate##0 ~n := #in~n; 166006#L25 assume ~n <= 0;#res := 1; 167413#factFINAL assume true; 167412#factEXIT >#66#return; 167410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 167407#factFINAL assume true; 167402#factEXIT >#66#return; 167404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 167375#factFINAL assume true; 167380#factEXIT >#78#return; 165960#L30-8 [2023-02-18 08:56:24,310 INFO L750 eck$LassoCheckResult]: Loop: 165960#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 165961#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 165980#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 166336#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 166337#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 166714#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 166075#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 166076#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 165934#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 165935#$Ultimate##0 ~n := #in~n; 166657#L25 assume !(~n <= 0); 166455#L26 call #t~ret0 := fact(~n - 1);< 166594#$Ultimate##0 ~n := #in~n; 166847#L25 assume !(~n <= 0); 166467#L26 call #t~ret0 := fact(~n - 1);< 166699#$Ultimate##0 ~n := #in~n; 166847#L25 assume !(~n <= 0); 166467#L26 call #t~ret0 := fact(~n - 1);< 166699#$Ultimate##0 ~n := #in~n; 166009#L25 assume ~n <= 0;#res := 1; 166692#factFINAL assume true; 166683#factEXIT >#66#return; 166681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166677#factFINAL assume true; 166451#factEXIT >#66#return; 166473#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166693#factFINAL assume true; 166479#factEXIT >#66#return; 166483#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166666#factFINAL assume true; 166664#factEXIT >#68#return; 166577#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 166579#$Ultimate##0 ~n := #in~n; 166645#L25 assume ~n <= 0;#res := 1; 166644#factFINAL assume true; 166574#factEXIT >#70#return; 166565#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 166572#$Ultimate##0 ~n := #in~n; 166704#L25 assume !(~n <= 0); 166480#L26 call #t~ret0 := fact(~n - 1);< 166701#$Ultimate##0 ~n := #in~n; 166846#L25 assume !(~n <= 0); 166465#L26 call #t~ret0 := fact(~n - 1);< 166595#$Ultimate##0 ~n := #in~n; 166847#L25 assume !(~n <= 0); 166467#L26 call #t~ret0 := fact(~n - 1);< 166699#$Ultimate##0 ~n := #in~n; 166009#L25 assume ~n <= 0;#res := 1; 166692#factFINAL assume true; 166683#factEXIT >#66#return; 166681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166677#factFINAL assume true; 166451#factEXIT >#66#return; 166473#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166693#factFINAL assume true; 166479#factEXIT >#66#return; 166485#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166700#factFINAL assume true; 166564#factEXIT >#72#return; 166569#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 166792#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 166791#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 166790#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 166787#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 166435#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 166448#$Ultimate##0 ~n := #in~n; 166712#L25 assume !(~n <= 0); 166481#L26 call #t~ret0 := fact(~n - 1);< 166709#$Ultimate##0 ~n := #in~n; 166853#L25 assume !(~n <= 0); 166468#L26 call #t~ret0 := fact(~n - 1);< 166678#$Ultimate##0 ~n := #in~n; 166850#L25 assume !(~n <= 0); 166008#L26 call #t~ret0 := fact(~n - 1);< 166007#$Ultimate##0 ~n := #in~n; 166009#L25 assume ~n <= 0;#res := 1; 166692#factFINAL assume true; 166683#factEXIT >#66#return; 166681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166677#factFINAL assume true; 166451#factEXIT >#66#return; 166473#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166693#factFINAL assume true; 166479#factEXIT >#66#return; 166484#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166676#factFINAL assume true; 166429#factEXIT >#68#return; 166380#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 166411#$Ultimate##0 ~n := #in~n; 166779#L25 assume !(~n <= 0); 166456#L26 call #t~ret0 := fact(~n - 1);< 166526#$Ultimate##0 ~n := #in~n; 166553#L25 assume ~n <= 0;#res := 1; 166533#factFINAL assume true; 166520#factEXIT >#66#return; 166523#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166529#factFINAL assume true; 166509#factEXIT >#70#return; 166049#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 166334#$Ultimate##0 ~n := #in~n; 166584#L25 assume !(~n <= 0); 166458#L26 call #t~ret0 := fact(~n - 1);< 166535#$Ultimate##0 ~n := #in~n; 166850#L25 assume !(~n <= 0); 166008#L26 call #t~ret0 := fact(~n - 1);< 166007#$Ultimate##0 ~n := #in~n; 166009#L25 assume ~n <= 0;#res := 1; 166692#factFINAL assume true; 166683#factEXIT >#66#return; 166681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166677#factFINAL assume true; 166451#factEXIT >#66#return; 166470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166544#factFINAL assume true; 166531#factEXIT >#72#return; 166393#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 166589#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 166587#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 166586#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 166585#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 166446#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 166448#$Ultimate##0 ~n := #in~n; 166712#L25 assume !(~n <= 0); 166481#L26 call #t~ret0 := fact(~n - 1);< 166709#$Ultimate##0 ~n := #in~n; 166853#L25 assume !(~n <= 0); 166468#L26 call #t~ret0 := fact(~n - 1);< 166678#$Ultimate##0 ~n := #in~n; 166850#L25 assume !(~n <= 0); 166008#L26 call #t~ret0 := fact(~n - 1);< 166007#$Ultimate##0 ~n := #in~n; 166009#L25 assume ~n <= 0;#res := 1; 166692#factFINAL assume true; 166683#factEXIT >#66#return; 166681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166677#factFINAL assume true; 166451#factEXIT >#66#return; 166473#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166693#factFINAL assume true; 166479#factEXIT >#66#return; 166484#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166676#factFINAL assume true; 166429#factEXIT >#68#return; 166382#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 166411#$Ultimate##0 ~n := #in~n; 166779#L25 assume !(~n <= 0); 166456#L26 call #t~ret0 := fact(~n - 1);< 166526#$Ultimate##0 ~n := #in~n; 166845#L25 assume !(~n <= 0); 166466#L26 call #t~ret0 := fact(~n - 1);< 166678#$Ultimate##0 ~n := #in~n; 166009#L25 assume ~n <= 0;#res := 1; 166692#factFINAL assume true; 166683#factEXIT >#66#return; 166681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166677#factFINAL assume true; 166451#factEXIT >#66#return; 166470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166544#factFINAL assume true; 166531#factEXIT >#70#return; 166038#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 166517#$Ultimate##0 ~n := #in~n; 166557#L25 assume !(~n <= 0); 166522#L26 call #t~ret0 := fact(~n - 1);< 166527#$Ultimate##0 ~n := #in~n; 166553#L25 assume ~n <= 0;#res := 1; 166533#factFINAL assume true; 166520#factEXIT >#66#return; 166523#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166529#factFINAL assume true; 166509#factEXIT >#72#return; 166512#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 166687#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 166685#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 166475#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 166450#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 166439#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 166448#$Ultimate##0 ~n := #in~n; 166712#L25 assume !(~n <= 0); 166481#L26 call #t~ret0 := fact(~n - 1);< 166709#$Ultimate##0 ~n := #in~n; 166853#L25 assume !(~n <= 0); 166468#L26 call #t~ret0 := fact(~n - 1);< 166678#$Ultimate##0 ~n := #in~n; 166850#L25 assume !(~n <= 0); 166008#L26 call #t~ret0 := fact(~n - 1);< 166007#$Ultimate##0 ~n := #in~n; 166009#L25 assume ~n <= 0;#res := 1; 166692#factFINAL assume true; 166683#factEXIT >#66#return; 166681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166677#factFINAL assume true; 166451#factEXIT >#66#return; 166473#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166693#factFINAL assume true; 166479#factEXIT >#66#return; 166484#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166676#factFINAL assume true; 166429#factEXIT >#68#return; 166389#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 166411#$Ultimate##0 ~n := #in~n; 166779#L25 assume !(~n <= 0); 166456#L26 call #t~ret0 := fact(~n - 1);< 166526#$Ultimate##0 ~n := #in~n; 166845#L25 assume !(~n <= 0); 166466#L26 call #t~ret0 := fact(~n - 1);< 166678#$Ultimate##0 ~n := #in~n; 166850#L25 assume !(~n <= 0); 166008#L26 call #t~ret0 := fact(~n - 1);< 166007#$Ultimate##0 ~n := #in~n; 166009#L25 assume ~n <= 0;#res := 1; 166692#factFINAL assume true; 166683#factEXIT >#66#return; 166681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166677#factFINAL assume true; 166451#factEXIT >#66#return; 166473#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166693#factFINAL assume true; 166479#factEXIT >#66#return; 166477#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 166415#factFINAL assume true; 166374#factEXIT >#70#return; 166043#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 166517#$Ultimate##0 ~n := #in~n; 166557#L25 assume ~n <= 0;#res := 1; 166073#factFINAL assume true; 166025#factEXIT >#72#return; 165972#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 165973#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 165985#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 166332#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 167434#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 165998#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 165913#$Ultimate##0 ~n := #in~n; 165994#L25 assume !(~n <= 0); 165917#L26 call #t~ret0 := fact(~n - 1);< 167340#$Ultimate##0 ~n := #in~n; 167341#L25 assume !(~n <= 0); 165918#L26 call #t~ret0 := fact(~n - 1);< 165967#$Ultimate##0 ~n := #in~n; 167341#L25 assume !(~n <= 0); 165918#L26 call #t~ret0 := fact(~n - 1);< 165967#$Ultimate##0 ~n := #in~n; 167341#L25 assume !(~n <= 0); 165918#L26 call #t~ret0 := fact(~n - 1);< 165967#$Ultimate##0 ~n := #in~n; 166006#L25 assume ~n <= 0;#res := 1; 167413#factFINAL assume true; 167412#factEXIT >#66#return; 167410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 167407#factFINAL assume true; 167402#factEXIT >#66#return; 167401#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 167399#factFINAL assume true; 167389#factEXIT >#66#return; 165924#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 167446#factFINAL assume true; 165916#factEXIT >#66#return; 165923#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 167441#factFINAL assume true; 167432#factEXIT >#74#return; 165943#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 167430#$Ultimate##0 ~n := #in~n; 167429#L25 assume !(~n <= 0); 167393#L26 call #t~ret0 := fact(~n - 1);< 167394#$Ultimate##0 ~n := #in~n; 167409#L25 assume !(~n <= 0); 167403#L26 call #t~ret0 := fact(~n - 1);< 167406#$Ultimate##0 ~n := #in~n; 167414#L25 assume !(~n <= 0); 166005#L26 call #t~ret0 := fact(~n - 1);< 166004#$Ultimate##0 ~n := #in~n; 166006#L25 assume ~n <= 0;#res := 1; 167413#factFINAL assume true; 167412#factEXIT >#66#return; 167410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 167407#factFINAL assume true; 167402#factEXIT >#66#return; 167401#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 167399#factFINAL assume true; 167389#factEXIT >#66#return; 165988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 165938#factFINAL assume true; 165947#factEXIT >#76#return; 165965#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 167416#$Ultimate##0 ~n := #in~n; 167445#L25 assume !(~n <= 0); 165964#L26 call #t~ret0 := fact(~n - 1);< 165966#$Ultimate##0 ~n := #in~n; 167431#L25 assume ~n <= 0;#res := 1; 167425#factFINAL assume true; 167419#factEXIT >#66#return; 167421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 167415#factFINAL assume true; 166339#factEXIT >#78#return; 165960#L30-8 [2023-02-18 08:56:24,310 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:24,310 INFO L85 PathProgramCache]: Analyzing trace with hash 1298557290, now seen corresponding path program 34 times [2023-02-18 08:56:24,310 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:24,311 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [76897289] [2023-02-18 08:56:24,311 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:24,311 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:24,341 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:24,341 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1604505860] [2023-02-18 08:56:24,341 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:56:24,341 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:24,342 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:24,346 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-18 08:56:24,347 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-18 08:56:24,545 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:56:24,545 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:24,548 INFO L263 TraceCheckSpWp]: Trace formula consists of 772 conjuncts, 15 conjunts are in the unsatisfiable core [2023-02-18 08:56:24,550 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:24,580 INFO L134 CoverageAnalysis]: Checked inductivity of 6467 backedges. 3359 proven. 29 refuted. 0 times theorem prover too weak. 3079 trivial. 0 not checked. [2023-02-18 08:56:24,580 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:24,651 INFO L134 CoverageAnalysis]: Checked inductivity of 6467 backedges. 339 proven. 586 refuted. 0 times theorem prover too weak. 5542 trivial. 0 not checked. [2023-02-18 08:56:24,652 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:24,652 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [76897289] [2023-02-18 08:56:24,652 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:24,652 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1604505860] [2023-02-18 08:56:24,652 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1604505860] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:24,652 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:24,652 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 16 [2023-02-18 08:56:24,652 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2000695401] [2023-02-18 08:56:24,653 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:24,653 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:56:24,653 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:24,653 INFO L85 PathProgramCache]: Analyzing trace with hash -1833602635, now seen corresponding path program 35 times [2023-02-18 08:56:24,653 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:24,653 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [146218149] [2023-02-18 08:56:24,654 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:24,656 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:24,668 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:24,669 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1269902282] [2023-02-18 08:56:24,669 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:56:24,670 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:24,670 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:24,673 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-18 08:56:24,674 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-18 08:56:24,907 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 15 check-sat command(s) [2023-02-18 08:56:24,907 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:24,908 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:25,059 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:25,092 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:25,186 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:56:25,186 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:56:25,186 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:56:25,186 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:56:25,186 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-18 08:56:25,187 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:25,187 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:56:25,187 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:56:25,187 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration47_Loop [2023-02-18 08:56:25,187 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:56:25,187 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:56:25,189 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-18 08:56:25,189 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-18 08:56:25,190 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-18 08:56:25,193 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-18 08:56:25,194 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-18 08:56:25,194 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-18 08:56:25,197 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:56:25,197 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-18 08:56:25,197 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:25,197 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:25,201 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-18 08:56:25,201 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-18 08:56:25,203 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:56:25,203 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:56:25,224 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:56:25,224 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-18 08:56:25,227 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-18 08:56:25,227 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:25,228 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:25,234 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-18 08:56:25,236 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-18 08:56:25,237 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:56:25,238 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:56:25,244 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:56:25,244 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-18 08:56:25,247 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-18 08:56:25,247 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:25,247 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:25,249 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-18 08:56:25,250 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-18 08:56:25,252 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:56:25,252 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:56:25,264 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (171)] Forceful destruction successful, exit code 0 [2023-02-18 08:56:25,264 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:25,265 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:25,266 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-18 08:56:25,266 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-18 08:56:25,269 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-18 08:56:25,269 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:56:25,285 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-18 08:56:25,288 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (172)] Forceful destruction successful, exit code 0 [2023-02-18 08:56:25,289 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:56:25,289 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:56:25,289 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:56:25,289 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:56:25,289 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-18 08:56:25,289 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:25,289 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:56:25,289 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:56:25,289 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration47_Loop [2023-02-18 08:56:25,289 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:56:25,289 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:56:25,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-18 08:56:25,292 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-18 08:56:25,293 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-18 08:56:25,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-18 08:56:25,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-18 08:56:25,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-18 08:56:25,301 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:56:25,301 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-18 08:56:25,301 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:25,301 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:25,303 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-18 08:56:25,303 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-18 08:56:25,306 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-18 08:56:25,312 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:56:25,312 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:56:25,312 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:56:25,312 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:56:25,312 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:56:25,312 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:56:25,313 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:56:25,313 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:56:25,316 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (173)] Forceful destruction successful, exit code 0 [2023-02-18 08:56:25,316 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:25,316 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:25,318 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-18 08:56:25,318 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-18 08:56:25,321 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-18 08:56:25,327 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:56:25,327 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:56:25,327 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:56:25,327 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:56:25,327 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:56:25,327 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:56:25,327 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:56:25,328 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:56:25,331 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (174)] Forceful destruction successful, exit code 0 [2023-02-18 08:56:25,331 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:25,331 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:25,332 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-18 08:56:25,333 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-18 08:56:25,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-18 08:56:25,341 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:56:25,342 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:56:25,342 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:56:25,342 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:56:25,342 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:56:25,347 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:56:25,347 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:56:25,353 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-18 08:56:25,357 INFO L443 ModelExtractionUtils]: Simplification made 3 calls to the SMT solver. [2023-02-18 08:56:25,357 INFO L444 ModelExtractionUtils]: 9 out of 12 variables were initially zero. Simplification set additionally 0 variables to zero. [2023-02-18 08:56:25,357 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:25,357 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:25,361 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-18 08:56:25,363 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-18 08:56:25,363 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-18 08:56:25,363 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-18 08:56:25,363 INFO L513 LassoAnalysis]: Proved termination. [2023-02-18 08:56:25,363 INFO L515 LassoAnalysis]: Termination argument consisting of: Ranking function f(ULTIMATE.start_main_~n~0#1) = -2*ULTIMATE.start_main_~n~0#1 + 5 Supporting invariants [] [2023-02-18 08:56:25,366 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-18 08:56:25,366 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-18 08:56:25,381 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:25,614 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:56:25,627 INFO L263 TraceCheckSpWp]: Trace formula consists of 2256 conjuncts, 108 conjunts are in the unsatisfiable core [2023-02-18 08:56:25,632 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:25,763 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (176)] Ended with exit code 0 [2023-02-18 08:56:25,987 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:56:26,000 INFO L263 TraceCheckSpWp]: Trace formula consists of 1963 conjuncts, 108 conjunts are in the unsatisfiable core [2023-02-18 08:56:26,008 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:26,244 INFO L134 CoverageAnalysis]: Checked inductivity of 5381 backedges. 17 proven. 708 refuted. 0 times theorem prover too weak. 4656 trivial. 0 not checked. [2023-02-18 08:56:26,245 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-18 08:56:26,245 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 1537 states and 2252 transitions. cyclomatic complexity: 731 Second operand has 13 states, 12 states have (on average 4.083333333333333) internal successors, (49), 12 states have internal predecessors, (49), 6 states have call successors, (16), 2 states have call predecessors, (16), 6 states have return successors, (19), 8 states have call predecessors, (19), 6 states have call successors, (19) [2023-02-18 08:56:26,546 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 1537 states and 2252 transitions. cyclomatic complexity: 731. Second operand has 13 states, 12 states have (on average 4.083333333333333) internal successors, (49), 12 states have internal predecessors, (49), 6 states have call successors, (16), 2 states have call predecessors, (16), 6 states have return successors, (19), 8 states have call predecessors, (19), 6 states have call successors, (19) Result 3607 states and 5324 transitions. Complement of second has 58 states. [2023-02-18 08:56:26,546 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-18 08:56:26,546 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 12 states have (on average 4.083333333333333) internal successors, (49), 12 states have internal predecessors, (49), 6 states have call successors, (16), 2 states have call predecessors, (16), 6 states have return successors, (19), 8 states have call predecessors, (19), 6 states have call successors, (19) [2023-02-18 08:56:26,547 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 135 transitions. [2023-02-18 08:56:26,547 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 12 states and 135 transitions. Stem has 339 letters. Loop has 295 letters. [2023-02-18 08:56:26,548 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:56:26,548 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 12 states and 135 transitions. Stem has 634 letters. Loop has 295 letters. [2023-02-18 08:56:26,549 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:56:26,549 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 12 states and 135 transitions. Stem has 339 letters. Loop has 590 letters. [2023-02-18 08:56:26,550 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:56:26,550 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 3607 states and 5324 transitions. [2023-02-18 08:56:26,567 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 182 [2023-02-18 08:56:26,582 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 3607 states to 2609 states and 3873 transitions. [2023-02-18 08:56:26,582 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 207 [2023-02-18 08:56:26,582 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 207 [2023-02-18 08:56:26,582 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2609 states and 3873 transitions. [2023-02-18 08:56:26,583 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:26,583 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2609 states and 3873 transitions. [2023-02-18 08:56:26,584 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2609 states and 3873 transitions. [2023-02-18 08:56:26,614 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2609 to 2495. [2023-02-18 08:56:26,616 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2495 states, 1570 states have (on average 1.0611464968152866) internal successors, (1666), 1574 states have internal predecessors, (1666), 718 states have call successors, (734), 242 states have call predecessors, (734), 207 states have return successors, (1281), 678 states have call predecessors, (1281), 718 states have call successors, (1281) [2023-02-18 08:56:26,624 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2495 states to 2495 states and 3681 transitions. [2023-02-18 08:56:26,624 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2495 states and 3681 transitions. [2023-02-18 08:56:26,624 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:26,625 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2023-02-18 08:56:26,625 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=55, Invalid=185, Unknown=0, NotChecked=0, Total=240 [2023-02-18 08:56:26,625 INFO L87 Difference]: Start difference. First operand 2495 states and 3681 transitions. Second operand has 16 states, 15 states have (on average 4.133333333333334) internal successors, (62), 16 states have internal predecessors, (62), 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-18 08:56:27,004 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:27,004 INFO L93 Difference]: Finished difference Result 2756 states and 4092 transitions. [2023-02-18 08:56:27,004 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2756 states and 4092 transitions. [2023-02-18 08:56:27,016 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 218 [2023-02-18 08:56:27,039 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2756 states to 2718 states and 4047 transitions. [2023-02-18 08:56:27,039 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 212 [2023-02-18 08:56:27,040 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 212 [2023-02-18 08:56:27,040 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2718 states and 4047 transitions. [2023-02-18 08:56:27,040 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:27,040 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2718 states and 4047 transitions. [2023-02-18 08:56:27,041 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2718 states and 4047 transitions. [2023-02-18 08:56:27,068 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2718 to 2450. [2023-02-18 08:56:27,070 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2450 states, 1544 states have (on average 1.0621761658031088) internal successors, (1640), 1548 states have internal predecessors, (1640), 707 states have call successors, (721), 238 states have call predecessors, (721), 199 states have return successors, (1232), 663 states have call predecessors, (1232), 707 states have call successors, (1232) [2023-02-18 08:56:27,077 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2450 states to 2450 states and 3593 transitions. [2023-02-18 08:56:27,078 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2450 states and 3593 transitions. [2023-02-18 08:56:27,078 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2023-02-18 08:56:27,078 INFO L428 stractBuchiCegarLoop]: Abstraction has 2450 states and 3593 transitions. [2023-02-18 08:56:27,078 INFO L335 stractBuchiCegarLoop]: ======== Iteration 48 ============ [2023-02-18 08:56:27,078 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2450 states and 3593 transitions. [2023-02-18 08:56:27,083 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 158 [2023-02-18 08:56:27,083 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:27,083 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:27,085 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:27,085 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [52, 52, 37, 37, 37, 37, 15, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:27,085 INFO L748 eck$LassoCheckResult]: Stem: 180462#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 180404#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; 180405#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 180424#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; 180463#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 180621#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 180619#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 180615#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 180616#$Ultimate##0 ~n := #in~n; 180620#L25 assume ~n <= 0;#res := 1; 180618#factFINAL assume true; 180614#factEXIT >#68#return; 180610#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 180611#$Ultimate##0 ~n := #in~n; 180617#L25 assume ~n <= 0;#res := 1; 180613#factFINAL assume true; 180609#factEXIT >#70#return; 180606#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 180607#$Ultimate##0 ~n := #in~n; 180612#L25 assume ~n <= 0;#res := 1; 180608#factFINAL assume true; 180605#factEXIT >#72#return; 180604#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 180602#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 180599#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 180595#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 180592#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 180583#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 180584#$Ultimate##0 ~n := #in~n; 180601#L25 assume !(~n <= 0); 180597#L26 call #t~ret0 := fact(~n - 1);< 180598#$Ultimate##0 ~n := #in~n; 180603#L25 assume ~n <= 0;#res := 1; 180600#factFINAL assume true; 180596#factEXIT >#66#return; 180593#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180590#factFINAL assume true; 180582#factEXIT >#74#return; 180578#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 180579#$Ultimate##0 ~n := #in~n; 180588#L25 assume ~n <= 0;#res := 1; 180581#factFINAL assume true; 180577#factEXIT >#76#return; 180574#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 180575#$Ultimate##0 ~n := #in~n; 180589#L25 assume !(~n <= 0); 180586#L26 call #t~ret0 := fact(~n - 1);< 180587#$Ultimate##0 ~n := #in~n; 180594#L25 assume ~n <= 0;#res := 1; 180591#factFINAL assume true; 180585#factEXIT >#66#return; 180580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180576#factFINAL assume true; 180573#factEXIT >#78#return; 180570#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 180567#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 180565#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 180564#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 180560#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 180549#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 180550#$Ultimate##0 ~n := #in~n; 180571#L25 assume !(~n <= 0); 180555#L26 call #t~ret0 := fact(~n - 1);< 180558#$Ultimate##0 ~n := #in~n; 180572#L25 assume !(~n <= 0); 180554#L26 call #t~ret0 := fact(~n - 1);< 180569#$Ultimate##0 ~n := #in~n; 180626#L25 assume ~n <= 0;#res := 1; 180622#factFINAL assume true; 180568#factEXIT >#66#return; 180566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180562#factFINAL assume true; 180552#factEXIT >#66#return; 180556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180630#factFINAL assume true; 180548#factEXIT >#74#return; 180543#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 180544#$Ultimate##0 ~n := #in~n; 180559#L25 assume ~n <= 0;#res := 1; 180547#factFINAL assume true; 180542#factEXIT >#76#return; 180536#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 180537#$Ultimate##0 ~n := #in~n; 180563#L25 assume !(~n <= 0); 180553#L26 call #t~ret0 := fact(~n - 1);< 180558#$Ultimate##0 ~n := #in~n; 180572#L25 assume !(~n <= 0); 180554#L26 call #t~ret0 := fact(~n - 1);< 180569#$Ultimate##0 ~n := #in~n; 180626#L25 assume ~n <= 0;#res := 1; 180622#factFINAL assume true; 180568#factEXIT >#66#return; 180566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180562#factFINAL assume true; 180552#factEXIT >#66#return; 180546#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180541#factFINAL assume true; 180535#factEXIT >#78#return; 180532#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 180530#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 180526#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 180520#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 180516#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 180511#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 180512#$Ultimate##0 ~n := #in~n; 180529#L25 assume !(~n <= 0); 180524#L26 call #t~ret0 := fact(~n - 1);< 180525#$Ultimate##0 ~n := #in~n; 180540#L25 assume !(~n <= 0); 180523#L26 call #t~ret0 := fact(~n - 1);< 180534#$Ultimate##0 ~n := #in~n; 180540#L25 assume !(~n <= 0); 180523#L26 call #t~ret0 := fact(~n - 1);< 180534#$Ultimate##0 ~n := #in~n; 180561#L25 assume ~n <= 0;#res := 1; 180551#factFINAL assume true; 180545#factEXIT >#66#return; 180539#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180538#factFINAL assume true; 180533#factEXIT >#66#return; 180531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180528#factFINAL assume true; 180522#factEXIT >#66#return; 180519#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180515#factFINAL assume true; 180510#factEXIT >#74#return; 180506#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 180507#$Ultimate##0 ~n := #in~n; 180514#L25 assume ~n <= 0;#res := 1; 180509#factFINAL assume true; 180505#factEXIT >#76#return; 180492#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 180501#$Ultimate##0 ~n := #in~n; 180500#L25 assume !(~n <= 0); 180484#L26 call #t~ret0 := fact(~n - 1);< 180488#$Ultimate##0 ~n := #in~n; 180494#L25 assume !(~n <= 0); 180483#L26 call #t~ret0 := fact(~n - 1);< 180498#$Ultimate##0 ~n := #in~n; 180494#L25 assume !(~n <= 0); 180483#L26 call #t~ret0 := fact(~n - 1);< 180498#$Ultimate##0 ~n := #in~n; 180527#L25 assume ~n <= 0;#res := 1; 180521#factFINAL assume true; 180518#factEXIT >#66#return; 180513#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180508#factFINAL assume true; 180504#factEXIT >#66#return; 180502#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180499#factFINAL assume true; 180496#factEXIT >#66#return; 180486#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 181567#factFINAL assume true; 181566#factEXIT >#78#return; 181564#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 180407#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 181561#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 181559#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 181449#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 181448#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 181447#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 181445#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 181442#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 181443#$Ultimate##0 ~n := #in~n; 181478#L25 assume !(~n <= 0); 181456#L26 call #t~ret0 := fact(~n - 1);< 181476#$Ultimate##0 ~n := #in~n; 181620#L25 assume ~n <= 0;#res := 1; 181585#factFINAL assume true; 181453#factEXIT >#66#return; 181451#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 181450#factFINAL assume true; 181439#factEXIT >#68#return; 181432#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 181436#$Ultimate##0 ~n := #in~n; 181637#L25 assume ~n <= 0;#res := 1; 181452#factFINAL assume true; 181431#factEXIT >#70#return; 180958#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 181426#$Ultimate##0 ~n := #in~n; 181425#L25 assume !(~n <= 0); 180851#L26 call #t~ret0 := fact(~n - 1);< 180959#$Ultimate##0 ~n := #in~n; 180927#L25 assume ~n <= 0;#res := 1; 180957#factFINAL assume true; 180930#factEXIT >#66#return; 180937#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 181902#factFINAL assume true; 181847#factEXIT >#72#return; 181845#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 181843#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 181844#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 181838#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 181839#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 181427#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 181428#$Ultimate##0 ~n := #in~n; 181801#L25 assume !(~n <= 0); 180846#L26 call #t~ret0 := fact(~n - 1);< 180959#$Ultimate##0 ~n := #in~n; 180927#L25 assume ~n <= 0;#res := 1; 180957#factFINAL assume true; 180930#factEXIT >#66#return; 180934#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 181806#factFINAL assume true; 181804#factEXIT >#68#return; 180983#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 181133#$Ultimate##0 ~n := #in~n; 181166#L25 assume !(~n <= 0); 180847#L26 call #t~ret0 := fact(~n - 1);< 180940#$Ultimate##0 ~n := #in~n; 180927#L25 assume ~n <= 0;#res := 1; 180957#factFINAL assume true; 180930#factEXIT >#66#return; 180935#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 181802#factFINAL assume true; 181774#factEXIT >#70#return; 180681#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 180688#$Ultimate##0 ~n := #in~n; 180690#L25 assume ~n <= 0;#res := 1; 180689#factFINAL assume true; 180677#factEXIT >#72#return; 180685#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 182134#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 182132#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 182128#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 182120#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 180989#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 181125#$Ultimate##0 ~n := #in~n; 181003#L25 assume !(~n <= 0); 180843#L26 call #t~ret0 := fact(~n - 1);< 180939#$Ultimate##0 ~n := #in~n; 180920#L25 assume !(~n <= 0); 180852#L26 call #t~ret0 := fact(~n - 1);< 180879#$Ultimate##0 ~n := #in~n; 180883#L25 assume ~n <= 0;#res := 1; 180882#factFINAL assume true; 180877#factEXIT >#66#return; 180874#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180870#factFINAL assume true; 180837#factEXIT >#66#return; 180864#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 182110#factFINAL assume true; 182055#factEXIT >#74#return; 180985#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 181133#$Ultimate##0 ~n := #in~n; 181166#L25 assume !(~n <= 0); 180847#L26 call #t~ret0 := fact(~n - 1);< 180940#$Ultimate##0 ~n := #in~n; 180927#L25 assume ~n <= 0;#res := 1; 180957#factFINAL assume true; 180930#factEXIT >#66#return; 180935#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 181802#factFINAL assume true; 181774#factEXIT >#76#return; 180967#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 181192#$Ultimate##0 ~n := #in~n; 181191#L25 assume !(~n <= 0); 180932#L26 call #t~ret0 := fact(~n - 1);< 180941#$Ultimate##0 ~n := #in~n; 180927#L25 assume ~n <= 0;#res := 1; 180957#factFINAL assume true; 180930#factEXIT >#66#return; 180935#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 181802#factFINAL assume true; 181774#factEXIT >#78#return; 181775#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 182548#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 182547#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 182546#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 182545#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 180388#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 180362#$Ultimate##0 ~n := #in~n; 181132#L25 assume !(~n <= 0); 180371#L26 call #t~ret0 := fact(~n - 1);< 180705#$Ultimate##0 ~n := #in~n; 180702#L25 assume !(~n <= 0); 180699#L26 call #t~ret0 := fact(~n - 1);< 180701#$Ultimate##0 ~n := #in~n; 180702#L25 assume !(~n <= 0); 180699#L26 call #t~ret0 := fact(~n - 1);< 180701#$Ultimate##0 ~n := #in~n; 180704#L25 assume ~n <= 0;#res := 1; 180708#factFINAL assume true; 180721#factEXIT >#66#return; 180722#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180731#factFINAL assume true; 180732#factEXIT >#66#return; 180821#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180817#factFINAL assume true; 180715#factEXIT >#66#return; 180718#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 182604#factFINAL assume true; 182601#factEXIT >#74#return; 180457#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 180458#$Ultimate##0 ~n := #in~n; 182621#L25 assume !(~n <= 0); 180368#L26 call #t~ret0 := fact(~n - 1);< 180734#$Ultimate##0 ~n := #in~n; 180711#L25 assume ~n <= 0;#res := 1; 180724#factFINAL assume true; 180365#factEXIT >#66#return; 180376#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 182623#factFINAL assume true; 182571#factEXIT >#76#return; 180387#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 180362#$Ultimate##0 ~n := #in~n; 181132#L25 assume !(~n <= 0); 180371#L26 call #t~ret0 := fact(~n - 1);< 180705#$Ultimate##0 ~n := #in~n; 180702#L25 assume !(~n <= 0); 180699#L26 call #t~ret0 := fact(~n - 1);< 180701#$Ultimate##0 ~n := #in~n; 180704#L25 assume ~n <= 0;#res := 1; 180708#factFINAL assume true; 180721#factEXIT >#66#return; 180722#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180731#factFINAL assume true; 180732#factEXIT >#66#return; 180823#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 182622#factFINAL assume true; 182594#factEXIT >#78#return; 180469#L30-8 [2023-02-18 08:56:27,086 INFO L750 eck$LassoCheckResult]: Loop: 180469#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 180425#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 180426#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 180468#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 180422#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 180414#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 180415#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 180466#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 180467#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 180401#$Ultimate##0 ~n := #in~n; 181422#L25 assume !(~n <= 0); 180861#L26 call #t~ret0 := fact(~n - 1);< 180939#$Ultimate##0 ~n := #in~n; 180920#L25 assume !(~n <= 0); 180852#L26 call #t~ret0 := fact(~n - 1);< 180879#$Ultimate##0 ~n := #in~n; 180920#L25 assume !(~n <= 0); 180852#L26 call #t~ret0 := fact(~n - 1);< 180879#$Ultimate##0 ~n := #in~n; 180920#L25 assume !(~n <= 0); 180852#L26 call #t~ret0 := fact(~n - 1);< 180879#$Ultimate##0 ~n := #in~n; 180883#L25 assume ~n <= 0;#res := 1; 180882#factFINAL assume true; 180877#factEXIT >#66#return; 180874#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180870#factFINAL assume true; 180837#factEXIT >#66#return; 180866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180906#factFINAL assume true; 180896#factEXIT >#66#return; 180902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 181035#factFINAL assume true; 180921#factEXIT >#66#return; 180925#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 181551#factFINAL assume true; 181550#factEXIT >#68#return; 181547#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 181549#$Ultimate##0 ~n := #in~n; 181553#L25 assume ~n <= 0;#res := 1; 181552#factFINAL assume true; 181546#factEXIT >#70#return; 181542#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 181545#$Ultimate##0 ~n := #in~n; 181557#L25 assume !(~n <= 0); 180897#L26 call #t~ret0 := fact(~n - 1);< 180943#$Ultimate##0 ~n := #in~n; 180942#L25 assume !(~n <= 0); 180858#L26 call #t~ret0 := fact(~n - 1);< 180912#$Ultimate##0 ~n := #in~n; 180920#L25 assume !(~n <= 0); 180852#L26 call #t~ret0 := fact(~n - 1);< 180879#$Ultimate##0 ~n := #in~n; 180883#L25 assume ~n <= 0;#res := 1; 180882#factFINAL assume true; 180877#factEXIT >#66#return; 180874#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180870#factFINAL assume true; 180837#factEXIT >#66#return; 180866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180906#factFINAL assume true; 180896#factEXIT >#66#return; 180903#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 181554#factFINAL assume true; 181541#factEXIT >#72#return; 181539#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 181540#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 181535#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 181536#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 181531#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 181523#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 181424#$Ultimate##0 ~n := #in~n; 181534#L25 assume !(~n <= 0); 180841#L26 call #t~ret0 := fact(~n - 1);< 180939#$Ultimate##0 ~n := #in~n; 180920#L25 assume !(~n <= 0); 180852#L26 call #t~ret0 := fact(~n - 1);< 180879#$Ultimate##0 ~n := #in~n; 180920#L25 assume !(~n <= 0); 180852#L26 call #t~ret0 := fact(~n - 1);< 180879#$Ultimate##0 ~n := #in~n; 180920#L25 assume !(~n <= 0); 180852#L26 call #t~ret0 := fact(~n - 1);< 180879#$Ultimate##0 ~n := #in~n; 180883#L25 assume ~n <= 0;#res := 1; 180882#factFINAL assume true; 180877#factEXIT >#66#return; 180874#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180870#factFINAL assume true; 180837#factEXIT >#66#return; 180866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180906#factFINAL assume true; 180896#factEXIT >#66#return; 180902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 181035#factFINAL assume true; 180921#factEXIT >#66#return; 180923#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 181530#factFINAL assume true; 181518#factEXIT >#68#return; 180784#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 180692#$Ultimate##0 ~n := #in~n; 180944#L25 assume !(~n <= 0); 180838#L26 call #t~ret0 := fact(~n - 1);< 180939#$Ultimate##0 ~n := #in~n; 180927#L25 assume ~n <= 0;#res := 1; 180957#factFINAL assume true; 180930#factEXIT >#66#return; 180929#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180891#factFINAL assume true; 180766#factEXIT >#70#return; 180788#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 180692#$Ultimate##0 ~n := #in~n; 180944#L25 assume !(~n <= 0); 180838#L26 call #t~ret0 := fact(~n - 1);< 180939#$Ultimate##0 ~n := #in~n; 180920#L25 assume !(~n <= 0); 180852#L26 call #t~ret0 := fact(~n - 1);< 180879#$Ultimate##0 ~n := #in~n; 180883#L25 assume ~n <= 0;#res := 1; 180882#factFINAL assume true; 180877#factEXIT >#66#return; 180874#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180870#factFINAL assume true; 180837#factEXIT >#66#return; 180833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180831#factFINAL assume true; 180818#factEXIT >#72#return; 180807#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 181686#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 181680#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 181681#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 181676#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 181522#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 181424#$Ultimate##0 ~n := #in~n; 181534#L25 assume !(~n <= 0); 180841#L26 call #t~ret0 := fact(~n - 1);< 180939#$Ultimate##0 ~n := #in~n; 180920#L25 assume !(~n <= 0); 180852#L26 call #t~ret0 := fact(~n - 1);< 180879#$Ultimate##0 ~n := #in~n; 180920#L25 assume !(~n <= 0); 180852#L26 call #t~ret0 := fact(~n - 1);< 180879#$Ultimate##0 ~n := #in~n; 180920#L25 assume !(~n <= 0); 180852#L26 call #t~ret0 := fact(~n - 1);< 180879#$Ultimate##0 ~n := #in~n; 180883#L25 assume ~n <= 0;#res := 1; 180882#factFINAL assume true; 180877#factEXIT >#66#return; 180874#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180870#factFINAL assume true; 180837#factEXIT >#66#return; 180866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180906#factFINAL assume true; 180896#factEXIT >#66#return; 180902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 181035#factFINAL assume true; 180921#factEXIT >#66#return; 180923#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 181530#factFINAL assume true; 181518#factEXIT >#68#return; 180794#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 180692#$Ultimate##0 ~n := #in~n; 180944#L25 assume !(~n <= 0); 180838#L26 call #t~ret0 := fact(~n - 1);< 180939#$Ultimate##0 ~n := #in~n; 180920#L25 assume !(~n <= 0); 180852#L26 call #t~ret0 := fact(~n - 1);< 180879#$Ultimate##0 ~n := #in~n; 180883#L25 assume ~n <= 0;#res := 1; 180882#factFINAL assume true; 180877#factEXIT >#66#return; 180874#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180870#factFINAL assume true; 180837#factEXIT >#66#return; 180833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180831#factFINAL assume true; 180818#factEXIT >#70#return; 180775#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 180692#$Ultimate##0 ~n := #in~n; 180944#L25 assume !(~n <= 0); 180838#L26 call #t~ret0 := fact(~n - 1);< 180939#$Ultimate##0 ~n := #in~n; 180920#L25 assume !(~n <= 0); 180852#L26 call #t~ret0 := fact(~n - 1);< 180879#$Ultimate##0 ~n := #in~n; 180883#L25 assume ~n <= 0;#res := 1; 180882#factFINAL assume true; 180877#factEXIT >#66#return; 180874#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180870#factFINAL assume true; 180837#factEXIT >#66#return; 180833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180831#factFINAL assume true; 180818#factEXIT >#72#return; 180806#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 182327#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 182326#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 182325#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 182324#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 181423#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 181424#$Ultimate##0 ~n := #in~n; 181534#L25 assume !(~n <= 0); 180841#L26 call #t~ret0 := fact(~n - 1);< 180939#$Ultimate##0 ~n := #in~n; 180920#L25 assume !(~n <= 0); 180852#L26 call #t~ret0 := fact(~n - 1);< 180879#$Ultimate##0 ~n := #in~n; 180920#L25 assume !(~n <= 0); 180852#L26 call #t~ret0 := fact(~n - 1);< 180879#$Ultimate##0 ~n := #in~n; 180920#L25 assume !(~n <= 0); 180852#L26 call #t~ret0 := fact(~n - 1);< 180879#$Ultimate##0 ~n := #in~n; 180883#L25 assume ~n <= 0;#res := 1; 180882#factFINAL assume true; 180877#factEXIT >#66#return; 180874#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180870#factFINAL assume true; 180837#factEXIT >#66#return; 180866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180906#factFINAL assume true; 180896#factEXIT >#66#return; 180902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 181035#factFINAL assume true; 180921#factEXIT >#66#return; 180923#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 181530#factFINAL assume true; 181518#factEXIT >#68#return; 180691#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 180692#$Ultimate##0 ~n := #in~n; 180944#L25 assume !(~n <= 0); 180838#L26 call #t~ret0 := fact(~n - 1);< 180939#$Ultimate##0 ~n := #in~n; 180920#L25 assume !(~n <= 0); 180852#L26 call #t~ret0 := fact(~n - 1);< 180879#$Ultimate##0 ~n := #in~n; 180920#L25 assume !(~n <= 0); 180852#L26 call #t~ret0 := fact(~n - 1);< 180879#$Ultimate##0 ~n := #in~n; 180883#L25 assume ~n <= 0;#res := 1; 180882#factFINAL assume true; 180877#factEXIT >#66#return; 180874#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180870#factFINAL assume true; 180837#factEXIT >#66#return; 180866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180906#factFINAL assume true; 180896#factEXIT >#66#return; 180895#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180894#factFINAL assume true; 180801#factEXIT >#70#return; 180779#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 180692#$Ultimate##0 ~n := #in~n; 180944#L25 assume ~n <= 0;#res := 1; 180945#factFINAL assume true; 181129#factEXIT >#72#return; 181127#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 181126#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 181124#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 181123#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 181122#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 180742#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 180748#$Ultimate##0 ~n := #in~n; 180752#L25 assume !(~n <= 0); 180698#L26 call #t~ret0 := fact(~n - 1);< 180703#$Ultimate##0 ~n := #in~n; 180702#L25 assume !(~n <= 0); 180699#L26 call #t~ret0 := fact(~n - 1);< 180701#$Ultimate##0 ~n := #in~n; 180702#L25 assume !(~n <= 0); 180699#L26 call #t~ret0 := fact(~n - 1);< 180701#$Ultimate##0 ~n := #in~n; 180702#L25 assume !(~n <= 0); 180699#L26 call #t~ret0 := fact(~n - 1);< 180701#$Ultimate##0 ~n := #in~n; 180704#L25 assume ~n <= 0;#res := 1; 180708#factFINAL assume true; 180721#factEXIT >#66#return; 180722#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180731#factFINAL assume true; 180732#factEXIT >#66#return; 180821#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180817#factFINAL assume true; 180715#factEXIT >#66#return; 180709#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180694#factFINAL assume true; 180700#factEXIT >#66#return; 180750#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180747#factFINAL assume true; 180738#factEXIT >#74#return; 180745#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 182579#$Ultimate##0 ~n := #in~n; 182583#L25 assume !(~n <= 0); 180717#L26 call #t~ret0 := fact(~n - 1);< 180412#$Ultimate##0 ~n := #in~n; 180834#L25 assume !(~n <= 0); 180706#L26 call #t~ret0 := fact(~n - 1);< 180826#$Ultimate##0 ~n := #in~n; 180876#L25 assume !(~n <= 0); 180707#L26 call #t~ret0 := fact(~n - 1);< 180723#$Ultimate##0 ~n := #in~n; 180704#L25 assume ~n <= 0;#res := 1; 180708#factFINAL assume true; 180721#factEXIT >#66#return; 180722#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180731#factFINAL assume true; 180732#factEXIT >#66#return; 180821#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 180817#factFINAL assume true; 180715#factEXIT >#66#return; 180719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 182586#factFINAL assume true; 182570#factEXIT >#76#return; 180454#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 180453#$Ultimate##0 ~n := #in~n; 180455#L25 assume !(~n <= 0); 180366#L26 call #t~ret0 := fact(~n - 1);< 180710#$Ultimate##0 ~n := #in~n; 180711#L25 assume ~n <= 0;#res := 1; 180724#factFINAL assume true; 180365#factEXIT >#66#return; 180375#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 182618#factFINAL assume true; 180735#factEXIT >#78#return; 180469#L30-8 [2023-02-18 08:56:27,086 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:27,086 INFO L85 PathProgramCache]: Analyzing trace with hash 2135700754, now seen corresponding path program 35 times [2023-02-18 08:56:27,086 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:27,086 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1675852469] [2023-02-18 08:56:27,087 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:27,087 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:27,094 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:27,094 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1159171140] [2023-02-18 08:56:27,094 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:56:27,095 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:27,095 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:27,096 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-18 08:56:27,098 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-18 08:56:27,336 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 17 check-sat command(s) [2023-02-18 08:56:27,336 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:27,336 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:27,422 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:27,459 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:27,460 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:27,460 INFO L85 PathProgramCache]: Analyzing trace with hash 966785997, now seen corresponding path program 36 times [2023-02-18 08:56:27,460 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:27,460 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [876086112] [2023-02-18 08:56:27,460 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:27,460 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:27,467 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:27,467 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1545102631] [2023-02-18 08:56:27,467 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:56:27,467 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:27,468 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:27,470 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-18 08:56:27,499 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-18 08:56:27,656 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 13 check-sat command(s) [2023-02-18 08:56:27,656 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:27,659 INFO L263 TraceCheckSpWp]: Trace formula consists of 552 conjuncts, 12 conjunts are in the unsatisfiable core [2023-02-18 08:56:27,661 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:27,688 INFO L134 CoverageAnalysis]: Checked inductivity of 6701 backedges. 2563 proven. 99 refuted. 0 times theorem prover too weak. 4039 trivial. 0 not checked. [2023-02-18 08:56:27,688 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:27,743 INFO L134 CoverageAnalysis]: Checked inductivity of 6701 backedges. 295 proven. 198 refuted. 0 times theorem prover too weak. 6208 trivial. 0 not checked. [2023-02-18 08:56:27,743 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:27,743 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [876086112] [2023-02-18 08:56:27,743 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:27,743 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1545102631] [2023-02-18 08:56:27,743 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1545102631] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:27,744 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:27,744 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 10] total 12 [2023-02-18 08:56:27,744 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [801742048] [2023-02-18 08:56:27,744 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:27,744 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:27,744 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:27,745 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2023-02-18 08:56:27,745 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=32, Invalid=100, Unknown=0, NotChecked=0, Total=132 [2023-02-18 08:56:27,745 INFO L87 Difference]: Start difference. First operand 2450 states and 3593 transitions. cyclomatic complexity: 1166 Second operand has 12 states, 10 states have (on average 4.3) internal successors, (43), 12 states have internal predecessors, (43), 8 states have call successors, (23), 2 states have call predecessors, (23), 4 states have return successors, (23), 8 states have call predecessors, (23), 8 states have call successors, (23) [2023-02-18 08:56:27,961 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:27,961 INFO L93 Difference]: Finished difference Result 2517 states and 3632 transitions. [2023-02-18 08:56:27,961 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2517 states and 3632 transitions. [2023-02-18 08:56:27,972 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 158 [2023-02-18 08:56:27,984 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2517 states to 2378 states and 3469 transitions. [2023-02-18 08:56:27,985 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 192 [2023-02-18 08:56:27,985 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 192 [2023-02-18 08:56:27,985 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2378 states and 3469 transitions. [2023-02-18 08:56:27,985 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:27,985 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2378 states and 3469 transitions. [2023-02-18 08:56:27,986 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2378 states and 3469 transitions. [2023-02-18 08:56:28,009 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2378 to 2346. [2023-02-18 08:56:28,011 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2346 states, 1479 states have (on average 1.0628803245436105) internal successors, (1572), 1480 states have internal predecessors, (1572), 668 states have call successors, (682), 238 states have call predecessors, (682), 199 states have return successors, (1147), 627 states have call predecessors, (1147), 668 states have call successors, (1147) [2023-02-18 08:56:28,018 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2346 states to 2346 states and 3401 transitions. [2023-02-18 08:56:28,018 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2346 states and 3401 transitions. [2023-02-18 08:56:28,019 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2023-02-18 08:56:28,019 INFO L428 stractBuchiCegarLoop]: Abstraction has 2346 states and 3401 transitions. [2023-02-18 08:56:28,019 INFO L335 stractBuchiCegarLoop]: ======== Iteration 49 ============ [2023-02-18 08:56:28,019 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2346 states and 3401 transitions. [2023-02-18 08:56:28,024 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 154 [2023-02-18 08:56:28,024 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:28,024 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:28,025 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:28,025 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [52, 52, 37, 37, 37, 37, 15, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:28,026 INFO L748 eck$LassoCheckResult]: Stem: 187401#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 187352#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; 187353#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 187373#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; 187402#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 187548#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 187546#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 187542#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 187543#$Ultimate##0 ~n := #in~n; 187547#L25 assume ~n <= 0;#res := 1; 187545#factFINAL assume true; 187541#factEXIT >#68#return; 187537#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 187538#$Ultimate##0 ~n := #in~n; 187544#L25 assume ~n <= 0;#res := 1; 187540#factFINAL assume true; 187536#factEXIT >#70#return; 187533#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 187534#$Ultimate##0 ~n := #in~n; 187539#L25 assume ~n <= 0;#res := 1; 187535#factFINAL assume true; 187532#factEXIT >#72#return; 187530#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 187527#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 187523#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 187520#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 187518#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 187510#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 187511#$Ultimate##0 ~n := #in~n; 187529#L25 assume !(~n <= 0); 187525#L26 call #t~ret0 := fact(~n - 1);< 187526#$Ultimate##0 ~n := #in~n; 187531#L25 assume ~n <= 0;#res := 1; 187528#factFINAL assume true; 187524#factEXIT >#66#return; 187521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187517#factFINAL assume true; 187509#factEXIT >#74#return; 187503#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 187504#$Ultimate##0 ~n := #in~n; 187516#L25 assume ~n <= 0;#res := 1; 187508#factFINAL assume true; 187502#factEXIT >#76#return; 187498#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 187499#$Ultimate##0 ~n := #in~n; 187515#L25 assume !(~n <= 0); 187513#L26 call #t~ret0 := fact(~n - 1);< 187514#$Ultimate##0 ~n := #in~n; 187522#L25 assume ~n <= 0;#res := 1; 187519#factFINAL assume true; 187512#factEXIT >#66#return; 187507#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187501#factFINAL assume true; 187497#factEXIT >#78#return; 187495#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 187492#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 187489#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 187487#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 187484#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 187478#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 187479#$Ultimate##0 ~n := #in~n; 187571#L25 assume !(~n <= 0); 187560#L26 call #t~ret0 := fact(~n - 1);< 187564#$Ultimate##0 ~n := #in~n; 187573#L25 assume !(~n <= 0); 187559#L26 call #t~ret0 := fact(~n - 1);< 187569#$Ultimate##0 ~n := #in~n; 187572#L25 assume ~n <= 0;#res := 1; 187570#factFINAL assume true; 187568#factEXIT >#66#return; 187567#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187565#factFINAL assume true; 187558#factEXIT >#66#return; 187563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187574#factFINAL assume true; 187477#factEXIT >#74#return; 187473#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 187474#$Ultimate##0 ~n := #in~n; 187556#L25 assume ~n <= 0;#res := 1; 187475#factFINAL assume true; 187472#factEXIT >#76#return; 187470#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 187471#$Ultimate##0 ~n := #in~n; 187566#L25 assume !(~n <= 0); 187561#L26 call #t~ret0 := fact(~n - 1);< 187564#$Ultimate##0 ~n := #in~n; 187573#L25 assume !(~n <= 0); 187559#L26 call #t~ret0 := fact(~n - 1);< 187569#$Ultimate##0 ~n := #in~n; 187572#L25 assume ~n <= 0;#res := 1; 187570#factFINAL assume true; 187568#factEXIT >#66#return; 187567#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187565#factFINAL assume true; 187558#factEXIT >#66#return; 187557#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187555#factFINAL assume true; 187469#factEXIT >#78#return; 187468#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 187467#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 187466#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 187464#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 187461#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 187456#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 187457#$Ultimate##0 ~n := #in~n; 187486#L25 assume !(~n <= 0); 187482#L26 call #t~ret0 := fact(~n - 1);< 187483#$Ultimate##0 ~n := #in~n; 187494#L25 assume !(~n <= 0); 187481#L26 call #t~ret0 := fact(~n - 1);< 187491#$Ultimate##0 ~n := #in~n; 187494#L25 assume !(~n <= 0); 187481#L26 call #t~ret0 := fact(~n - 1);< 187491#$Ultimate##0 ~n := #in~n; 187506#L25 assume ~n <= 0;#res := 1; 187505#factFINAL assume true; 187500#factEXIT >#66#return; 187496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187493#factFINAL assume true; 187490#factEXIT >#66#return; 187488#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187485#factFINAL assume true; 187480#factEXIT >#66#return; 187476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187460#factFINAL assume true; 187455#factEXIT >#74#return; 187451#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 187452#$Ultimate##0 ~n := #in~n; 187459#L25 assume ~n <= 0;#res := 1; 187454#factFINAL assume true; 187450#factEXIT >#76#return; 187432#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 187447#$Ultimate##0 ~n := #in~n; 187442#L25 assume !(~n <= 0); 187424#L26 call #t~ret0 := fact(~n - 1);< 187428#$Ultimate##0 ~n := #in~n; 187441#L25 assume !(~n <= 0); 187423#L26 call #t~ret0 := fact(~n - 1);< 187438#$Ultimate##0 ~n := #in~n; 187441#L25 assume !(~n <= 0); 187423#L26 call #t~ret0 := fact(~n - 1);< 187438#$Ultimate##0 ~n := #in~n; 187465#L25 assume ~n <= 0;#res := 1; 187463#factFINAL assume true; 187458#factEXIT >#66#return; 187453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187449#factFINAL assume true; 187448#factEXIT >#66#return; 187446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187440#factFINAL assume true; 187436#factEXIT >#66#return; 187427#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188359#factFINAL assume true; 188355#factEXIT >#78#return; 188351#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 187355#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 188344#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 188342#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 188339#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 188333#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 188199#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 188195#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 188192#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 188194#$Ultimate##0 ~n := #in~n; 188239#L25 assume !(~n <= 0); 188228#L26 call #t~ret0 := fact(~n - 1);< 188237#$Ultimate##0 ~n := #in~n; 188250#L25 assume ~n <= 0;#res := 1; 188240#factFINAL assume true; 188214#factEXIT >#66#return; 188213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188212#factFINAL assume true; 188190#factEXIT >#68#return; 188079#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 188082#$Ultimate##0 ~n := #in~n; 188501#L25 assume ~n <= 0;#res := 1; 188500#factFINAL assume true; 188298#factEXIT >#70#return; 188295#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 188297#$Ultimate##0 ~n := #in~n; 188296#L25 assume !(~n <= 0); 187724#L26 call #t~ret0 := fact(~n - 1);< 187717#$Ultimate##0 ~n := #in~n; 187837#L25 assume ~n <= 0;#res := 1; 188254#factFINAL assume true; 188174#factEXIT >#66#return; 188180#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188479#factFINAL assume true; 188450#factEXIT >#72#return; 188448#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 188447#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 188446#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 188444#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 188443#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 187671#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 187679#$Ultimate##0 ~n := #in~n; 187747#L25 assume !(~n <= 0); 187716#L26 call #t~ret0 := fact(~n - 1);< 187717#$Ultimate##0 ~n := #in~n; 187837#L25 assume ~n <= 0;#res := 1; 188254#factFINAL assume true; 188174#factEXIT >#66#return; 188182#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188497#factFINAL assume true; 188491#factEXIT >#68#return; 188259#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 187669#$Ultimate##0 ~n := #in~n; 188492#L25 assume !(~n <= 0); 187722#L26 call #t~ret0 := fact(~n - 1);< 188184#$Ultimate##0 ~n := #in~n; 187837#L25 assume ~n <= 0;#res := 1; 188254#factFINAL assume true; 188174#factEXIT >#66#return; 188179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188487#factFINAL assume true; 188301#factEXIT >#70#return; 187645#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 187643#$Ultimate##0 ~n := #in~n; 187646#L25 assume ~n <= 0;#res := 1; 187648#factFINAL assume true; 188531#factEXIT >#72#return; 188533#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 188612#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 188525#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 188524#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 188521#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 188506#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 188509#$Ultimate##0 ~n := #in~n; 188507#L25 assume !(~n <= 0); 187741#L26 call #t~ret0 := fact(~n - 1);< 188169#$Ultimate##0 ~n := #in~n; 188502#L25 assume !(~n <= 0); 187723#L26 call #t~ret0 := fact(~n - 1);< 187765#$Ultimate##0 ~n := #in~n; 187807#L25 assume ~n <= 0;#res := 1; 187806#factFINAL assume true; 187754#factEXIT >#66#return; 187756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187719#factFINAL assume true; 187743#factEXIT >#66#return; 187759#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188518#factFINAL assume true; 188511#factEXIT >#74#return; 188257#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 187669#$Ultimate##0 ~n := #in~n; 188492#L25 assume !(~n <= 0); 187722#L26 call #t~ret0 := fact(~n - 1);< 188184#$Ultimate##0 ~n := #in~n; 187837#L25 assume ~n <= 0;#res := 1; 188254#factFINAL assume true; 188174#factEXIT >#66#return; 188179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188487#factFINAL assume true; 188301#factEXIT >#76#return; 188261#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 188488#$Ultimate##0 ~n := #in~n; 188494#L25 assume !(~n <= 0); 188177#L26 call #t~ret0 := fact(~n - 1);< 188183#$Ultimate##0 ~n := #in~n; 187837#L25 assume ~n <= 0;#res := 1; 188254#factFINAL assume true; 188174#factEXIT >#66#return; 188179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188487#factFINAL assume true; 188301#factEXIT >#78#return; 188306#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 188545#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 188543#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 188541#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 188538#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 187616#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 189549#$Ultimate##0 ~n := #in~n; 189602#L25 assume !(~n <= 0); 187304#L26 call #t~ret0 := fact(~n - 1);< 189581#$Ultimate##0 ~n := #in~n; 189484#L25 assume !(~n <= 0); 187308#L26 call #t~ret0 := fact(~n - 1);< 187361#$Ultimate##0 ~n := #in~n; 189484#L25 assume !(~n <= 0); 187308#L26 call #t~ret0 := fact(~n - 1);< 187361#$Ultimate##0 ~n := #in~n; 189486#L25 assume ~n <= 0;#res := 1; 189601#factFINAL assume true; 189589#factEXIT >#66#return; 189586#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 189582#factFINAL assume true; 189563#factEXIT >#66#return; 189572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 189598#factFINAL assume true; 189595#factEXIT >#66#return; 189596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 189630#factFINAL assume true; 189606#factEXIT >#74#return; 187341#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 187395#$Ultimate##0 ~n := #in~n; 189631#L25 assume !(~n <= 0); 189568#L26 call #t~ret0 := fact(~n - 1);< 189580#$Ultimate##0 ~n := #in~n; 189587#L25 assume ~n <= 0;#res := 1; 189583#factFINAL assume true; 189574#factEXIT >#66#return; 187381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187339#factFINAL assume true; 187344#factEXIT >#76#return; 187615#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 189549#$Ultimate##0 ~n := #in~n; 189602#L25 assume !(~n <= 0); 187304#L26 call #t~ret0 := fact(~n - 1);< 189581#$Ultimate##0 ~n := #in~n; 189484#L25 assume !(~n <= 0); 187308#L26 call #t~ret0 := fact(~n - 1);< 187361#$Ultimate##0 ~n := #in~n; 189486#L25 assume ~n <= 0;#res := 1; 189601#factFINAL assume true; 189589#factEXIT >#66#return; 189586#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 189582#factFINAL assume true; 189563#factEXIT >#66#return; 189570#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 189548#factFINAL assume true; 189537#factEXIT >#78#return; 189535#L30-8 [2023-02-18 08:56:28,026 INFO L750 eck$LassoCheckResult]: Loop: 189535#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 189534#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 189533#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 189532#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 189531#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 189530#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 189529#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 189528#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 188503#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 187336#$Ultimate##0 ~n := #in~n; 188508#L25 assume !(~n <= 0); 187725#L26 call #t~ret0 := fact(~n - 1);< 188169#$Ultimate##0 ~n := #in~n; 188502#L25 assume !(~n <= 0); 187723#L26 call #t~ret0 := fact(~n - 1);< 187765#$Ultimate##0 ~n := #in~n; 188502#L25 assume !(~n <= 0); 187723#L26 call #t~ret0 := fact(~n - 1);< 187765#$Ultimate##0 ~n := #in~n; 188502#L25 assume !(~n <= 0); 187723#L26 call #t~ret0 := fact(~n - 1);< 187765#$Ultimate##0 ~n := #in~n; 187807#L25 assume ~n <= 0;#res := 1; 187806#factFINAL assume true; 187754#factEXIT >#66#return; 187756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187719#factFINAL assume true; 187743#factEXIT >#66#return; 187757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188266#factFINAL assume true; 188106#factEXIT >#66#return; 187749#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187752#factFINAL assume true; 188144#factEXIT >#66#return; 188146#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188621#factFINAL assume true; 188552#factEXIT >#68#return; 188549#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 188551#$Ultimate##0 ~n := #in~n; 188562#L25 assume ~n <= 0;#res := 1; 188555#factFINAL assume true; 188548#factEXIT >#70#return; 188292#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 188294#$Ultimate##0 ~n := #in~n; 188293#L25 assume !(~n <= 0); 187751#L26 call #t~ret0 := fact(~n - 1);< 188150#$Ultimate##0 ~n := #in~n; 188290#L25 assume !(~n <= 0); 187727#L26 call #t~ret0 := fact(~n - 1);< 187766#$Ultimate##0 ~n := #in~n; 188502#L25 assume !(~n <= 0); 187723#L26 call #t~ret0 := fact(~n - 1);< 187765#$Ultimate##0 ~n := #in~n; 187807#L25 assume ~n <= 0;#res := 1; 187806#factFINAL assume true; 187754#factEXIT >#66#return; 187756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187719#factFINAL assume true; 187743#factEXIT >#66#return; 187757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188266#factFINAL assume true; 188106#factEXIT >#66#return; 188111#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188579#factFINAL assume true; 188576#factEXIT >#72#return; 188577#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 189527#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 189526#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 189525#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 189524#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 188166#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 188171#$Ultimate##0 ~n := #in~n; 188170#L25 assume !(~n <= 0); 187731#L26 call #t~ret0 := fact(~n - 1);< 188169#$Ultimate##0 ~n := #in~n; 188502#L25 assume !(~n <= 0); 187723#L26 call #t~ret0 := fact(~n - 1);< 187765#$Ultimate##0 ~n := #in~n; 188502#L25 assume !(~n <= 0); 187723#L26 call #t~ret0 := fact(~n - 1);< 187765#$Ultimate##0 ~n := #in~n; 188502#L25 assume !(~n <= 0); 187723#L26 call #t~ret0 := fact(~n - 1);< 187765#$Ultimate##0 ~n := #in~n; 187807#L25 assume ~n <= 0;#res := 1; 187806#factFINAL assume true; 187754#factEXIT >#66#return; 187756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187719#factFINAL assume true; 187743#factEXIT >#66#return; 187757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188266#factFINAL assume true; 188106#factEXIT >#66#return; 187749#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187752#factFINAL assume true; 188144#factEXIT >#66#return; 188147#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188289#factFINAL assume true; 188288#factEXIT >#68#return; 187636#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 188284#$Ultimate##0 ~n := #in~n; 188281#L25 assume !(~n <= 0); 187721#L26 call #t~ret0 := fact(~n - 1);< 188169#$Ultimate##0 ~n := #in~n; 187837#L25 assume ~n <= 0;#res := 1; 188254#factFINAL assume true; 188174#factEXIT >#66#return; 188178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188336#factFINAL assume true; 188329#factEXIT >#70#return; 187629#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 188284#$Ultimate##0 ~n := #in~n; 188281#L25 assume !(~n <= 0); 187721#L26 call #t~ret0 := fact(~n - 1);< 188169#$Ultimate##0 ~n := #in~n; 188502#L25 assume !(~n <= 0); 187723#L26 call #t~ret0 := fact(~n - 1);< 187765#$Ultimate##0 ~n := #in~n; 188502#L25 assume !(~n <= 0); 187723#L26 call #t~ret0 := fact(~n - 1);< 187765#$Ultimate##0 ~n := #in~n; 187807#L25 assume ~n <= 0;#res := 1; 187806#factFINAL assume true; 187754#factEXIT >#66#return; 187756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187719#factFINAL assume true; 187743#factEXIT >#66#return; 187757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188266#factFINAL assume true; 188106#factEXIT >#66#return; 188108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188623#factFINAL assume true; 187649#factEXIT >#72#return; 187662#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 189523#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 189522#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 189521#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 189520#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 188162#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 188171#$Ultimate##0 ~n := #in~n; 188170#L25 assume !(~n <= 0); 187731#L26 call #t~ret0 := fact(~n - 1);< 188169#$Ultimate##0 ~n := #in~n; 188502#L25 assume !(~n <= 0); 187723#L26 call #t~ret0 := fact(~n - 1);< 187765#$Ultimate##0 ~n := #in~n; 188502#L25 assume !(~n <= 0); 187723#L26 call #t~ret0 := fact(~n - 1);< 187765#$Ultimate##0 ~n := #in~n; 188502#L25 assume !(~n <= 0); 187723#L26 call #t~ret0 := fact(~n - 1);< 187765#$Ultimate##0 ~n := #in~n; 187807#L25 assume ~n <= 0;#res := 1; 187806#factFINAL assume true; 187754#factEXIT >#66#return; 187756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187719#factFINAL assume true; 187743#factEXIT >#66#return; 187757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188266#factFINAL assume true; 188106#factEXIT >#66#return; 187749#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187752#factFINAL assume true; 188144#factEXIT >#66#return; 188147#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188289#factFINAL assume true; 188288#factEXIT >#68#return; 187638#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 188284#$Ultimate##0 ~n := #in~n; 188281#L25 assume !(~n <= 0); 187721#L26 call #t~ret0 := fact(~n - 1);< 188169#$Ultimate##0 ~n := #in~n; 188502#L25 assume !(~n <= 0); 187723#L26 call #t~ret0 := fact(~n - 1);< 187765#$Ultimate##0 ~n := #in~n; 187807#L25 assume ~n <= 0;#res := 1; 187806#factFINAL assume true; 187754#factEXIT >#66#return; 187756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187719#factFINAL assume true; 187743#factEXIT >#66#return; 187758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188585#factFINAL assume true; 188565#factEXIT >#70#return; 187627#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 188284#$Ultimate##0 ~n := #in~n; 188281#L25 assume !(~n <= 0); 187721#L26 call #t~ret0 := fact(~n - 1);< 188169#$Ultimate##0 ~n := #in~n; 187837#L25 assume ~n <= 0;#res := 1; 188254#factFINAL assume true; 188174#factEXIT >#66#return; 188178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188336#factFINAL assume true; 188329#factEXIT >#72#return; 188189#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 188188#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 188187#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 188185#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 188173#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 188161#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 188171#$Ultimate##0 ~n := #in~n; 188170#L25 assume !(~n <= 0); 187731#L26 call #t~ret0 := fact(~n - 1);< 188169#$Ultimate##0 ~n := #in~n; 188502#L25 assume !(~n <= 0); 187723#L26 call #t~ret0 := fact(~n - 1);< 187765#$Ultimate##0 ~n := #in~n; 188502#L25 assume !(~n <= 0); 187723#L26 call #t~ret0 := fact(~n - 1);< 187765#$Ultimate##0 ~n := #in~n; 188502#L25 assume !(~n <= 0); 187723#L26 call #t~ret0 := fact(~n - 1);< 187765#$Ultimate##0 ~n := #in~n; 187807#L25 assume ~n <= 0;#res := 1; 187806#factFINAL assume true; 187754#factEXIT >#66#return; 187756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187719#factFINAL assume true; 187743#factEXIT >#66#return; 187757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188266#factFINAL assume true; 188106#factEXIT >#66#return; 187749#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187752#factFINAL assume true; 188144#factEXIT >#66#return; 188147#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188289#factFINAL assume true; 188288#factEXIT >#68#return; 187634#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 188284#$Ultimate##0 ~n := #in~n; 188281#L25 assume !(~n <= 0); 187721#L26 call #t~ret0 := fact(~n - 1);< 188169#$Ultimate##0 ~n := #in~n; 188502#L25 assume !(~n <= 0); 187723#L26 call #t~ret0 := fact(~n - 1);< 187765#$Ultimate##0 ~n := #in~n; 188502#L25 assume !(~n <= 0); 187723#L26 call #t~ret0 := fact(~n - 1);< 187765#$Ultimate##0 ~n := #in~n; 188502#L25 assume !(~n <= 0); 187723#L26 call #t~ret0 := fact(~n - 1);< 187765#$Ultimate##0 ~n := #in~n; 187807#L25 assume ~n <= 0;#res := 1; 187806#factFINAL assume true; 187754#factEXIT >#66#return; 187756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187719#factFINAL assume true; 187743#factEXIT >#66#return; 187757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188266#factFINAL assume true; 188106#factEXIT >#66#return; 187749#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 187752#factFINAL assume true; 188144#factEXIT >#66#return; 188145#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 188547#factFINAL assume true; 188537#factEXIT >#70#return; 187631#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 188284#$Ultimate##0 ~n := #in~n; 188281#L25 assume ~n <= 0;#res := 1; 187644#factFINAL assume true; 187622#factEXIT >#72#return; 187640#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 189621#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 189620#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 189617#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 189614#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 188540#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 187298#$Ultimate##0 ~n := #in~n; 189632#L25 assume !(~n <= 0); 187306#L26 call #t~ret0 := fact(~n - 1);< 189485#$Ultimate##0 ~n := #in~n; 189484#L25 assume !(~n <= 0); 187308#L26 call #t~ret0 := fact(~n - 1);< 187361#$Ultimate##0 ~n := #in~n; 189484#L25 assume !(~n <= 0); 187308#L26 call #t~ret0 := fact(~n - 1);< 187361#$Ultimate##0 ~n := #in~n; 189484#L25 assume !(~n <= 0); 187308#L26 call #t~ret0 := fact(~n - 1);< 187361#$Ultimate##0 ~n := #in~n; 189486#L25 assume ~n <= 0;#res := 1; 189601#factFINAL assume true; 189589#factEXIT >#66#return; 189586#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 189582#factFINAL assume true; 189563#factEXIT >#66#return; 189572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 189598#factFINAL assume true; 189595#factEXIT >#66#return; 187313#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 189639#factFINAL assume true; 187301#factEXIT >#66#return; 187312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 189642#factFINAL assume true; 189550#factEXIT >#74#return; 189553#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 189613#$Ultimate##0 ~n := #in~n; 189612#L25 assume !(~n <= 0); 187309#L26 call #t~ret0 := fact(~n - 1);< 189485#$Ultimate##0 ~n := #in~n; 189484#L25 assume !(~n <= 0); 187308#L26 call #t~ret0 := fact(~n - 1);< 187361#$Ultimate##0 ~n := #in~n; 189486#L25 assume ~n <= 0;#res := 1; 189601#factFINAL assume true; 189589#factEXIT >#66#return; 189586#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 189582#factFINAL assume true; 189563#factEXIT >#66#return; 189561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 189559#factFINAL assume true; 189556#factEXIT >#76#return; 189539#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 189540#$Ultimate##0 ~n := #in~n; 189622#L25 assume !(~n <= 0); 189575#L26 call #t~ret0 := fact(~n - 1);< 189579#$Ultimate##0 ~n := #in~n; 189587#L25 assume ~n <= 0;#res := 1; 189583#factFINAL assume true; 189574#factEXIT >#66#return; 189562#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 189560#factFINAL assume true; 189557#factEXIT >#78#return; 189535#L30-8 [2023-02-18 08:56:28,027 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:28,028 INFO L85 PathProgramCache]: Analyzing trace with hash 2135700754, now seen corresponding path program 36 times [2023-02-18 08:56:28,028 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:28,028 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [485606473] [2023-02-18 08:56:28,028 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:28,028 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:28,035 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:28,036 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [783773175] [2023-02-18 08:56:28,036 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:56:28,036 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:28,036 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:28,039 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-18 08:56:28,040 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-18 08:56:28,295 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 17 check-sat command(s) [2023-02-18 08:56:28,295 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:28,295 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:28,393 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:28,431 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:28,432 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:28,432 INFO L85 PathProgramCache]: Analyzing trace with hash -1400948115, now seen corresponding path program 37 times [2023-02-18 08:56:28,432 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:28,432 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2085441313] [2023-02-18 08:56:28,432 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:28,432 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:28,438 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:28,439 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1408741563] [2023-02-18 08:56:28,439 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:56:28,439 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:28,439 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:28,440 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-18 08:56:28,441 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-18 08:56:28,613 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:56:28,616 INFO L263 TraceCheckSpWp]: Trace formula consists of 707 conjuncts, 21 conjunts are in the unsatisfiable core [2023-02-18 08:56:28,618 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:28,673 INFO L134 CoverageAnalysis]: Checked inductivity of 6701 backedges. 2176 proven. 106 refuted. 0 times theorem prover too weak. 4419 trivial. 0 not checked. [2023-02-18 08:56:28,673 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:28,846 INFO L134 CoverageAnalysis]: Checked inductivity of 6701 backedges. 76 proven. 1552 refuted. 0 times theorem prover too weak. 5073 trivial. 0 not checked. [2023-02-18 08:56:28,847 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:28,847 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2085441313] [2023-02-18 08:56:28,847 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:28,847 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1408741563] [2023-02-18 08:56:28,847 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1408741563] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:28,847 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:28,848 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 21] total 24 [2023-02-18 08:56:28,848 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [581972786] [2023-02-18 08:56:28,848 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:28,848 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:28,848 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:28,848 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 24 interpolants. [2023-02-18 08:56:28,848 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=87, Invalid=465, Unknown=0, NotChecked=0, Total=552 [2023-02-18 08:56:28,849 INFO L87 Difference]: Start difference. First operand 2346 states and 3401 transitions. cyclomatic complexity: 1078 Second operand has 24 states, 21 states have (on average 2.9047619047619047) internal successors, (61), 22 states have internal predecessors, (61), 14 states have call successors, (28), 2 states have call predecessors, (28), 10 states have return successors, (33), 11 states have call predecessors, (33), 14 states have call successors, (33) [2023-02-18 08:56:29,442 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:29,442 INFO L93 Difference]: Finished difference Result 2659 states and 3818 transitions. [2023-02-18 08:56:29,442 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2659 states and 3818 transitions. [2023-02-18 08:56:29,453 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 192 [2023-02-18 08:56:29,469 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2659 states to 2656 states and 3815 transitions. [2023-02-18 08:56:29,470 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 204 [2023-02-18 08:56:29,470 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 204 [2023-02-18 08:56:29,470 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2656 states and 3815 transitions. [2023-02-18 08:56:29,470 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:29,470 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2656 states and 3815 transitions. [2023-02-18 08:56:29,471 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2656 states and 3815 transitions. [2023-02-18 08:56:29,495 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2656 to 2355. [2023-02-18 08:56:29,498 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2355 states, 1485 states have (on average 1.0626262626262626) internal successors, (1578), 1486 states have internal predecessors, (1578), 671 states have call successors, (685), 241 states have call predecessors, (685), 199 states have return successors, (1150), 627 states have call predecessors, (1150), 671 states have call successors, (1150) [2023-02-18 08:56:29,504 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2355 states to 2355 states and 3413 transitions. [2023-02-18 08:56:29,505 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2355 states and 3413 transitions. [2023-02-18 08:56:29,505 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 25 states. [2023-02-18 08:56:29,505 INFO L428 stractBuchiCegarLoop]: Abstraction has 2355 states and 3413 transitions. [2023-02-18 08:56:29,506 INFO L335 stractBuchiCegarLoop]: ======== Iteration 50 ============ [2023-02-18 08:56:29,506 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2355 states and 3413 transitions. [2023-02-18 08:56:29,511 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 154 [2023-02-18 08:56:29,511 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:29,511 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:29,513 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:29,513 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [52, 52, 37, 37, 37, 37, 15, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:29,513 INFO L748 eck$LassoCheckResult]: Stem: 194398#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 194347#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; 194348#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 194371#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; 194399#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 194559#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 194557#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 194553#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 194554#$Ultimate##0 ~n := #in~n; 194558#L25 assume ~n <= 0;#res := 1; 194556#factFINAL assume true; 194552#factEXIT >#68#return; 194548#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 194549#$Ultimate##0 ~n := #in~n; 194555#L25 assume ~n <= 0;#res := 1; 194551#factFINAL assume true; 194547#factEXIT >#70#return; 194544#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 194545#$Ultimate##0 ~n := #in~n; 194550#L25 assume ~n <= 0;#res := 1; 194546#factFINAL assume true; 194543#factEXIT >#72#return; 194542#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 194540#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 194537#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 194533#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 194530#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 194521#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 194522#$Ultimate##0 ~n := #in~n; 194539#L25 assume !(~n <= 0); 194535#L26 call #t~ret0 := fact(~n - 1);< 194536#$Ultimate##0 ~n := #in~n; 194541#L25 assume ~n <= 0;#res := 1; 194538#factFINAL assume true; 194534#factEXIT >#66#return; 194531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194528#factFINAL assume true; 194520#factEXIT >#74#return; 194516#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 194517#$Ultimate##0 ~n := #in~n; 194526#L25 assume ~n <= 0;#res := 1; 194519#factFINAL assume true; 194515#factEXIT >#76#return; 194512#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 194513#$Ultimate##0 ~n := #in~n; 194527#L25 assume !(~n <= 0); 194524#L26 call #t~ret0 := fact(~n - 1);< 194525#$Ultimate##0 ~n := #in~n; 194532#L25 assume ~n <= 0;#res := 1; 194529#factFINAL assume true; 194523#factEXIT >#66#return; 194518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194514#factFINAL assume true; 194511#factEXIT >#78#return; 194508#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 194505#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 194503#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 194502#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 194498#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 194487#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 194488#$Ultimate##0 ~n := #in~n; 194509#L25 assume !(~n <= 0); 194491#L26 call #t~ret0 := fact(~n - 1);< 194496#$Ultimate##0 ~n := #in~n; 194510#L25 assume !(~n <= 0); 194493#L26 call #t~ret0 := fact(~n - 1);< 194507#$Ultimate##0 ~n := #in~n; 194564#L25 assume ~n <= 0;#res := 1; 194560#factFINAL assume true; 194506#factEXIT >#66#return; 194504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194500#factFINAL assume true; 194490#factEXIT >#66#return; 194494#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194568#factFINAL assume true; 194486#factEXIT >#74#return; 194481#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 194482#$Ultimate##0 ~n := #in~n; 194497#L25 assume ~n <= 0;#res := 1; 194485#factFINAL assume true; 194480#factEXIT >#76#return; 194474#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 194475#$Ultimate##0 ~n := #in~n; 194501#L25 assume !(~n <= 0); 194492#L26 call #t~ret0 := fact(~n - 1);< 194496#$Ultimate##0 ~n := #in~n; 194510#L25 assume !(~n <= 0); 194493#L26 call #t~ret0 := fact(~n - 1);< 194507#$Ultimate##0 ~n := #in~n; 194564#L25 assume ~n <= 0;#res := 1; 194560#factFINAL assume true; 194506#factEXIT >#66#return; 194504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194500#factFINAL assume true; 194490#factEXIT >#66#return; 194484#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194479#factFINAL assume true; 194473#factEXIT >#78#return; 194470#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 194468#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 194464#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 194458#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 194454#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 194449#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 194450#$Ultimate##0 ~n := #in~n; 194467#L25 assume !(~n <= 0); 194462#L26 call #t~ret0 := fact(~n - 1);< 194463#$Ultimate##0 ~n := #in~n; 194478#L25 assume !(~n <= 0); 194461#L26 call #t~ret0 := fact(~n - 1);< 194472#$Ultimate##0 ~n := #in~n; 194478#L25 assume !(~n <= 0); 194461#L26 call #t~ret0 := fact(~n - 1);< 194472#$Ultimate##0 ~n := #in~n; 194499#L25 assume ~n <= 0;#res := 1; 194489#factFINAL assume true; 194483#factEXIT >#66#return; 194477#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194476#factFINAL assume true; 194471#factEXIT >#66#return; 194469#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194466#factFINAL assume true; 194460#factEXIT >#66#return; 194457#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194453#factFINAL assume true; 194448#factEXIT >#74#return; 194444#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 194445#$Ultimate##0 ~n := #in~n; 194452#L25 assume ~n <= 0;#res := 1; 194447#factFINAL assume true; 194443#factEXIT >#76#return; 194430#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 194439#$Ultimate##0 ~n := #in~n; 194438#L25 assume !(~n <= 0); 194423#L26 call #t~ret0 := fact(~n - 1);< 194426#$Ultimate##0 ~n := #in~n; 194432#L25 assume !(~n <= 0); 194422#L26 call #t~ret0 := fact(~n - 1);< 194436#$Ultimate##0 ~n := #in~n; 194432#L25 assume !(~n <= 0); 194422#L26 call #t~ret0 := fact(~n - 1);< 194436#$Ultimate##0 ~n := #in~n; 194465#L25 assume ~n <= 0;#res := 1; 194459#factFINAL assume true; 194456#factEXIT >#66#return; 194451#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194446#factFINAL assume true; 194442#factEXIT >#66#return; 194440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194437#factFINAL assume true; 194434#factEXIT >#66#return; 194425#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 195601#factFINAL assume true; 195553#factEXIT >#78#return; 195547#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 194350#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 195521#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 195467#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 195466#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 195465#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 195435#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 194805#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 194772#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 194774#$Ultimate##0 ~n := #in~n; 194804#L25 assume !(~n <= 0); 194789#L26 call #t~ret0 := fact(~n - 1);< 194803#$Ultimate##0 ~n := #in~n; 194813#L25 assume ~n <= 0;#res := 1; 194807#factFINAL assume true; 194780#factEXIT >#66#return; 194779#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194778#factFINAL assume true; 194770#factEXIT >#68#return; 194760#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 194766#$Ultimate##0 ~n := #in~n; 194777#L25 assume ~n <= 0;#res := 1; 194769#factFINAL assume true; 194759#factEXIT >#70#return; 194756#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 194757#$Ultimate##0 ~n := #in~n; 194806#L25 assume !(~n <= 0); 194737#L26 call #t~ret0 := fact(~n - 1);< 194751#$Ultimate##0 ~n := #in~n; 194750#L25 assume ~n <= 0;#res := 1; 194746#factFINAL assume true; 194723#factEXIT >#66#return; 194743#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194758#factFINAL assume true; 194755#factEXIT >#72#return; 194754#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 194752#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 194749#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 194745#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 194722#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 194714#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 194719#$Ultimate##0 ~n := #in~n; 194753#L25 assume !(~n <= 0); 194731#L26 call #t~ret0 := fact(~n - 1);< 194751#$Ultimate##0 ~n := #in~n; 194750#L25 assume ~n <= 0;#res := 1; 194746#factFINAL assume true; 194723#factEXIT >#66#return; 194741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194721#factFINAL assume true; 194713#factEXIT >#68#return; 194688#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 194709#$Ultimate##0 ~n := #in~n; 194958#L25 assume !(~n <= 0); 194725#L26 call #t~ret0 := fact(~n - 1);< 194846#$Ultimate##0 ~n := #in~n; 194750#L25 assume ~n <= 0;#res := 1; 194746#factFINAL assume true; 194723#factEXIT >#66#return; 194720#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194710#factFINAL assume true; 194685#factEXIT >#70#return; 194703#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 195029#$Ultimate##0 ~n := #in~n; 195036#L25 assume ~n <= 0;#res := 1; 194858#factFINAL assume true; 195026#factEXIT >#72#return; 195027#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 195157#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 195156#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 195146#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 195144#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 194991#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 195053#$Ultimate##0 ~n := #in~n; 195202#L25 assume !(~n <= 0); 194728#L26 call #t~ret0 := fact(~n - 1);< 194968#$Ultimate##0 ~n := #in~n; 194966#L25 assume !(~n <= 0); 194823#L26 call #t~ret0 := fact(~n - 1);< 194957#$Ultimate##0 ~n := #in~n; 195015#L25 assume ~n <= 0;#res := 1; 195014#factFINAL assume true; 194954#factEXIT >#66#return; 194953#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194843#factFINAL assume true; 194821#factEXIT >#66#return; 194836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 195052#factFINAL assume true; 194989#factEXIT >#74#return; 194698#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 194709#$Ultimate##0 ~n := #in~n; 194958#L25 assume !(~n <= 0); 194725#L26 call #t~ret0 := fact(~n - 1);< 194846#$Ultimate##0 ~n := #in~n; 194750#L25 assume ~n <= 0;#res := 1; 194746#factFINAL assume true; 194723#factEXIT >#66#return; 194720#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194710#factFINAL assume true; 194685#factEXIT >#76#return; 194696#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 194712#$Ultimate##0 ~n := #in~n; 194859#L25 assume !(~n <= 0); 194736#L26 call #t~ret0 := fact(~n - 1);< 194744#$Ultimate##0 ~n := #in~n; 194750#L25 assume ~n <= 0;#res := 1; 194746#factFINAL assume true; 194723#factEXIT >#66#return; 194720#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194710#factFINAL assume true; 194685#factEXIT >#78#return; 194705#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 195194#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 195193#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 195058#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 195057#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 194613#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 194401#$Ultimate##0 ~n := #in~n; 196478#L25 assume !(~n <= 0); 194314#L26 call #t~ret0 := fact(~n - 1);< 196444#$Ultimate##0 ~n := #in~n; 196458#L25 assume !(~n <= 0); 194307#L26 call #t~ret0 := fact(~n - 1);< 196455#$Ultimate##0 ~n := #in~n; 196458#L25 assume !(~n <= 0); 194307#L26 call #t~ret0 := fact(~n - 1);< 196455#$Ultimate##0 ~n := #in~n; 196460#L25 assume ~n <= 0;#res := 1; 196467#factFINAL assume true; 196466#factEXIT >#66#return; 196464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 196454#factFINAL assume true; 196415#factEXIT >#66#return; 196419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 196491#factFINAL assume true; 196437#factEXIT >#66#return; 196435#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 196428#factFINAL assume true; 196404#factEXIT >#74#return; 196315#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 196316#$Ultimate##0 ~n := #in~n; 196493#L25 assume !(~n <= 0); 196365#L26 call #t~ret0 := fact(~n - 1);< 196423#$Ultimate##0 ~n := #in~n; 196392#L25 assume ~n <= 0;#res := 1; 196389#factFINAL assume true; 196364#factEXIT >#66#return; 196371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 196442#factFINAL assume true; 196440#factEXIT >#76#return; 194400#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 194401#$Ultimate##0 ~n := #in~n; 196478#L25 assume !(~n <= 0); 194314#L26 call #t~ret0 := fact(~n - 1);< 196444#$Ultimate##0 ~n := #in~n; 196458#L25 assume !(~n <= 0); 194307#L26 call #t~ret0 := fact(~n - 1);< 196455#$Ultimate##0 ~n := #in~n; 196460#L25 assume ~n <= 0;#res := 1; 196467#factFINAL assume true; 196466#factEXIT >#66#return; 196464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 196454#factFINAL assume true; 196415#factEXIT >#66#return; 196421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 196479#factFINAL assume true; 196434#factEXIT >#78#return; 195909#L30-8 [2023-02-18 08:56:29,514 INFO L750 eck$LassoCheckResult]: Loop: 195909#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 195895#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 195883#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 195880#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 195878#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 195792#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 195782#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 194404#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 194343#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 194344#$Ultimate##0 ~n := #in~n; 195862#L25 assume !(~n <= 0); 194738#L26 call #t~ret0 := fact(~n - 1);< 194968#$Ultimate##0 ~n := #in~n; 194966#L25 assume !(~n <= 0); 194823#L26 call #t~ret0 := fact(~n - 1);< 194957#$Ultimate##0 ~n := #in~n; 194966#L25 assume !(~n <= 0); 194823#L26 call #t~ret0 := fact(~n - 1);< 194957#$Ultimate##0 ~n := #in~n; 194966#L25 assume !(~n <= 0); 194823#L26 call #t~ret0 := fact(~n - 1);< 194957#$Ultimate##0 ~n := #in~n; 195015#L25 assume ~n <= 0;#res := 1; 195014#factFINAL assume true; 194954#factEXIT >#66#return; 194953#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194843#factFINAL assume true; 194821#factEXIT >#66#return; 194837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 195158#factFINAL assume true; 195147#factEXIT >#66#return; 195153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 196213#factFINAL assume true; 195234#factEXIT >#66#return; 195239#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 195849#factFINAL assume true; 195780#factEXIT >#68#return; 195775#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 195776#$Ultimate##0 ~n := #in~n; 195817#L25 assume ~n <= 0;#res := 1; 195814#factFINAL assume true; 195773#factEXIT >#70#return; 195767#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 195770#$Ultimate##0 ~n := #in~n; 195821#L25 assume !(~n <= 0); 195159#L26 call #t~ret0 := fact(~n - 1);< 195813#$Ultimate##0 ~n := #in~n; 196267#L25 assume !(~n <= 0); 195149#L26 call #t~ret0 := fact(~n - 1);< 195160#$Ultimate##0 ~n := #in~n; 196212#L25 assume !(~n <= 0); 194832#L26 call #t~ret0 := fact(~n - 1);< 194848#$Ultimate##0 ~n := #in~n; 194966#L25 assume !(~n <= 0); 194823#L26 call #t~ret0 := fact(~n - 1);< 194957#$Ultimate##0 ~n := #in~n; 195015#L25 assume ~n <= 0;#res := 1; 195014#factFINAL assume true; 194954#factEXIT >#66#return; 194953#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194843#factFINAL assume true; 194821#factEXIT >#66#return; 194837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 195158#factFINAL assume true; 195147#factEXIT >#66#return; 195153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 196213#factFINAL assume true; 195234#factEXIT >#66#return; 195238#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 195772#factFINAL assume true; 195766#factEXIT >#72#return; 195764#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 195763#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 195747#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 195736#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 195731#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 194674#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 194683#$Ultimate##0 ~n := #in~n; 195871#L25 assume !(~n <= 0); 194732#L26 call #t~ret0 := fact(~n - 1);< 194968#$Ultimate##0 ~n := #in~n; 194966#L25 assume !(~n <= 0); 194823#L26 call #t~ret0 := fact(~n - 1);< 194957#$Ultimate##0 ~n := #in~n; 194966#L25 assume !(~n <= 0); 194823#L26 call #t~ret0 := fact(~n - 1);< 194957#$Ultimate##0 ~n := #in~n; 194966#L25 assume !(~n <= 0); 194823#L26 call #t~ret0 := fact(~n - 1);< 194957#$Ultimate##0 ~n := #in~n; 195015#L25 assume ~n <= 0;#res := 1; 195014#factFINAL assume true; 194954#factEXIT >#66#return; 194953#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194843#factFINAL assume true; 194821#factEXIT >#66#return; 194837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 195158#factFINAL assume true; 195147#factEXIT >#66#return; 195153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 196213#factFINAL assume true; 195234#factEXIT >#66#return; 195237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194673#factFINAL assume true; 194682#factEXIT >#68#return; 194629#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 195039#$Ultimate##0 ~n := #in~n; 194988#L25 assume !(~n <= 0); 194734#L26 call #t~ret0 := fact(~n - 1);< 194968#$Ultimate##0 ~n := #in~n; 194750#L25 assume ~n <= 0;#res := 1; 194746#factFINAL assume true; 194723#factEXIT >#66#return; 194739#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 195254#factFINAL assume true; 195249#factEXIT >#70#return; 194620#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 195039#$Ultimate##0 ~n := #in~n; 194988#L25 assume !(~n <= 0); 194734#L26 call #t~ret0 := fact(~n - 1);< 194968#$Ultimate##0 ~n := #in~n; 194966#L25 assume !(~n <= 0); 194823#L26 call #t~ret0 := fact(~n - 1);< 194957#$Ultimate##0 ~n := #in~n; 195015#L25 assume ~n <= 0;#res := 1; 195014#factFINAL assume true; 194954#factEXIT >#66#return; 194953#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194843#factFINAL assume true; 194821#factEXIT >#66#return; 194834#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 195267#factFINAL assume true; 195264#factEXIT >#72#return; 195258#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 195701#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 195699#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 195688#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 195266#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 194675#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 194683#$Ultimate##0 ~n := #in~n; 195871#L25 assume !(~n <= 0); 194732#L26 call #t~ret0 := fact(~n - 1);< 194968#$Ultimate##0 ~n := #in~n; 194966#L25 assume !(~n <= 0); 194823#L26 call #t~ret0 := fact(~n - 1);< 194957#$Ultimate##0 ~n := #in~n; 194966#L25 assume !(~n <= 0); 194823#L26 call #t~ret0 := fact(~n - 1);< 194957#$Ultimate##0 ~n := #in~n; 194966#L25 assume !(~n <= 0); 194823#L26 call #t~ret0 := fact(~n - 1);< 194957#$Ultimate##0 ~n := #in~n; 195015#L25 assume ~n <= 0;#res := 1; 195014#factFINAL assume true; 194954#factEXIT >#66#return; 194953#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194843#factFINAL assume true; 194821#factEXIT >#66#return; 194837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 195158#factFINAL assume true; 195147#factEXIT >#66#return; 195153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 196213#factFINAL assume true; 195234#factEXIT >#66#return; 195237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194673#factFINAL assume true; 194682#factEXIT >#68#return; 194633#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 195039#$Ultimate##0 ~n := #in~n; 194988#L25 assume !(~n <= 0); 194734#L26 call #t~ret0 := fact(~n - 1);< 194968#$Ultimate##0 ~n := #in~n; 194966#L25 assume !(~n <= 0); 194823#L26 call #t~ret0 := fact(~n - 1);< 194957#$Ultimate##0 ~n := #in~n; 195015#L25 assume ~n <= 0;#res := 1; 195014#factFINAL assume true; 194954#factEXIT >#66#return; 194953#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194843#factFINAL assume true; 194821#factEXIT >#66#return; 194834#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 195267#factFINAL assume true; 195264#factEXIT >#70#return; 194630#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 195039#$Ultimate##0 ~n := #in~n; 194988#L25 assume !(~n <= 0); 194734#L26 call #t~ret0 := fact(~n - 1);< 194968#$Ultimate##0 ~n := #in~n; 194750#L25 assume ~n <= 0;#res := 1; 194746#factFINAL assume true; 194723#factEXIT >#66#return; 194739#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 195254#factFINAL assume true; 195249#factEXIT >#72#return; 195247#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 195245#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 195093#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 195092#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 195091#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 194681#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 194683#$Ultimate##0 ~n := #in~n; 195871#L25 assume !(~n <= 0); 194732#L26 call #t~ret0 := fact(~n - 1);< 194968#$Ultimate##0 ~n := #in~n; 194966#L25 assume !(~n <= 0); 194823#L26 call #t~ret0 := fact(~n - 1);< 194957#$Ultimate##0 ~n := #in~n; 194966#L25 assume !(~n <= 0); 194823#L26 call #t~ret0 := fact(~n - 1);< 194957#$Ultimate##0 ~n := #in~n; 194966#L25 assume !(~n <= 0); 194823#L26 call #t~ret0 := fact(~n - 1);< 194957#$Ultimate##0 ~n := #in~n; 195015#L25 assume ~n <= 0;#res := 1; 195014#factFINAL assume true; 194954#factEXIT >#66#return; 194953#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194843#factFINAL assume true; 194821#factEXIT >#66#return; 194837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 195158#factFINAL assume true; 195147#factEXIT >#66#return; 195153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 196213#factFINAL assume true; 195234#factEXIT >#66#return; 195237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194673#factFINAL assume true; 194682#factEXIT >#68#return; 194624#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 195039#$Ultimate##0 ~n := #in~n; 194988#L25 assume !(~n <= 0); 194734#L26 call #t~ret0 := fact(~n - 1);< 194968#$Ultimate##0 ~n := #in~n; 194966#L25 assume !(~n <= 0); 194823#L26 call #t~ret0 := fact(~n - 1);< 194957#$Ultimate##0 ~n := #in~n; 194966#L25 assume !(~n <= 0); 194823#L26 call #t~ret0 := fact(~n - 1);< 194957#$Ultimate##0 ~n := #in~n; 195015#L25 assume ~n <= 0;#res := 1; 195014#factFINAL assume true; 194954#factEXIT >#66#return; 194953#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194843#factFINAL assume true; 194821#factEXIT >#66#return; 194837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 195158#factFINAL assume true; 195147#factEXIT >#66#return; 195150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 196279#factFINAL assume true; 195257#factEXIT >#70#return; 194619#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 195039#$Ultimate##0 ~n := #in~n; 194988#L25 assume ~n <= 0;#res := 1; 194640#factFINAL assume true; 194618#factEXIT >#72#return; 194636#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 196489#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 196488#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 196487#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 196485#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 195284#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 196410#$Ultimate##0 ~n := #in~n; 196482#L25 assume !(~n <= 0); 194313#L26 call #t~ret0 := fact(~n - 1);< 196422#$Ultimate##0 ~n := #in~n; 196458#L25 assume !(~n <= 0); 194307#L26 call #t~ret0 := fact(~n - 1);< 196455#$Ultimate##0 ~n := #in~n; 196458#L25 assume !(~n <= 0); 194307#L26 call #t~ret0 := fact(~n - 1);< 196455#$Ultimate##0 ~n := #in~n; 196458#L25 assume !(~n <= 0); 194307#L26 call #t~ret0 := fact(~n - 1);< 196455#$Ultimate##0 ~n := #in~n; 196460#L25 assume ~n <= 0;#res := 1; 196467#factFINAL assume true; 196466#factEXIT >#66#return; 196464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 196454#factFINAL assume true; 196415#factEXIT >#66#return; 196419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 196491#factFINAL assume true; 196437#factEXIT >#66#return; 194315#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 194340#factFINAL assume true; 194306#factEXIT >#66#return; 194317#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 196432#factFINAL assume true; 196409#factEXIT >#74#return; 196334#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 196356#$Ultimate##0 ~n := #in~n; 196463#L25 assume !(~n <= 0); 196416#L26 call #t~ret0 := fact(~n - 1);< 196459#$Ultimate##0 ~n := #in~n; 196457#L25 assume !(~n <= 0); 194354#L26 call #t~ret0 := fact(~n - 1);< 196456#$Ultimate##0 ~n := #in~n; 196500#L25 assume !(~n <= 0); 194353#L26 call #t~ret0 := fact(~n - 1);< 194355#$Ultimate##0 ~n := #in~n; 196460#L25 assume ~n <= 0;#res := 1; 196467#factFINAL assume true; 196466#factEXIT >#66#return; 196464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 196454#factFINAL assume true; 196415#factEXIT >#66#return; 196419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 196491#factFINAL assume true; 196437#factEXIT >#66#return; 196438#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 196494#factFINAL assume true; 196358#factEXIT >#76#return; 196338#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 196361#$Ultimate##0 ~n := #in~n; 196504#L25 assume !(~n <= 0); 196367#L26 call #t~ret0 := fact(~n - 1);< 196373#$Ultimate##0 ~n := #in~n; 196392#L25 assume ~n <= 0;#res := 1; 196389#factFINAL assume true; 196364#factEXIT >#66#return; 196363#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 196360#factFINAL assume true; 196357#factEXIT >#78#return; 195909#L30-8 [2023-02-18 08:56:29,514 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:29,514 INFO L85 PathProgramCache]: Analyzing trace with hash 2135700754, now seen corresponding path program 37 times [2023-02-18 08:56:29,514 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:29,514 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [431953952] [2023-02-18 08:56:29,515 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:29,515 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:29,522 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:29,523 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [376162050] [2023-02-18 08:56:29,523 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:56:29,523 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:29,523 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:29,526 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-18 08:56:29,527 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-18 08:56:29,766 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:29,767 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:29,845 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:29,886 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:29,886 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:29,886 INFO L85 PathProgramCache]: Analyzing trace with hash 1682367565, now seen corresponding path program 38 times [2023-02-18 08:56:29,886 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:29,886 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [200919101] [2023-02-18 08:56:29,886 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:29,887 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:29,893 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:29,893 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [378868581] [2023-02-18 08:56:29,893 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:56:29,893 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:29,893 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:29,895 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-18 08:56:29,895 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-18 08:56:30,071 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:56:30,072 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:30,074 INFO L263 TraceCheckSpWp]: Trace formula consists of 707 conjuncts, 24 conjunts are in the unsatisfiable core [2023-02-18 08:56:30,077 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:30,134 INFO L134 CoverageAnalysis]: Checked inductivity of 6701 backedges. 3494 proven. 299 refuted. 0 times theorem prover too weak. 2908 trivial. 0 not checked. [2023-02-18 08:56:30,135 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:30,331 INFO L134 CoverageAnalysis]: Checked inductivity of 6701 backedges. 230 proven. 1227 refuted. 0 times theorem prover too weak. 5244 trivial. 0 not checked. [2023-02-18 08:56:30,331 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:30,332 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [200919101] [2023-02-18 08:56:30,332 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:30,332 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [378868581] [2023-02-18 08:56:30,332 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [378868581] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:30,332 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:30,332 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 21] total 27 [2023-02-18 08:56:30,332 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [837437111] [2023-02-18 08:56:30,332 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:30,333 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:30,333 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:30,333 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 27 interpolants. [2023-02-18 08:56:30,333 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=94, Invalid=608, Unknown=0, NotChecked=0, Total=702 [2023-02-18 08:56:30,333 INFO L87 Difference]: Start difference. First operand 2355 states and 3413 transitions. cyclomatic complexity: 1081 Second operand has 27 states, 23 states have (on average 2.9565217391304346) internal successors, (68), 27 states have internal predecessors, (68), 16 states have call successors, (34), 2 states have call predecessors, (34), 9 states have return successors, (37), 12 states have call predecessors, (37), 16 states have call successors, (37) [2023-02-18 08:56:31,065 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:31,066 INFO L93 Difference]: Finished difference Result 2595 states and 3750 transitions. [2023-02-18 08:56:31,066 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2595 states and 3750 transitions. [2023-02-18 08:56:31,077 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 174 [2023-02-18 08:56:31,091 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2595 states to 2571 states and 3726 transitions. [2023-02-18 08:56:31,091 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 196 [2023-02-18 08:56:31,092 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 196 [2023-02-18 08:56:31,092 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2571 states and 3726 transitions. [2023-02-18 08:56:31,092 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:31,092 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2571 states and 3726 transitions. [2023-02-18 08:56:31,093 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2571 states and 3726 transitions. [2023-02-18 08:56:31,119 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2571 to 2354. [2023-02-18 08:56:31,121 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2354 states, 1491 states have (on average 1.062374245472837) internal successors, (1584), 1492 states have internal predecessors, (1584), 667 states have call successors, (679), 247 states have call predecessors, (679), 196 states have return successors, (1122), 614 states have call predecessors, (1122), 667 states have call successors, (1122) [2023-02-18 08:56:31,128 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2354 states to 2354 states and 3385 transitions. [2023-02-18 08:56:31,128 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2354 states and 3385 transitions. [2023-02-18 08:56:31,129 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 29 states. [2023-02-18 08:56:31,129 INFO L428 stractBuchiCegarLoop]: Abstraction has 2354 states and 3385 transitions. [2023-02-18 08:56:31,129 INFO L335 stractBuchiCegarLoop]: ======== Iteration 51 ============ [2023-02-18 08:56:31,129 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2354 states and 3385 transitions. [2023-02-18 08:56:31,134 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 154 [2023-02-18 08:56:31,134 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:31,134 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:31,136 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:31,136 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [54, 54, 39, 39, 39, 39, 15, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:31,136 INFO L748 eck$LassoCheckResult]: Stem: 201350#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 201297#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; 201298#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 201323#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; 201312#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 201313#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 201543#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 201539#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 201540#$Ultimate##0 ~n := #in~n; 201544#L25 assume ~n <= 0;#res := 1; 201542#factFINAL assume true; 201538#factEXIT >#68#return; 201534#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 201535#$Ultimate##0 ~n := #in~n; 201541#L25 assume ~n <= 0;#res := 1; 201537#factFINAL assume true; 201533#factEXIT >#70#return; 201530#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 201531#$Ultimate##0 ~n := #in~n; 201536#L25 assume ~n <= 0;#res := 1; 201532#factFINAL assume true; 201529#factEXIT >#72#return; 201528#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 201526#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 201522#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 201520#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 201517#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 201514#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 201515#$Ultimate##0 ~n := #in~n; 201527#L25 assume !(~n <= 0); 201524#L26 call #t~ret0 := fact(~n - 1);< 201525#$Ultimate##0 ~n := #in~n; 201547#L25 assume ~n <= 0;#res := 1; 201545#factFINAL assume true; 201523#factEXIT >#66#return; 201521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201519#factFINAL assume true; 201513#factEXIT >#74#return; 201481#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 201482#$Ultimate##0 ~n := #in~n; 201491#L25 assume ~n <= 0;#res := 1; 201485#factFINAL assume true; 201480#factEXIT >#76#return; 201478#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 201479#$Ultimate##0 ~n := #in~n; 201498#L25 assume !(~n <= 0); 201496#L26 call #t~ret0 := fact(~n - 1);< 201497#$Ultimate##0 ~n := #in~n; 201502#L25 assume ~n <= 0;#res := 1; 201500#factFINAL assume true; 201495#factEXIT >#66#return; 201490#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201484#factFINAL assume true; 201477#factEXIT >#78#return; 201475#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 201474#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 201473#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 201471#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 201462#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 201453#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 201456#$Ultimate##0 ~n := #in~n; 201472#L25 assume !(~n <= 0); 201468#L26 call #t~ret0 := fact(~n - 1);< 201470#$Ultimate##0 ~n := #in~n; 201494#L25 assume !(~n <= 0); 201467#L26 call #t~ret0 := fact(~n - 1);< 201489#$Ultimate##0 ~n := #in~n; 201504#L25 assume ~n <= 0;#res := 1; 201503#factFINAL assume true; 201501#factEXIT >#66#return; 201499#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201492#factFINAL assume true; 201486#factEXIT >#66#return; 201488#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201571#factFINAL assume true; 201570#factEXIT >#74#return; 201454#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 201562#$Ultimate##0 ~n := #in~n; 201567#L25 assume ~n <= 0;#res := 1; 201565#factFINAL assume true; 201561#factEXIT >#76#return; 201493#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 201518#$Ultimate##0 ~n := #in~n; 201516#L25 assume !(~n <= 0); 201469#L26 call #t~ret0 := fact(~n - 1);< 201470#$Ultimate##0 ~n := #in~n; 201494#L25 assume !(~n <= 0); 201467#L26 call #t~ret0 := fact(~n - 1);< 201489#$Ultimate##0 ~n := #in~n; 201504#L25 assume ~n <= 0;#res := 1; 201503#factFINAL assume true; 201501#factEXIT >#66#return; 201499#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201492#factFINAL assume true; 201486#factEXIT >#66#return; 201487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201552#factFINAL assume true; 201551#factEXIT >#78#return; 201446#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 201442#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 201426#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 201420#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 201416#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 201411#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 201412#$Ultimate##0 ~n := #in~n; 201429#L25 assume !(~n <= 0); 201423#L26 call #t~ret0 := fact(~n - 1);< 201425#$Ultimate##0 ~n := #in~n; 201433#L25 assume !(~n <= 0); 201424#L26 call #t~ret0 := fact(~n - 1);< 201432#$Ultimate##0 ~n := #in~n; 201433#L25 assume !(~n <= 0); 201424#L26 call #t~ret0 := fact(~n - 1);< 201432#$Ultimate##0 ~n := #in~n; 201438#L25 assume ~n <= 0;#res := 1; 201437#factFINAL assume true; 201436#factEXIT >#66#return; 201435#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201434#factFINAL assume true; 201431#factEXIT >#66#return; 201430#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201428#factFINAL assume true; 201422#factEXIT >#66#return; 201419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201415#factFINAL assume true; 201410#factEXIT >#74#return; 201406#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 201407#$Ultimate##0 ~n := #in~n; 201414#L25 assume ~n <= 0;#res := 1; 201409#factFINAL assume true; 201405#factEXIT >#76#return; 201391#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 201401#$Ultimate##0 ~n := #in~n; 201400#L25 assume !(~n <= 0); 201378#L26 call #t~ret0 := fact(~n - 1);< 201381#$Ultimate##0 ~n := #in~n; 201393#L25 assume !(~n <= 0); 201377#L26 call #t~ret0 := fact(~n - 1);< 201398#$Ultimate##0 ~n := #in~n; 201393#L25 assume !(~n <= 0); 201377#L26 call #t~ret0 := fact(~n - 1);< 201398#$Ultimate##0 ~n := #in~n; 201427#L25 assume ~n <= 0;#res := 1; 201421#factFINAL assume true; 201418#factEXIT >#66#return; 201413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201408#factFINAL assume true; 201404#factEXIT >#66#return; 201402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201399#factFINAL assume true; 201396#factEXIT >#66#return; 201379#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202543#factFINAL assume true; 201929#factEXIT >#78#return; 201927#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 201300#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 201926#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 201924#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 201900#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 201898#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 201896#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 201895#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 201877#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 201879#$Ultimate##0 ~n := #in~n; 201925#L25 assume !(~n <= 0); 201912#L26 call #t~ret0 := fact(~n - 1);< 201923#$Ultimate##0 ~n := #in~n; 202048#L25 assume ~n <= 0;#res := 1; 202007#factFINAL assume true; 201901#factEXIT >#66#return; 201899#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201897#factFINAL assume true; 201894#factEXIT >#68#return; 201824#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 201830#$Ultimate##0 ~n := #in~n; 202006#L25 assume ~n <= 0;#res := 1; 201893#factFINAL assume true; 201823#factEXIT >#70#return; 201827#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 201966#$Ultimate##0 ~n := #in~n; 201996#L25 assume !(~n <= 0); 201788#L26 call #t~ret0 := fact(~n - 1);< 201801#$Ultimate##0 ~n := #in~n; 201812#L25 assume ~n <= 0;#res := 1; 201800#factFINAL assume true; 201775#factEXIT >#66#return; 201795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201967#factFINAL assume true; 201965#factEXIT >#72#return; 201964#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 201963#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 201872#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 201858#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 201856#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 201767#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 201772#$Ultimate##0 ~n := #in~n; 201817#L25 assume !(~n <= 0); 201786#L26 call #t~ret0 := fact(~n - 1);< 201801#$Ultimate##0 ~n := #in~n; 201812#L25 assume ~n <= 0;#res := 1; 201800#factFINAL assume true; 201775#factEXIT >#66#return; 201792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201854#factFINAL assume true; 201809#factEXIT >#68#return; 201591#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 201750#$Ultimate##0 ~n := #in~n; 201962#L25 assume !(~n <= 0); 201781#L26 call #t~ret0 := fact(~n - 1);< 201952#$Ultimate##0 ~n := #in~n; 201812#L25 assume ~n <= 0;#res := 1; 201800#factFINAL assume true; 201775#factEXIT >#66#return; 201773#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201751#factFINAL assume true; 201744#factEXIT >#70#return; 201576#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 201581#$Ultimate##0 ~n := #in~n; 201583#L25 assume ~n <= 0;#res := 1; 201582#factFINAL assume true; 201572#factEXIT >#72#return; 201580#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 202386#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 202385#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 202384#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 202382#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 201587#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 202210#$Ultimate##0 ~n := #in~n; 202551#L25 assume !(~n <= 0); 201780#L26 call #t~ret0 := fact(~n - 1);< 201951#$Ultimate##0 ~n := #in~n; 202035#L25 assume !(~n <= 0); 201841#L26 call #t~ret0 := fact(~n - 1);< 201972#$Ultimate##0 ~n := #in~n; 202027#L25 assume ~n <= 0;#res := 1; 202025#factFINAL assume true; 201969#factEXIT >#66#return; 201968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201950#factFINAL assume true; 201859#factEXIT >#66#return; 201869#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202209#factFINAL assume true; 201584#factEXIT >#74#return; 201598#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 201750#$Ultimate##0 ~n := #in~n; 201962#L25 assume !(~n <= 0); 201781#L26 call #t~ret0 := fact(~n - 1);< 201952#$Ultimate##0 ~n := #in~n; 201812#L25 assume ~n <= 0;#res := 1; 201800#factFINAL assume true; 201775#factEXIT >#66#return; 201773#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201751#factFINAL assume true; 201744#factEXIT >#76#return; 201607#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 201753#$Ultimate##0 ~n := #in~n; 201815#L25 assume !(~n <= 0); 201789#L26 call #t~ret0 := fact(~n - 1);< 201796#$Ultimate##0 ~n := #in~n; 201812#L25 assume ~n <= 0;#res := 1; 201800#factFINAL assume true; 201775#factEXIT >#66#return; 201773#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201751#factFINAL assume true; 201744#factEXIT >#78#return; 201746#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 202425#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 202423#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 202422#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 202420#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 202151#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 203472#$Ultimate##0 ~n := #in~n; 203487#L25 assume !(~n <= 0); 201284#L26 call #t~ret0 := fact(~n - 1);< 203441#$Ultimate##0 ~n := #in~n; 203444#L25 assume !(~n <= 0); 201265#L26 call #t~ret0 := fact(~n - 1);< 203442#$Ultimate##0 ~n := #in~n; 203444#L25 assume !(~n <= 0); 201265#L26 call #t~ret0 := fact(~n - 1);< 203442#$Ultimate##0 ~n := #in~n; 203446#L25 assume ~n <= 0;#res := 1; 203506#factFINAL assume true; 201263#factEXIT >#66#return; 201267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 203482#factFINAL assume true; 203479#factEXIT >#66#return; 203481#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 203440#factFINAL assume true; 203428#factEXIT >#66#return; 203436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 203492#factFINAL assume true; 203469#factEXIT >#74#return; 203264#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 203265#$Ultimate##0 ~n := #in~n; 203484#L25 assume !(~n <= 0); 203431#L26 call #t~ret0 := fact(~n - 1);< 203460#$Ultimate##0 ~n := #in~n; 203477#L25 assume ~n <= 0;#res := 1; 203464#factFINAL assume true; 203453#factEXIT >#66#return; 203458#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 203465#factFINAL assume true; 203399#factEXIT >#76#return; 202145#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 203472#$Ultimate##0 ~n := #in~n; 203487#L25 assume !(~n <= 0); 201284#L26 call #t~ret0 := fact(~n - 1);< 203441#$Ultimate##0 ~n := #in~n; 203444#L25 assume !(~n <= 0); 201265#L26 call #t~ret0 := fact(~n - 1);< 203442#$Ultimate##0 ~n := #in~n; 203446#L25 assume ~n <= 0;#res := 1; 203506#factFINAL assume true; 201263#factEXIT >#66#return; 201267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 203482#factFINAL assume true; 203479#factEXIT >#66#return; 203480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 203486#factFINAL assume true; 203467#factEXIT >#78#return; 201389#L30-8 [2023-02-18 08:56:31,137 INFO L750 eck$LassoCheckResult]: Loop: 201389#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 201324#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 201325#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 201353#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 201354#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 201395#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 201361#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 201362#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 201293#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 201294#$Ultimate##0 ~n := #in~n; 202102#L25 assume !(~n <= 0); 201779#L26 call #t~ret0 := fact(~n - 1);< 201951#$Ultimate##0 ~n := #in~n; 202035#L25 assume !(~n <= 0); 201841#L26 call #t~ret0 := fact(~n - 1);< 201972#$Ultimate##0 ~n := #in~n; 202035#L25 assume !(~n <= 0); 201841#L26 call #t~ret0 := fact(~n - 1);< 201972#$Ultimate##0 ~n := #in~n; 202035#L25 assume !(~n <= 0); 201841#L26 call #t~ret0 := fact(~n - 1);< 201972#$Ultimate##0 ~n := #in~n; 202027#L25 assume ~n <= 0;#res := 1; 202025#factFINAL assume true; 201969#factEXIT >#66#return; 201968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201950#factFINAL assume true; 201859#factEXIT >#66#return; 201868#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202205#factFINAL assume true; 202199#factEXIT >#66#return; 201847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202549#factFINAL assume true; 201832#factEXIT >#66#return; 201849#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202099#factFINAL assume true; 202090#factEXIT >#68#return; 202087#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 202089#$Ultimate##0 ~n := #in~n; 202107#L25 assume ~n <= 0;#res := 1; 202106#factFINAL assume true; 202086#factEXIT >#70#return; 202082#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 202085#$Ultimate##0 ~n := #in~n; 202108#L25 assume !(~n <= 0); 201833#L26 call #t~ret0 := fact(~n - 1);< 201852#$Ultimate##0 ~n := #in~n; 202552#L25 assume !(~n <= 0); 201835#L26 call #t~ret0 := fact(~n - 1);< 202206#$Ultimate##0 ~n := #in~n; 203070#L25 assume !(~n <= 0); 201838#L26 call #t~ret0 := fact(~n - 1);< 202061#$Ultimate##0 ~n := #in~n; 202035#L25 assume !(~n <= 0); 201841#L26 call #t~ret0 := fact(~n - 1);< 201972#$Ultimate##0 ~n := #in~n; 202027#L25 assume ~n <= 0;#res := 1; 202025#factFINAL assume true; 201969#factEXIT >#66#return; 201968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201950#factFINAL assume true; 201859#factEXIT >#66#return; 201868#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202205#factFINAL assume true; 202199#factEXIT >#66#return; 201847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202549#factFINAL assume true; 201832#factEXIT >#66#return; 201844#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202105#factFINAL assume true; 202081#factEXIT >#72#return; 202084#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 202247#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 202212#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 202208#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 202207#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 201760#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 201808#$Ultimate##0 ~n := #in~n; 202412#L25 assume !(~n <= 0); 201840#L26 call #t~ret0 := fact(~n - 1);< 201852#$Ultimate##0 ~n := #in~n; 202552#L25 assume !(~n <= 0); 201835#L26 call #t~ret0 := fact(~n - 1);< 202206#$Ultimate##0 ~n := #in~n; 203070#L25 assume !(~n <= 0); 201838#L26 call #t~ret0 := fact(~n - 1);< 202061#$Ultimate##0 ~n := #in~n; 202035#L25 assume !(~n <= 0); 201841#L26 call #t~ret0 := fact(~n - 1);< 201972#$Ultimate##0 ~n := #in~n; 202027#L25 assume ~n <= 0;#res := 1; 202025#factFINAL assume true; 201969#factEXIT >#66#return; 201968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201950#factFINAL assume true; 201859#factEXIT >#66#return; 201868#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202205#factFINAL assume true; 202199#factEXIT >#66#return; 201847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202549#factFINAL assume true; 201832#factEXIT >#66#return; 201831#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201807#factFINAL assume true; 201754#factEXIT >#68#return; 201763#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 202056#$Ultimate##0 ~n := #in~n; 202176#L25 assume !(~n <= 0); 201784#L26 call #t~ret0 := fact(~n - 1);< 201796#$Ultimate##0 ~n := #in~n; 201812#L25 assume ~n <= 0;#res := 1; 201800#factFINAL assume true; 201775#factEXIT >#66#return; 201793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202055#factFINAL assume true; 202039#factEXIT >#70#return; 201723#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 202069#$Ultimate##0 ~n := #in~n; 202371#L25 assume !(~n <= 0); 201843#L26 call #t~ret0 := fact(~n - 1);< 202206#$Ultimate##0 ~n := #in~n; 203070#L25 assume !(~n <= 0); 201838#L26 call #t~ret0 := fact(~n - 1);< 202061#$Ultimate##0 ~n := #in~n; 202035#L25 assume !(~n <= 0); 201841#L26 call #t~ret0 := fact(~n - 1);< 201972#$Ultimate##0 ~n := #in~n; 202035#L25 assume !(~n <= 0); 201841#L26 call #t~ret0 := fact(~n - 1);< 201972#$Ultimate##0 ~n := #in~n; 202027#L25 assume ~n <= 0;#res := 1; 202025#factFINAL assume true; 201969#factEXIT >#66#return; 201968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201950#factFINAL assume true; 201859#factEXIT >#66#return; 201868#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202205#factFINAL assume true; 202199#factEXIT >#66#return; 201847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202549#factFINAL assume true; 201832#factEXIT >#66#return; 201848#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202135#factFINAL assume true; 202123#factEXIT >#72#return; 201739#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 202077#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 202075#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 202073#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 202072#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 201755#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 201765#$Ultimate##0 ~n := #in~n; 202411#L25 assume !(~n <= 0); 201776#L26 call #t~ret0 := fact(~n - 1);< 201951#$Ultimate##0 ~n := #in~n; 202035#L25 assume !(~n <= 0); 201841#L26 call #t~ret0 := fact(~n - 1);< 201972#$Ultimate##0 ~n := #in~n; 202035#L25 assume !(~n <= 0); 201841#L26 call #t~ret0 := fact(~n - 1);< 201972#$Ultimate##0 ~n := #in~n; 202035#L25 assume !(~n <= 0); 201841#L26 call #t~ret0 := fact(~n - 1);< 201972#$Ultimate##0 ~n := #in~n; 202027#L25 assume ~n <= 0;#res := 1; 202025#factFINAL assume true; 201969#factEXIT >#66#return; 201968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201950#factFINAL assume true; 201859#factEXIT >#66#return; 201868#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202205#factFINAL assume true; 202199#factEXIT >#66#return; 201847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202549#factFINAL assume true; 201832#factEXIT >#66#return; 201831#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201807#factFINAL assume true; 201754#factEXIT >#68#return; 201720#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 201749#$Ultimate##0 ~n := #in~n; 202142#L25 assume !(~n <= 0); 201783#L26 call #t~ret0 := fact(~n - 1);< 201951#$Ultimate##0 ~n := #in~n; 202035#L25 assume !(~n <= 0); 201841#L26 call #t~ret0 := fact(~n - 1);< 201972#$Ultimate##0 ~n := #in~n; 202027#L25 assume ~n <= 0;#res := 1; 202025#factFINAL assume true; 201969#factEXIT >#66#return; 201968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201950#factFINAL assume true; 201859#factEXIT >#66#return; 201867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202052#factFINAL assume true; 202045#factEXIT >#70#return; 201729#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 201749#$Ultimate##0 ~n := #in~n; 202142#L25 assume !(~n <= 0); 201783#L26 call #t~ret0 := fact(~n - 1);< 201951#$Ultimate##0 ~n := #in~n; 201812#L25 assume ~n <= 0;#res := 1; 201800#factFINAL assume true; 201775#factEXIT >#66#return; 201793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202055#factFINAL assume true; 202039#factEXIT >#72#return; 202037#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 202036#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 201961#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 201855#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 201853#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 201762#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 201765#$Ultimate##0 ~n := #in~n; 202411#L25 assume !(~n <= 0); 201776#L26 call #t~ret0 := fact(~n - 1);< 201951#$Ultimate##0 ~n := #in~n; 202035#L25 assume !(~n <= 0); 201841#L26 call #t~ret0 := fact(~n - 1);< 201972#$Ultimate##0 ~n := #in~n; 202035#L25 assume !(~n <= 0); 201841#L26 call #t~ret0 := fact(~n - 1);< 201972#$Ultimate##0 ~n := #in~n; 202035#L25 assume !(~n <= 0); 201841#L26 call #t~ret0 := fact(~n - 1);< 201972#$Ultimate##0 ~n := #in~n; 202027#L25 assume ~n <= 0;#res := 1; 202025#factFINAL assume true; 201969#factEXIT >#66#return; 201968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201950#factFINAL assume true; 201859#factEXIT >#66#return; 201868#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202205#factFINAL assume true; 202199#factEXIT >#66#return; 201847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202549#factFINAL assume true; 201832#factEXIT >#66#return; 201831#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201807#factFINAL assume true; 201754#factEXIT >#68#return; 201730#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 201749#$Ultimate##0 ~n := #in~n; 202142#L25 assume !(~n <= 0); 201783#L26 call #t~ret0 := fact(~n - 1);< 201951#$Ultimate##0 ~n := #in~n; 202035#L25 assume !(~n <= 0); 201841#L26 call #t~ret0 := fact(~n - 1);< 201972#$Ultimate##0 ~n := #in~n; 202035#L25 assume !(~n <= 0); 201841#L26 call #t~ret0 := fact(~n - 1);< 201972#$Ultimate##0 ~n := #in~n; 202035#L25 assume !(~n <= 0); 201841#L26 call #t~ret0 := fact(~n - 1);< 201972#$Ultimate##0 ~n := #in~n; 202027#L25 assume ~n <= 0;#res := 1; 202025#factFINAL assume true; 201969#factEXIT >#66#return; 201968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201950#factFINAL assume true; 201859#factEXIT >#66#return; 201868#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202205#factFINAL assume true; 202199#factEXIT >#66#return; 201847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202549#factFINAL assume true; 201832#factEXIT >#66#return; 201848#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 202135#factFINAL assume true; 202123#factEXIT >#70#return; 201735#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 201749#$Ultimate##0 ~n := #in~n; 202142#L25 assume ~n <= 0;#res := 1; 202143#factFINAL assume true; 202167#factEXIT >#72#return; 202169#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 203448#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 203447#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 203445#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 203443#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 202134#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 203414#$Ultimate##0 ~n := #in~n; 203439#L25 assume !(~n <= 0); 201285#L26 call #t~ret0 := fact(~n - 1);< 201305#$Ultimate##0 ~n := #in~n; 203444#L25 assume !(~n <= 0); 201265#L26 call #t~ret0 := fact(~n - 1);< 203442#$Ultimate##0 ~n := #in~n; 203444#L25 assume !(~n <= 0); 201265#L26 call #t~ret0 := fact(~n - 1);< 203442#$Ultimate##0 ~n := #in~n; 203444#L25 assume !(~n <= 0); 201265#L26 call #t~ret0 := fact(~n - 1);< 203442#$Ultimate##0 ~n := #in~n; 203446#L25 assume ~n <= 0;#res := 1; 203506#factFINAL assume true; 201263#factEXIT >#66#return; 201267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 203482#factFINAL assume true; 203479#factEXIT >#66#return; 203481#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 203440#factFINAL assume true; 203428#factEXIT >#66#return; 201329#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 201283#factFINAL assume true; 201291#factEXIT >#66#return; 203422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 203415#factFINAL assume true; 203404#factEXIT >#74#return; 203406#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 203416#$Ultimate##0 ~n := #in~n; 203600#L25 assume !(~n <= 0); 201290#L26 call #t~ret0 := fact(~n - 1);< 201305#$Ultimate##0 ~n := #in~n; 203444#L25 assume !(~n <= 0); 201265#L26 call #t~ret0 := fact(~n - 1);< 203442#$Ultimate##0 ~n := #in~n; 203446#L25 assume ~n <= 0;#res := 1; 203506#factFINAL assume true; 201263#factEXIT >#66#return; 201267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 203482#factFINAL assume true; 203479#factEXIT >#66#return; 203478#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 203449#factFINAL assume true; 203419#factEXIT >#76#return; 203411#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 203451#$Ultimate##0 ~n := #in~n; 203463#L25 assume !(~n <= 0); 203456#L26 call #t~ret0 := fact(~n - 1);< 203459#$Ultimate##0 ~n := #in~n; 203477#L25 assume ~n <= 0;#res := 1; 203464#factFINAL assume true; 203453#factEXIT >#66#return; 203452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 203450#factFINAL assume true; 203420#factEXIT >#78#return; 201389#L30-8 [2023-02-18 08:56:31,137 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:31,137 INFO L85 PathProgramCache]: Analyzing trace with hash 2135700754, now seen corresponding path program 38 times [2023-02-18 08:56:31,137 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:31,137 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1574913081] [2023-02-18 08:56:31,137 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:31,138 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:31,145 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:31,145 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [541407955] [2023-02-18 08:56:31,146 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:56:31,146 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:31,146 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:31,149 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-18 08:56:31,161 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-18 08:56:31,402 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:56:31,402 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:31,403 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:31,489 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:31,526 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:31,527 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:31,527 INFO L85 PathProgramCache]: Analyzing trace with hash -2118655075, now seen corresponding path program 39 times [2023-02-18 08:56:31,527 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:31,527 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1635904669] [2023-02-18 08:56:31,527 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:31,527 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:31,533 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:31,533 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1688802202] [2023-02-18 08:56:31,533 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:56:31,533 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:31,534 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:31,537 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-18 08:56:31,537 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-18 08:56:31,713 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 7 check-sat command(s) [2023-02-18 08:56:31,713 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:31,716 INFO L263 TraceCheckSpWp]: Trace formula consists of 394 conjuncts, 14 conjunts are in the unsatisfiable core [2023-02-18 08:56:31,718 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:31,757 INFO L134 CoverageAnalysis]: Checked inductivity of 7271 backedges. 1116 proven. 33 refuted. 0 times theorem prover too weak. 6122 trivial. 0 not checked. [2023-02-18 08:56:31,757 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:31,821 INFO L134 CoverageAnalysis]: Checked inductivity of 7271 backedges. 624 proven. 59 refuted. 0 times theorem prover too weak. 6588 trivial. 0 not checked. [2023-02-18 08:56:31,822 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:31,822 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1635904669] [2023-02-18 08:56:31,822 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:31,822 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1688802202] [2023-02-18 08:56:31,822 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1688802202] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:31,822 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:31,822 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 14] total 15 [2023-02-18 08:56:31,822 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [260030938] [2023-02-18 08:56:31,823 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:31,823 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:31,823 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:31,823 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2023-02-18 08:56:31,823 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=165, Unknown=0, NotChecked=0, Total=210 [2023-02-18 08:56:31,824 INFO L87 Difference]: Start difference. First operand 2354 states and 3385 transitions. cyclomatic complexity: 1054 Second operand has 15 states, 14 states have (on average 3.7142857142857144) internal successors, (52), 15 states have internal predecessors, (52), 10 states have call successors, (21), 2 states have call predecessors, (21), 5 states have return successors, (22), 9 states have call predecessors, (22), 10 states have call successors, (22) [2023-02-18 08:56:32,239 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:32,239 INFO L93 Difference]: Finished difference Result 2982 states and 4204 transitions. [2023-02-18 08:56:32,239 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2982 states and 4204 transitions. [2023-02-18 08:56:32,251 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 176 [2023-02-18 08:56:32,267 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2982 states to 2982 states and 4165 transitions. [2023-02-18 08:56:32,267 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 224 [2023-02-18 08:56:32,267 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 224 [2023-02-18 08:56:32,267 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2982 states and 4165 transitions. [2023-02-18 08:56:32,268 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:32,268 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2982 states and 4165 transitions. [2023-02-18 08:56:32,269 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2982 states and 4165 transitions. [2023-02-18 08:56:32,295 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2982 to 2563. [2023-02-18 08:56:32,296 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2563 states, 1615 states have (on average 1.063157894736842) internal successors, (1717), 1622 states have internal predecessors, (1717), 755 states have call successors, (771), 244 states have call predecessors, (771), 193 states have return successors, (1097), 696 states have call predecessors, (1097), 755 states have call successors, (1097) [2023-02-18 08:56:32,304 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2563 states to 2563 states and 3585 transitions. [2023-02-18 08:56:32,304 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2563 states and 3585 transitions. [2023-02-18 08:56:32,304 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2023-02-18 08:56:32,305 INFO L428 stractBuchiCegarLoop]: Abstraction has 2563 states and 3585 transitions. [2023-02-18 08:56:32,305 INFO L335 stractBuchiCegarLoop]: ======== Iteration 52 ============ [2023-02-18 08:56:32,305 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2563 states and 3585 transitions. [2023-02-18 08:56:32,310 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 154 [2023-02-18 08:56:32,310 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:32,310 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:32,311 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:32,311 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [55, 55, 40, 40, 40, 40, 15, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:32,311 INFO L748 eck$LassoCheckResult]: Stem: 208736#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 208684#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; 208685#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 208709#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; 208737#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 208912#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 208910#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 208906#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 208907#$Ultimate##0 ~n := #in~n; 208911#L25 assume ~n <= 0;#res := 1; 208908#factFINAL assume true; 208905#factEXIT >#68#return; 208901#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 208902#$Ultimate##0 ~n := #in~n; 208909#L25 assume ~n <= 0;#res := 1; 208904#factFINAL assume true; 208900#factEXIT >#70#return; 208897#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 208898#$Ultimate##0 ~n := #in~n; 208903#L25 assume ~n <= 0;#res := 1; 208899#factFINAL assume true; 208896#factEXIT >#72#return; 208895#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 208894#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 208892#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 208889#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 208886#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 208874#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 208875#$Ultimate##0 ~n := #in~n; 208893#L25 assume !(~n <= 0); 208883#L26 call #t~ret0 := fact(~n - 1);< 208884#$Ultimate##0 ~n := #in~n; 208891#L25 assume ~n <= 0;#res := 1; 208888#factFINAL assume true; 208882#factEXIT >#66#return; 208881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 208879#factFINAL assume true; 208873#factEXIT >#74#return; 208869#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 208870#$Ultimate##0 ~n := #in~n; 208885#L25 assume ~n <= 0;#res := 1; 208872#factFINAL assume true; 208868#factEXIT >#76#return; 208865#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 208866#$Ultimate##0 ~n := #in~n; 208880#L25 assume !(~n <= 0); 208877#L26 call #t~ret0 := fact(~n - 1);< 208878#$Ultimate##0 ~n := #in~n; 208890#L25 assume ~n <= 0;#res := 1; 208887#factFINAL assume true; 208876#factEXIT >#66#return; 208871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 208867#factFINAL assume true; 208864#factEXIT >#78#return; 208863#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 208862#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 208861#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 208860#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 208853#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 208841#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 208842#$Ultimate##0 ~n := #in~n; 208857#L25 assume !(~n <= 0); 208834#L26 call #t~ret0 := fact(~n - 1);< 208839#$Ultimate##0 ~n := #in~n; 208859#L25 assume !(~n <= 0); 208836#L26 call #t~ret0 := fact(~n - 1);< 208852#$Ultimate##0 ~n := #in~n; 208858#L25 assume ~n <= 0;#res := 1; 208856#factFINAL assume true; 208851#factEXIT >#66#return; 208849#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 208846#factFINAL assume true; 208833#factEXIT >#66#return; 208837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 208924#factFINAL assume true; 208840#factEXIT >#74#return; 208827#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 208828#$Ultimate##0 ~n := #in~n; 208844#L25 assume ~n <= 0;#res := 1; 208829#factFINAL assume true; 208826#factEXIT >#76#return; 208822#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 208823#$Ultimate##0 ~n := #in~n; 208843#L25 assume !(~n <= 0); 208835#L26 call #t~ret0 := fact(~n - 1);< 208839#$Ultimate##0 ~n := #in~n; 208859#L25 assume !(~n <= 0); 208836#L26 call #t~ret0 := fact(~n - 1);< 208852#$Ultimate##0 ~n := #in~n; 208858#L25 assume ~n <= 0;#res := 1; 208856#factFINAL assume true; 208851#factEXIT >#66#return; 208849#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 208846#factFINAL assume true; 208833#factEXIT >#66#return; 208832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 208825#factFINAL assume true; 208821#factEXIT >#78#return; 208819#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 208808#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 208807#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 208805#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 208802#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 208797#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 208798#$Ultimate##0 ~n := #in~n; 208818#L25 assume !(~n <= 0); 208812#L26 call #t~ret0 := fact(~n - 1);< 208813#$Ultimate##0 ~n := #in~n; 208847#L25 assume !(~n <= 0); 208811#L26 call #t~ret0 := fact(~n - 1);< 208831#$Ultimate##0 ~n := #in~n; 208847#L25 assume !(~n <= 0); 208811#L26 call #t~ret0 := fact(~n - 1);< 208831#$Ultimate##0 ~n := #in~n; 208855#L25 assume ~n <= 0;#res := 1; 208854#factFINAL assume true; 208850#factEXIT >#66#return; 208848#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 208845#factFINAL assume true; 208830#factEXIT >#66#return; 208824#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 208820#factFINAL assume true; 208810#factEXIT >#66#return; 208809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 208801#factFINAL assume true; 208796#factEXIT >#74#return; 208792#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 208793#$Ultimate##0 ~n := #in~n; 208800#L25 assume ~n <= 0;#res := 1; 208795#factFINAL assume true; 208791#factEXIT >#76#return; 208773#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 208788#$Ultimate##0 ~n := #in~n; 208782#L25 assume !(~n <= 0); 208766#L26 call #t~ret0 := fact(~n - 1);< 208769#$Ultimate##0 ~n := #in~n; 208783#L25 assume !(~n <= 0); 208765#L26 call #t~ret0 := fact(~n - 1);< 208779#$Ultimate##0 ~n := #in~n; 208783#L25 assume !(~n <= 0); 208765#L26 call #t~ret0 := fact(~n - 1);< 208779#$Ultimate##0 ~n := #in~n; 208806#L25 assume ~n <= 0;#res := 1; 208804#factFINAL assume true; 208799#factEXIT >#66#return; 208794#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 208790#factFINAL assume true; 208789#factEXIT >#66#return; 208787#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 208781#factFINAL assume true; 208777#factEXIT >#66#return; 208767#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209252#factFINAL assume true; 209250#factEXIT >#78#return; 209249#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 208687#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 209248#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 209247#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 209245#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 209236#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 209212#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 209210#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 209204#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 209207#$Ultimate##0 ~n := #in~n; 209244#L25 assume !(~n <= 0); 209214#L26 call #t~ret0 := fact(~n - 1);< 209235#$Ultimate##0 ~n := #in~n; 209246#L25 assume ~n <= 0;#res := 1; 209237#factFINAL assume true; 209213#factEXIT >#66#return; 209211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209209#factFINAL assume true; 209201#factEXIT >#68#return; 209188#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 209197#$Ultimate##0 ~n := #in~n; 209293#L25 assume ~n <= 0;#res := 1; 209283#factFINAL assume true; 209281#factEXIT >#70#return; 209278#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 209279#$Ultimate##0 ~n := #in~n; 209333#L25 assume !(~n <= 0); 209054#L26 call #t~ret0 := fact(~n - 1);< 209292#$Ultimate##0 ~n := #in~n; 209134#L25 assume ~n <= 0;#res := 1; 209294#factFINAL assume true; 209284#factEXIT >#66#return; 209282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209280#factFINAL assume true; 209277#factEXIT >#72#return; 209276#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 209275#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 209274#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 209273#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 209272#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 209260#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 209003#$Ultimate##0 ~n := #in~n; 209255#L25 assume !(~n <= 0); 209045#L26 call #t~ret0 := fact(~n - 1);< 209292#$Ultimate##0 ~n := #in~n; 209134#L25 assume ~n <= 0;#res := 1; 209294#factFINAL assume true; 209284#factEXIT >#66#return; 209291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209688#factFINAL assume true; 209683#factEXIT >#68#return; 209315#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 209431#$Ultimate##0 ~n := #in~n; 209397#L25 assume !(~n <= 0); 209057#L26 call #t~ret0 := fact(~n - 1);< 209328#$Ultimate##0 ~n := #in~n; 209134#L25 assume ~n <= 0;#res := 1; 209294#factFINAL assume true; 209284#factEXIT >#66#return; 209289#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209458#factFINAL assume true; 209416#factEXIT >#70#return; 208959#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 208973#$Ultimate##0 ~n := #in~n; 208975#L25 assume ~n <= 0;#res := 1; 208974#factFINAL assume true; 208958#factEXIT >#72#return; 208968#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 210554#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 210553#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 210551#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 210547#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 208988#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 208989#$Ultimate##0 ~n := #in~n; 209560#L25 assume !(~n <= 0); 209052#L26 call #t~ret0 := fact(~n - 1);< 209150#$Ultimate##0 ~n := #in~n; 209146#L25 assume !(~n <= 0); 209056#L26 call #t~ret0 := fact(~n - 1);< 209086#$Ultimate##0 ~n := #in~n; 209121#L25 assume ~n <= 0;#res := 1; 209112#factFINAL assume true; 209080#factEXIT >#66#return; 209072#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209041#factFINAL assume true; 209066#factEXIT >#66#return; 209076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209678#factFINAL assume true; 209572#factEXIT >#74#return; 209312#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 209431#$Ultimate##0 ~n := #in~n; 209397#L25 assume !(~n <= 0); 209057#L26 call #t~ret0 := fact(~n - 1);< 209328#$Ultimate##0 ~n := #in~n; 209134#L25 assume ~n <= 0;#res := 1; 209294#factFINAL assume true; 209284#factEXIT >#66#return; 209289#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209458#factFINAL assume true; 209416#factEXIT >#76#return; 209419#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 209459#$Ultimate##0 ~n := #in~n; 209522#L25 assume !(~n <= 0); 209286#L26 call #t~ret0 := fact(~n - 1);< 209332#$Ultimate##0 ~n := #in~n; 209134#L25 assume ~n <= 0;#res := 1; 209294#factFINAL assume true; 209284#factEXIT >#66#return; 209289#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209458#factFINAL assume true; 209416#factEXIT >#78#return; 209425#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 209578#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 209577#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 209576#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 209574#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 209575#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 211105#$Ultimate##0 ~n := #in~n; 211142#L25 assume !(~n <= 0); 208663#L26 call #t~ret0 := fact(~n - 1);< 211140#$Ultimate##0 ~n := #in~n; 211002#L25 assume !(~n <= 0); 208692#L26 call #t~ret0 := fact(~n - 1);< 208697#$Ultimate##0 ~n := #in~n; 211002#L25 assume !(~n <= 0); 208692#L26 call #t~ret0 := fact(~n - 1);< 208697#$Ultimate##0 ~n := #in~n; 211003#L25 assume ~n <= 0;#res := 1; 211154#factFINAL assume true; 211143#factEXIT >#66#return; 211141#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 211139#factFINAL assume true; 211132#factEXIT >#66#return; 211130#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 211126#factFINAL assume true; 211113#factEXIT >#66#return; 211109#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 211106#factFINAL assume true; 211094#factEXIT >#74#return; 211088#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 211089#$Ultimate##0 ~n := #in~n; 211188#L25 assume !(~n <= 0); 208656#L26 call #t~ret0 := fact(~n - 1);< 211186#$Ultimate##0 ~n := #in~n; 211195#L25 assume ~n <= 0;#res := 1; 211194#factFINAL assume true; 208655#factEXIT >#66#return; 208664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 211184#factFINAL assume true; 211183#factEXIT >#76#return; 211095#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 211105#$Ultimate##0 ~n := #in~n; 211142#L25 assume !(~n <= 0); 208663#L26 call #t~ret0 := fact(~n - 1);< 211140#$Ultimate##0 ~n := #in~n; 211002#L25 assume !(~n <= 0); 208692#L26 call #t~ret0 := fact(~n - 1);< 208697#$Ultimate##0 ~n := #in~n; 211003#L25 assume ~n <= 0;#res := 1; 211154#factFINAL assume true; 211143#factEXIT >#66#return; 211141#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 211139#factFINAL assume true; 211132#factEXIT >#66#return; 211134#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 211181#factFINAL assume true; 211179#factEXIT >#78#return; 208745#L30-8 [2023-02-18 08:56:32,312 INFO L750 eck$LassoCheckResult]: Loop: 208745#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 208746#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 208747#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 208748#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 208706#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 208707#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 208749#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 208750#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 208667#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 208673#$Ultimate##0 ~n := #in~n; 209933#L25 assume !(~n <= 0); 209062#L26 call #t~ret0 := fact(~n - 1);< 209150#$Ultimate##0 ~n := #in~n; 209146#L25 assume !(~n <= 0); 209056#L26 call #t~ret0 := fact(~n - 1);< 209086#$Ultimate##0 ~n := #in~n; 209146#L25 assume !(~n <= 0); 209056#L26 call #t~ret0 := fact(~n - 1);< 209086#$Ultimate##0 ~n := #in~n; 209146#L25 assume !(~n <= 0); 209056#L26 call #t~ret0 := fact(~n - 1);< 209086#$Ultimate##0 ~n := #in~n; 209121#L25 assume ~n <= 0;#res := 1; 209112#factFINAL assume true; 209080#factEXIT >#66#return; 209072#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209041#factFINAL assume true; 209066#factEXIT >#66#return; 209077#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209367#factFINAL assume true; 209362#factEXIT >#66#return; 209356#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209359#factFINAL assume true; 209351#factEXIT >#66#return; 208719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 208720#factFINAL assume true; 208666#factEXIT >#68#return; 208669#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 208726#$Ultimate##0 ~n := #in~n; 208725#L25 assume ~n <= 0;#res := 1; 208682#factFINAL assume true; 208683#factEXIT >#70#return; 209361#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 209488#$Ultimate##0 ~n := #in~n; 209450#L25 assume !(~n <= 0); 209083#L26 call #t~ret0 := fact(~n - 1);< 209040#$Ultimate##0 ~n := #in~n; 209449#L25 assume !(~n <= 0); 209082#L26 call #t~ret0 := fact(~n - 1);< 209084#$Ultimate##0 ~n := #in~n; 209176#L25 assume !(~n <= 0); 209058#L26 call #t~ret0 := fact(~n - 1);< 209148#$Ultimate##0 ~n := #in~n; 209146#L25 assume !(~n <= 0); 209056#L26 call #t~ret0 := fact(~n - 1);< 209086#$Ultimate##0 ~n := #in~n; 209121#L25 assume ~n <= 0;#res := 1; 209112#factFINAL assume true; 209080#factEXIT >#66#return; 209072#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209041#factFINAL assume true; 209066#factEXIT >#66#return; 209077#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209367#factFINAL assume true; 209362#factEXIT >#66#return; 209356#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209359#factFINAL assume true; 209351#factEXIT >#66#return; 209354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 211080#factFINAL assume true; 211078#factEXIT >#72#return; 211077#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 211076#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 211075#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 211074#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 211073#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 209039#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 209266#$Ultimate##0 ~n := #in~n; 209267#L25 assume !(~n <= 0); 209038#L26 call #t~ret0 := fact(~n - 1);< 209040#$Ultimate##0 ~n := #in~n; 209449#L25 assume !(~n <= 0); 209082#L26 call #t~ret0 := fact(~n - 1);< 209084#$Ultimate##0 ~n := #in~n; 209176#L25 assume !(~n <= 0); 209058#L26 call #t~ret0 := fact(~n - 1);< 209148#$Ultimate##0 ~n := #in~n; 209146#L25 assume !(~n <= 0); 209056#L26 call #t~ret0 := fact(~n - 1);< 209086#$Ultimate##0 ~n := #in~n; 209121#L25 assume ~n <= 0;#res := 1; 209112#factFINAL assume true; 209080#factEXIT >#66#return; 209072#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209041#factFINAL assume true; 209066#factEXIT >#66#return; 209077#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209367#factFINAL assume true; 209362#factEXIT >#66#return; 209356#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209359#factFINAL assume true; 209351#factEXIT >#66#return; 209350#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209349#factFINAL assume true; 209345#factEXIT >#68#return; 209346#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 209457#$Ultimate##0 ~n := #in~n; 209501#L25 assume !(~n <= 0); 209287#L26 call #t~ret0 := fact(~n - 1);< 209332#$Ultimate##0 ~n := #in~n; 209134#L25 assume ~n <= 0;#res := 1; 209294#factFINAL assume true; 209284#factEXIT >#66#return; 209288#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209456#factFINAL assume true; 209411#factEXIT >#70#return; 209377#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 209270#$Ultimate##0 ~n := #in~n; 209503#L25 assume !(~n <= 0); 209152#L26 call #t~ret0 := fact(~n - 1);< 209084#$Ultimate##0 ~n := #in~n; 209176#L25 assume !(~n <= 0); 209058#L26 call #t~ret0 := fact(~n - 1);< 209148#$Ultimate##0 ~n := #in~n; 209146#L25 assume !(~n <= 0); 209056#L26 call #t~ret0 := fact(~n - 1);< 209086#$Ultimate##0 ~n := #in~n; 209121#L25 assume ~n <= 0;#res := 1; 209112#factFINAL assume true; 209080#factEXIT >#66#return; 209072#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209041#factFINAL assume true; 209066#factEXIT >#66#return; 209077#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209367#factFINAL assume true; 209362#factEXIT >#66#return; 209363#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209453#factFINAL assume true; 209394#factEXIT >#72#return; 209387#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 211069#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 211067#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 211065#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 211064#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 209156#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 209178#$Ultimate##0 ~n := #in~n; 209177#L25 assume !(~n <= 0); 209063#L26 call #t~ret0 := fact(~n - 1);< 209150#$Ultimate##0 ~n := #in~n; 209146#L25 assume !(~n <= 0); 209056#L26 call #t~ret0 := fact(~n - 1);< 209086#$Ultimate##0 ~n := #in~n; 209146#L25 assume !(~n <= 0); 209056#L26 call #t~ret0 := fact(~n - 1);< 209086#$Ultimate##0 ~n := #in~n; 209146#L25 assume !(~n <= 0); 209056#L26 call #t~ret0 := fact(~n - 1);< 209086#$Ultimate##0 ~n := #in~n; 209121#L25 assume ~n <= 0;#res := 1; 209112#factFINAL assume true; 209080#factEXIT >#66#return; 209072#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209041#factFINAL assume true; 209066#factEXIT >#66#return; 209077#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209367#factFINAL assume true; 209362#factEXIT >#66#return; 209356#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209359#factFINAL assume true; 209351#factEXIT >#66#return; 209350#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209349#factFINAL assume true; 209345#factEXIT >#68#return; 209296#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 208987#$Ultimate##0 ~n := #in~n; 209334#L25 assume !(~n <= 0); 209042#L26 call #t~ret0 := fact(~n - 1);< 209150#$Ultimate##0 ~n := #in~n; 209146#L25 assume !(~n <= 0); 209056#L26 call #t~ret0 := fact(~n - 1);< 209086#$Ultimate##0 ~n := #in~n; 209121#L25 assume ~n <= 0;#res := 1; 209112#factFINAL assume true; 209080#factEXIT >#66#return; 209072#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209041#factFINAL assume true; 209066#factEXIT >#66#return; 209073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209530#factFINAL assume true; 209529#factEXIT >#70#return; 209295#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 208987#$Ultimate##0 ~n := #in~n; 209334#L25 assume !(~n <= 0); 209042#L26 call #t~ret0 := fact(~n - 1);< 209150#$Ultimate##0 ~n := #in~n; 209134#L25 assume ~n <= 0;#res := 1; 209294#factFINAL assume true; 209284#factEXIT >#66#return; 209288#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209456#factFINAL assume true; 209411#factEXIT >#72#return; 209414#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 211056#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 211048#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 211045#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 209181#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 209158#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 209178#$Ultimate##0 ~n := #in~n; 209177#L25 assume !(~n <= 0); 209063#L26 call #t~ret0 := fact(~n - 1);< 209150#$Ultimate##0 ~n := #in~n; 209146#L25 assume !(~n <= 0); 209056#L26 call #t~ret0 := fact(~n - 1);< 209086#$Ultimate##0 ~n := #in~n; 209146#L25 assume !(~n <= 0); 209056#L26 call #t~ret0 := fact(~n - 1);< 209086#$Ultimate##0 ~n := #in~n; 209146#L25 assume !(~n <= 0); 209056#L26 call #t~ret0 := fact(~n - 1);< 209086#$Ultimate##0 ~n := #in~n; 209121#L25 assume ~n <= 0;#res := 1; 209112#factFINAL assume true; 209080#factEXIT >#66#return; 209072#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209041#factFINAL assume true; 209066#factEXIT >#66#return; 209077#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209367#factFINAL assume true; 209362#factEXIT >#66#return; 209356#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209359#factFINAL assume true; 209351#factEXIT >#66#return; 209350#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209349#factFINAL assume true; 209345#factEXIT >#68#return; 209298#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 208987#$Ultimate##0 ~n := #in~n; 209334#L25 assume !(~n <= 0); 209042#L26 call #t~ret0 := fact(~n - 1);< 209150#$Ultimate##0 ~n := #in~n; 209146#L25 assume !(~n <= 0); 209056#L26 call #t~ret0 := fact(~n - 1);< 209086#$Ultimate##0 ~n := #in~n; 209146#L25 assume !(~n <= 0); 209056#L26 call #t~ret0 := fact(~n - 1);< 209086#$Ultimate##0 ~n := #in~n; 209146#L25 assume !(~n <= 0); 209056#L26 call #t~ret0 := fact(~n - 1);< 209086#$Ultimate##0 ~n := #in~n; 209121#L25 assume ~n <= 0;#res := 1; 209112#factFINAL assume true; 209080#factEXIT >#66#return; 209072#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209041#factFINAL assume true; 209066#factEXIT >#66#return; 209077#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209367#factFINAL assume true; 209362#factEXIT >#66#return; 209356#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209359#factFINAL assume true; 209351#factEXIT >#66#return; 209352#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 209455#factFINAL assume true; 209376#factEXIT >#70#return; 209301#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 208987#$Ultimate##0 ~n := #in~n; 209334#L25 assume ~n <= 0;#res := 1; 209335#factFINAL assume true; 209524#factEXIT >#72#return; 209527#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 211172#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 211171#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 211167#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 211164#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 209499#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 211162#$Ultimate##0 ~n := #in~n; 211176#L25 assume !(~n <= 0); 208693#L26 call #t~ret0 := fact(~n - 1);< 211004#$Ultimate##0 ~n := #in~n; 211002#L25 assume !(~n <= 0); 208692#L26 call #t~ret0 := fact(~n - 1);< 208697#$Ultimate##0 ~n := #in~n; 211002#L25 assume !(~n <= 0); 208692#L26 call #t~ret0 := fact(~n - 1);< 208697#$Ultimate##0 ~n := #in~n; 211002#L25 assume !(~n <= 0); 208692#L26 call #t~ret0 := fact(~n - 1);< 208697#$Ultimate##0 ~n := #in~n; 211003#L25 assume ~n <= 0;#res := 1; 211154#factFINAL assume true; 211143#factEXIT >#66#return; 211141#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 211139#factFINAL assume true; 211132#factEXIT >#66#return; 211130#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 211126#factFINAL assume true; 211113#factEXIT >#66#return; 211117#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 211129#factFINAL assume true; 211123#factEXIT >#66#return; 211124#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 211163#factFINAL assume true; 211158#factEXIT >#74#return; 211127#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 211157#$Ultimate##0 ~n := #in~n; 211156#L25 assume !(~n <= 0); 208694#L26 call #t~ret0 := fact(~n - 1);< 211004#$Ultimate##0 ~n := #in~n; 211002#L25 assume !(~n <= 0); 208692#L26 call #t~ret0 := fact(~n - 1);< 208697#$Ultimate##0 ~n := #in~n; 211002#L25 assume !(~n <= 0); 208692#L26 call #t~ret0 := fact(~n - 1);< 208697#$Ultimate##0 ~n := #in~n; 211002#L25 assume !(~n <= 0); 208692#L26 call #t~ret0 := fact(~n - 1);< 208697#$Ultimate##0 ~n := #in~n; 211003#L25 assume ~n <= 0;#res := 1; 211154#factFINAL assume true; 211143#factEXIT >#66#return; 211141#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 211139#factFINAL assume true; 211132#factEXIT >#66#return; 211130#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 211126#factFINAL assume true; 211113#factEXIT >#66#return; 211117#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 211129#factFINAL assume true; 211123#factEXIT >#66#return; 211124#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 211163#factFINAL assume true; 211158#factEXIT >#76#return; 208690#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 208727#$Ultimate##0 ~n := #in~n; 208724#L25 assume !(~n <= 0); 208658#L26 call #t~ret0 := fact(~n - 1);< 208691#$Ultimate##0 ~n := #in~n; 211195#L25 assume ~n <= 0;#res := 1; 211194#factFINAL assume true; 208655#factEXIT >#66#return; 208665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 208718#factFINAL assume true; 211081#factEXIT >#78#return; 208745#L30-8 [2023-02-18 08:56:32,312 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:32,312 INFO L85 PathProgramCache]: Analyzing trace with hash 2135700754, now seen corresponding path program 39 times [2023-02-18 08:56:32,313 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:32,313 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1221994422] [2023-02-18 08:56:32,313 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:32,313 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:32,320 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:32,320 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2146320956] [2023-02-18 08:56:32,320 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:56:32,321 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:32,321 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:32,324 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-18 08:56:32,324 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-18 08:56:32,573 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 17 check-sat command(s) [2023-02-18 08:56:32,573 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:32,573 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:32,657 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:32,696 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:32,697 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:32,697 INFO L85 PathProgramCache]: Analyzing trace with hash 1256668133, now seen corresponding path program 40 times [2023-02-18 08:56:32,697 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:32,697 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [733783005] [2023-02-18 08:56:32,697 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:32,697 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:32,703 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:32,704 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [519003498] [2023-02-18 08:56:32,704 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:56:32,704 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:32,704 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:32,707 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-18 08:56:32,708 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-18 08:56:32,937 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:56:32,938 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:32,940 INFO L263 TraceCheckSpWp]: Trace formula consists of 743 conjuncts, 23 conjunts are in the unsatisfiable core [2023-02-18 08:56:32,950 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:33,007 INFO L134 CoverageAnalysis]: Checked inductivity of 7565 backedges. 3986 proven. 503 refuted. 0 times theorem prover too weak. 3076 trivial. 0 not checked. [2023-02-18 08:56:33,007 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:33,178 INFO L134 CoverageAnalysis]: Checked inductivity of 7565 backedges. 260 proven. 1097 refuted. 0 times theorem prover too weak. 6208 trivial. 0 not checked. [2023-02-18 08:56:33,178 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:33,178 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [733783005] [2023-02-18 08:56:33,178 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:33,178 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [519003498] [2023-02-18 08:56:33,178 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [519003498] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:33,178 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:33,179 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 20] total 27 [2023-02-18 08:56:33,179 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1418727087] [2023-02-18 08:56:33,179 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:33,179 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:33,179 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:33,179 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 27 interpolants. [2023-02-18 08:56:33,180 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=95, Invalid=607, Unknown=0, NotChecked=0, Total=702 [2023-02-18 08:56:33,180 INFO L87 Difference]: Start difference. First operand 2563 states and 3585 transitions. cyclomatic complexity: 1049 Second operand has 27 states, 23 states have (on average 3.217391304347826) internal successors, (74), 27 states have internal predecessors, (74), 17 states have call successors, (39), 2 states have call predecessors, (39), 8 states have return successors, (41), 13 states have call predecessors, (41), 17 states have call successors, (41) [2023-02-18 08:56:33,958 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:33,959 INFO L93 Difference]: Finished difference Result 2703 states and 3829 transitions. [2023-02-18 08:56:33,959 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2703 states and 3829 transitions. [2023-02-18 08:56:33,970 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 166 [2023-02-18 08:56:33,983 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2703 states to 2685 states and 3808 transitions. [2023-02-18 08:56:33,983 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 208 [2023-02-18 08:56:33,983 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 208 [2023-02-18 08:56:33,983 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2685 states and 3808 transitions. [2023-02-18 08:56:33,983 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:33,983 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2685 states and 3808 transitions. [2023-02-18 08:56:33,984 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2685 states and 3808 transitions. [2023-02-18 08:56:34,008 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2685 to 2509. [2023-02-18 08:56:34,009 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2509 states, 1579 states have (on average 1.0626979100696643) internal successors, (1678), 1586 states have internal predecessors, (1678), 745 states have call successors, (757), 244 states have call predecessors, (757), 185 states have return successors, (1073), 678 states have call predecessors, (1073), 745 states have call successors, (1073) [2023-02-18 08:56:34,016 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2509 states to 2509 states and 3508 transitions. [2023-02-18 08:56:34,016 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2509 states and 3508 transitions. [2023-02-18 08:56:34,017 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 29 states. [2023-02-18 08:56:34,017 INFO L428 stractBuchiCegarLoop]: Abstraction has 2509 states and 3508 transitions. [2023-02-18 08:56:34,017 INFO L335 stractBuchiCegarLoop]: ======== Iteration 53 ============ [2023-02-18 08:56:34,017 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2509 states and 3508 transitions. [2023-02-18 08:56:34,022 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 156 [2023-02-18 08:56:34,022 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:34,022 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:34,023 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:34,023 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [67, 67, 49, 49, 49, 49, 18, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:34,024 INFO L748 eck$LassoCheckResult]: Stem: 216130#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 216071#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; 216072#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 216094#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; 216131#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 216290#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 216288#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 216284#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 216285#$Ultimate##0 ~n := #in~n; 216289#L25 assume ~n <= 0;#res := 1; 216287#factFINAL assume true; 216283#factEXIT >#68#return; 216279#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 216280#$Ultimate##0 ~n := #in~n; 216286#L25 assume ~n <= 0;#res := 1; 216282#factFINAL assume true; 216278#factEXIT >#70#return; 216275#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 216276#$Ultimate##0 ~n := #in~n; 216281#L25 assume ~n <= 0;#res := 1; 216277#factFINAL assume true; 216274#factEXIT >#72#return; 216272#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 216271#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 216268#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 216264#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 216263#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 216252#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 216253#$Ultimate##0 ~n := #in~n; 216273#L25 assume !(~n <= 0); 216261#L26 call #t~ret0 := fact(~n - 1);< 216262#$Ultimate##0 ~n := #in~n; 216270#L25 assume ~n <= 0;#res := 1; 216267#factFINAL assume true; 216260#factEXIT >#66#return; 216259#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216258#factFINAL assume true; 216251#factEXIT >#74#return; 216247#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 216248#$Ultimate##0 ~n := #in~n; 216257#L25 assume ~n <= 0;#res := 1; 216250#factFINAL assume true; 216246#factEXIT >#76#return; 216243#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 216244#$Ultimate##0 ~n := #in~n; 216266#L25 assume !(~n <= 0); 216255#L26 call #t~ret0 := fact(~n - 1);< 216256#$Ultimate##0 ~n := #in~n; 216269#L25 assume ~n <= 0;#res := 1; 216265#factFINAL assume true; 216254#factEXIT >#66#return; 216249#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216245#factFINAL assume true; 216242#factEXIT >#78#return; 216240#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 216232#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 216205#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 216201#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 216199#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 216178#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 216183#$Ultimate##0 ~n := #in~n; 216212#L25 assume !(~n <= 0); 216195#L26 call #t~ret0 := fact(~n - 1);< 216197#$Ultimate##0 ~n := #in~n; 216220#L25 assume !(~n <= 0); 216194#L26 call #t~ret0 := fact(~n - 1);< 216218#$Ultimate##0 ~n := #in~n; 216228#L25 assume ~n <= 0;#res := 1; 216227#factFINAL assume true; 216223#factEXIT >#66#return; 216222#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216219#factFINAL assume true; 216216#factEXIT >#66#return; 216217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216230#factFINAL assume true; 216226#factEXIT >#74#return; 216180#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 216225#$Ultimate##0 ~n := #in~n; 216231#L25 assume ~n <= 0;#res := 1; 216229#factFINAL assume true; 216224#factEXIT >#76#return; 216203#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 216204#$Ultimate##0 ~n := #in~n; 216221#L25 assume !(~n <= 0); 216196#L26 call #t~ret0 := fact(~n - 1);< 216197#$Ultimate##0 ~n := #in~n; 216220#L25 assume !(~n <= 0); 216194#L26 call #t~ret0 := fact(~n - 1);< 216218#$Ultimate##0 ~n := #in~n; 216228#L25 assume ~n <= 0;#res := 1; 216227#factFINAL assume true; 216223#factEXIT >#66#return; 216222#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216219#factFINAL assume true; 216216#factEXIT >#66#return; 216215#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216213#factFINAL assume true; 216202#factEXIT >#78#return; 216200#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 216198#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 216192#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 216190#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 216188#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 216189#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 216308#$Ultimate##0 ~n := #in~n; 216318#L25 assume !(~n <= 0); 216315#L26 call #t~ret0 := fact(~n - 1);< 216317#$Ultimate##0 ~n := #in~n; 216324#L25 assume !(~n <= 0); 216316#L26 call #t~ret0 := fact(~n - 1);< 216322#$Ultimate##0 ~n := #in~n; 216324#L25 assume !(~n <= 0); 216316#L26 call #t~ret0 := fact(~n - 1);< 216322#$Ultimate##0 ~n := #in~n; 216328#L25 assume ~n <= 0;#res := 1; 216327#factFINAL assume true; 216326#factEXIT >#66#return; 216325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216323#factFINAL assume true; 216321#factEXIT >#66#return; 216320#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216319#factFINAL assume true; 216314#factEXIT >#66#return; 216313#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216312#factFINAL assume true; 216307#factEXIT >#74#return; 216303#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 216304#$Ultimate##0 ~n := #in~n; 216311#L25 assume ~n <= 0;#res := 1; 216306#factFINAL assume true; 216302#factEXIT >#76#return; 216170#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 216299#$Ultimate##0 ~n := #in~n; 216294#L25 assume !(~n <= 0); 216156#L26 call #t~ret0 := fact(~n - 1);< 216159#$Ultimate##0 ~n := #in~n; 216175#L25 assume !(~n <= 0); 216155#L26 call #t~ret0 := fact(~n - 1);< 216293#$Ultimate##0 ~n := #in~n; 216175#L25 assume !(~n <= 0); 216155#L26 call #t~ret0 := fact(~n - 1);< 216293#$Ultimate##0 ~n := #in~n; 216310#L25 assume ~n <= 0;#res := 1; 216309#factFINAL assume true; 216305#factEXIT >#66#return; 216301#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216300#factFINAL assume true; 216298#factEXIT >#66#return; 216297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216296#factFINAL assume true; 216291#factEXIT >#66#return; 216158#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216982#factFINAL assume true; 216579#factEXIT >#78#return; 216569#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 216074#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 216559#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 216557#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 216555#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 216553#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 216551#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 216549#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 216543#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 216547#$Ultimate##0 ~n := #in~n; 216857#L25 assume !(~n <= 0); 216837#L26 call #t~ret0 := fact(~n - 1);< 216846#$Ultimate##0 ~n := #in~n; 216859#L25 assume ~n <= 0;#res := 1; 216848#factFINAL assume true; 216826#factEXIT >#66#return; 216825#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216824#factFINAL assume true; 216541#factEXIT >#68#return; 216530#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 216535#$Ultimate##0 ~n := #in~n; 216625#L25 assume ~n <= 0;#res := 1; 216539#factFINAL assume true; 216529#factEXIT >#70#return; 216508#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 216525#$Ultimate##0 ~n := #in~n; 216517#L25 assume !(~n <= 0); 216447#L26 call #t~ret0 := fact(~n - 1);< 216509#$Ultimate##0 ~n := #in~n; 216516#L25 assume ~n <= 0;#res := 1; 216570#factFINAL assume true; 216561#factEXIT >#66#return; 216560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216558#factFINAL assume true; 216556#factEXIT >#72#return; 216554#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 216552#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 216550#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 216548#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 216538#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 216431#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 216526#$Ultimate##0 ~n := #in~n; 216518#L25 assume !(~n <= 0); 216461#L26 call #t~ret0 := fact(~n - 1);< 216509#$Ultimate##0 ~n := #in~n; 216516#L25 assume ~n <= 0;#res := 1; 216570#factFINAL assume true; 216561#factEXIT >#66#return; 216567#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216995#factFINAL assume true; 216992#factEXIT >#68#return; 216396#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 216407#$Ultimate##0 ~n := #in~n; 216644#L25 assume !(~n <= 0); 216459#L26 call #t~ret0 := fact(~n - 1);< 216581#$Ultimate##0 ~n := #in~n; 216516#L25 assume ~n <= 0;#res := 1; 216570#factFINAL assume true; 216561#factEXIT >#66#return; 216566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216903#factFINAL assume true; 216881#factEXIT >#70#return; 216370#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 216365#$Ultimate##0 ~n := #in~n; 216368#L25 assume ~n <= 0;#res := 1; 216372#factFINAL assume true; 216985#factEXIT >#72#return; 216984#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 216983#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 216981#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 216957#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 216956#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 216398#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 216428#$Ultimate##0 ~n := #in~n; 218070#L25 assume !(~n <= 0); 216468#L26 call #t~ret0 := fact(~n - 1);< 216571#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216501#L25 assume ~n <= 0;#res := 1; 216499#factFINAL assume true; 216493#factEXIT >#66#return; 216495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216863#factFINAL assume true; 216445#factEXIT >#66#return; 216472#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 218122#factFINAL assume true; 216373#factEXIT >#74#return; 216381#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 216407#$Ultimate##0 ~n := #in~n; 216644#L25 assume !(~n <= 0); 216459#L26 call #t~ret0 := fact(~n - 1);< 216581#$Ultimate##0 ~n := #in~n; 216516#L25 assume ~n <= 0;#res := 1; 216570#factFINAL assume true; 216561#factEXIT >#66#return; 216566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216903#factFINAL assume true; 216881#factEXIT >#76#return; 216406#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 216877#$Ultimate##0 ~n := #in~n; 216874#L25 assume !(~n <= 0); 216564#L26 call #t~ret0 := fact(~n - 1);< 216577#$Ultimate##0 ~n := #in~n; 216516#L25 assume ~n <= 0;#res := 1; 216570#factFINAL assume true; 216561#factEXIT >#66#return; 216566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216903#factFINAL assume true; 216881#factEXIT >#78#return; 216887#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 217481#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 217479#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 217478#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 217477#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 217369#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 217388#$Ultimate##0 ~n := #in~n; 217476#L25 assume !(~n <= 0); 216047#L26 call #t~ret0 := fact(~n - 1);< 217474#$Ultimate##0 ~n := #in~n; 217446#L25 assume !(~n <= 0); 216050#L26 call #t~ret0 := fact(~n - 1);< 217445#$Ultimate##0 ~n := #in~n; 217446#L25 assume !(~n <= 0); 216050#L26 call #t~ret0 := fact(~n - 1);< 217445#$Ultimate##0 ~n := #in~n; 217448#L25 assume ~n <= 0;#res := 1; 217535#factFINAL assume true; 217532#factEXIT >#66#return; 217531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 217528#factFINAL assume true; 217450#factEXIT >#66#return; 217452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 217443#factFINAL assume true; 217426#factEXIT >#66#return; 217424#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 217421#factFINAL assume true; 217389#factEXIT >#74#return; 217374#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 217387#$Ultimate##0 ~n := #in~n; 217469#L25 assume !(~n <= 0); 217431#L26 call #t~ret0 := fact(~n - 1);< 217468#$Ultimate##0 ~n := #in~n; 217473#L25 assume ~n <= 0;#res := 1; 217471#factFINAL assume true; 217463#factEXIT >#66#return; 217462#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 217456#factFINAL assume true; 217420#factEXIT >#76#return; 217376#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 217388#$Ultimate##0 ~n := #in~n; 217476#L25 assume !(~n <= 0); 216047#L26 call #t~ret0 := fact(~n - 1);< 217474#$Ultimate##0 ~n := #in~n; 217446#L25 assume !(~n <= 0); 216050#L26 call #t~ret0 := fact(~n - 1);< 217445#$Ultimate##0 ~n := #in~n; 217448#L25 assume ~n <= 0;#res := 1; 217535#factFINAL assume true; 217532#factEXIT >#66#return; 217531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 217528#factFINAL assume true; 217450#factEXIT >#66#return; 217419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 217386#factFINAL assume true; 217368#factEXIT >#78#return; 216139#L30-8 [2023-02-18 08:56:34,024 INFO L750 eck$LassoCheckResult]: Loop: 216139#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 216095#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 216096#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 216138#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 216092#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 216084#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 216085#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 216140#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 216062#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 216063#$Ultimate##0 ~n := #in~n; 216586#L25 assume !(~n <= 0); 216457#L26 call #t~ret0 := fact(~n - 1);< 216571#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216501#L25 assume ~n <= 0;#res := 1; 216499#factFINAL assume true; 216493#factEXIT >#66#return; 216495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216863#factFINAL assume true; 216445#factEXIT >#66#return; 216470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216701#factFINAL assume true; 216697#factEXIT >#66#return; 216491#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216481#factFINAL assume true; 216483#factEXIT >#66#return; 216600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216932#factFINAL assume true; 216931#factEXIT >#68#return; 216917#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 216918#$Ultimate##0 ~n := #in~n; 218525#L25 assume ~n <= 0;#res := 1; 218524#factFINAL assume true; 216915#factEXIT >#70#return; 216068#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 216899#$Ultimate##0 ~n := #in~n; 217437#L25 assume !(~n <= 0); 216482#L26 call #t~ret0 := fact(~n - 1);< 216477#$Ultimate##0 ~n := #in~n; 218543#L25 assume !(~n <= 0); 216111#L26 call #t~ret0 := fact(~n - 1);< 216498#$Ultimate##0 ~n := #in~n; 216110#L25 assume !(~n <= 0); 216112#L26 call #t~ret0 := fact(~n - 1);< 216489#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216501#L25 assume ~n <= 0;#res := 1; 216499#factFINAL assume true; 216493#factEXIT >#66#return; 216495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216863#factFINAL assume true; 216445#factEXIT >#66#return; 216470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216701#factFINAL assume true; 216697#factEXIT >#66#return; 216491#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216481#factFINAL assume true; 216483#factEXIT >#66#return; 216105#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216067#factFINAL assume true; 216070#factEXIT >#72#return; 216898#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 216892#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 216893#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 216888#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 216889#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 216476#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 216443#$Ultimate##0 ~n := #in~n; 218537#L25 assume !(~n <= 0); 216474#L26 call #t~ret0 := fact(~n - 1);< 216477#$Ultimate##0 ~n := #in~n; 218543#L25 assume !(~n <= 0); 216111#L26 call #t~ret0 := fact(~n - 1);< 216498#$Ultimate##0 ~n := #in~n; 216110#L25 assume !(~n <= 0); 216112#L26 call #t~ret0 := fact(~n - 1);< 216489#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216501#L25 assume ~n <= 0;#res := 1; 216499#factFINAL assume true; 216493#factEXIT >#66#return; 216495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216863#factFINAL assume true; 216445#factEXIT >#66#return; 216470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216701#factFINAL assume true; 216697#factEXIT >#66#return; 216491#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216481#factFINAL assume true; 216483#factEXIT >#66#return; 216598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216596#factFINAL assume true; 216594#factEXIT >#68#return; 216355#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 216813#$Ultimate##0 ~n := #in~n; 216823#L25 assume !(~n <= 0); 216563#L26 call #t~ret0 := fact(~n - 1);< 216577#$Ultimate##0 ~n := #in~n; 216516#L25 assume ~n <= 0;#res := 1; 216570#factFINAL assume true; 216561#factEXIT >#66#return; 216568#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216812#factFINAL assume true; 216805#factEXIT >#70#return; 216418#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 216424#$Ultimate##0 ~n := #in~n; 218531#L25 assume !(~n <= 0); 216113#L26 call #t~ret0 := fact(~n - 1);< 216498#$Ultimate##0 ~n := #in~n; 216110#L25 assume !(~n <= 0); 216112#L26 call #t~ret0 := fact(~n - 1);< 216489#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216501#L25 assume ~n <= 0;#res := 1; 216499#factFINAL assume true; 216493#factEXIT >#66#return; 216495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216863#factFINAL assume true; 216445#factEXIT >#66#return; 216470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216701#factFINAL assume true; 216697#factEXIT >#66#return; 216479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216408#factFINAL assume true; 216423#factEXIT >#72#return; 216818#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 217339#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 217338#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 217337#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 217336#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 216478#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 216443#$Ultimate##0 ~n := #in~n; 218537#L25 assume !(~n <= 0); 216474#L26 call #t~ret0 := fact(~n - 1);< 216477#$Ultimate##0 ~n := #in~n; 218543#L25 assume !(~n <= 0); 216111#L26 call #t~ret0 := fact(~n - 1);< 216498#$Ultimate##0 ~n := #in~n; 216110#L25 assume !(~n <= 0); 216112#L26 call #t~ret0 := fact(~n - 1);< 216489#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216501#L25 assume ~n <= 0;#res := 1; 216499#factFINAL assume true; 216493#factEXIT >#66#return; 216495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216863#factFINAL assume true; 216445#factEXIT >#66#return; 216470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216701#factFINAL assume true; 216697#factEXIT >#66#return; 216491#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216481#factFINAL assume true; 216483#factEXIT >#66#return; 216598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216596#factFINAL assume true; 216594#factEXIT >#68#return; 216356#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 216592#$Ultimate##0 ~n := #in~n; 216590#L25 assume !(~n <= 0); 216466#L26 call #t~ret0 := fact(~n - 1);< 216571#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216501#L25 assume ~n <= 0;#res := 1; 216499#factFINAL assume true; 216493#factEXIT >#66#return; 216495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216863#factFINAL assume true; 216445#factEXIT >#66#return; 216471#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 217898#factFINAL assume true; 216872#factEXIT >#70#return; 216416#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 217335#$Ultimate##0 ~n := #in~n; 218526#L25 assume !(~n <= 0); 216458#L26 call #t~ret0 := fact(~n - 1);< 216489#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216501#L25 assume ~n <= 0;#res := 1; 216499#factFINAL assume true; 216493#factEXIT >#66#return; 216495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216863#factFINAL assume true; 216445#factEXIT >#66#return; 216470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216701#factFINAL assume true; 216697#factEXIT >#66#return; 216479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216408#factFINAL assume true; 216423#factEXIT >#72#return; 216817#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 218489#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 218488#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 218487#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 216821#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 216582#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 216440#$Ultimate##0 ~n := #in~n; 216587#L25 assume !(~n <= 0); 216451#L26 call #t~ret0 := fact(~n - 1);< 216571#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216501#L25 assume ~n <= 0;#res := 1; 216499#factFINAL assume true; 216493#factEXIT >#66#return; 216495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216863#factFINAL assume true; 216445#factEXIT >#66#return; 216470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216701#factFINAL assume true; 216697#factEXIT >#66#return; 216491#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216481#factFINAL assume true; 216483#factEXIT >#66#return; 216598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216596#factFINAL assume true; 216594#factEXIT >#68#return; 216354#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 216592#$Ultimate##0 ~n := #in~n; 216590#L25 assume !(~n <= 0); 216466#L26 call #t~ret0 := fact(~n - 1);< 216571#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216501#L25 assume ~n <= 0;#res := 1; 216499#factFINAL assume true; 216493#factEXIT >#66#return; 216495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216863#factFINAL assume true; 216445#factEXIT >#66#return; 216470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216701#factFINAL assume true; 216697#factEXIT >#66#return; 216479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216408#factFINAL assume true; 216423#factEXIT >#70#return; 216351#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 216592#$Ultimate##0 ~n := #in~n; 216590#L25 assume !(~n <= 0); 216466#L26 call #t~ret0 := fact(~n - 1);< 216571#$Ultimate##0 ~n := #in~n; 216516#L25 assume ~n <= 0;#res := 1; 216570#factFINAL assume true; 216561#factEXIT >#66#return; 216568#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216812#factFINAL assume true; 216805#factEXIT >#72#return; 216786#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 216774#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 216772#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 216766#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 216540#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 216439#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 216440#$Ultimate##0 ~n := #in~n; 216587#L25 assume !(~n <= 0); 216451#L26 call #t~ret0 := fact(~n - 1);< 216571#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216501#L25 assume ~n <= 0;#res := 1; 216499#factFINAL assume true; 216493#factEXIT >#66#return; 216495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216863#factFINAL assume true; 216445#factEXIT >#66#return; 216470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216701#factFINAL assume true; 216697#factEXIT >#66#return; 216491#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216481#factFINAL assume true; 216483#factEXIT >#66#return; 216598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216596#factFINAL assume true; 216594#factEXIT >#68#return; 216349#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 216592#$Ultimate##0 ~n := #in~n; 216590#L25 assume !(~n <= 0); 216466#L26 call #t~ret0 := fact(~n - 1);< 216571#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216506#L25 assume !(~n <= 0); 216448#L26 call #t~ret0 := fact(~n - 1);< 216496#$Ultimate##0 ~n := #in~n; 216501#L25 assume ~n <= 0;#res := 1; 216499#factFINAL assume true; 216493#factEXIT >#66#return; 216495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216863#factFINAL assume true; 216445#factEXIT >#66#return; 216470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216701#factFINAL assume true; 216697#factEXIT >#66#return; 216491#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216481#factFINAL assume true; 216483#factEXIT >#66#return; 216601#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 218527#factFINAL assume true; 216862#factEXIT >#70#return; 216358#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 216592#$Ultimate##0 ~n := #in~n; 216590#L25 assume ~n <= 0;#res := 1; 216366#factFINAL assume true; 216346#factEXIT >#72#return; 216363#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 217516#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 217515#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 217514#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 217506#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 217412#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 217505#$Ultimate##0 ~n := #in~n; 217685#L25 assume !(~n <= 0); 216048#L26 call #t~ret0 := fact(~n - 1);< 217435#$Ultimate##0 ~n := #in~n; 217446#L25 assume !(~n <= 0); 216050#L26 call #t~ret0 := fact(~n - 1);< 217445#$Ultimate##0 ~n := #in~n; 217446#L25 assume !(~n <= 0); 216050#L26 call #t~ret0 := fact(~n - 1);< 217445#$Ultimate##0 ~n := #in~n; 217446#L25 assume !(~n <= 0); 216050#L26 call #t~ret0 := fact(~n - 1);< 217445#$Ultimate##0 ~n := #in~n; 217448#L25 assume ~n <= 0;#res := 1; 217535#factFINAL assume true; 217532#factEXIT >#66#return; 217531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 217528#factFINAL assume true; 217450#factEXIT >#66#return; 217452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 217443#factFINAL assume true; 217426#factEXIT >#66#return; 216054#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 216066#factFINAL assume true; 216042#factEXIT >#66#return; 216051#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 217626#factFINAL assume true; 217408#factEXIT >#74#return; 217416#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 217503#$Ultimate##0 ~n := #in~n; 217502#L25 assume !(~n <= 0); 216044#L26 call #t~ret0 := fact(~n - 1);< 217435#$Ultimate##0 ~n := #in~n; 217446#L25 assume !(~n <= 0); 216050#L26 call #t~ret0 := fact(~n - 1);< 217445#$Ultimate##0 ~n := #in~n; 217446#L25 assume !(~n <= 0); 216050#L26 call #t~ret0 := fact(~n - 1);< 217445#$Ultimate##0 ~n := #in~n; 217448#L25 assume ~n <= 0;#res := 1; 217535#factFINAL assume true; 217532#factEXIT >#66#return; 217531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 217528#factFINAL assume true; 217450#factEXIT >#66#return; 217452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 217443#factFINAL assume true; 217426#factEXIT >#66#return; 217433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 217508#factFINAL assume true; 217504#factEXIT >#76#return; 216132#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 216133#$Ultimate##0 ~n := #in~n; 217472#L25 assume !(~n <= 0); 217465#L26 call #t~ret0 := fact(~n - 1);< 217467#$Ultimate##0 ~n := #in~n; 217473#L25 assume ~n <= 0;#res := 1; 217471#factFINAL assume true; 217463#factEXIT >#66#return; 217466#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 217897#factFINAL assume true; 216344#factEXIT >#78#return; 216139#L30-8 [2023-02-18 08:56:34,024 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:34,025 INFO L85 PathProgramCache]: Analyzing trace with hash 2135700754, now seen corresponding path program 40 times [2023-02-18 08:56:34,025 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:34,025 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1847410471] [2023-02-18 08:56:34,025 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:34,025 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:34,032 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:34,033 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1646784529] [2023-02-18 08:56:34,033 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:56:34,033 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:34,033 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:34,036 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-18 08:56:34,037 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-18 08:56:34,270 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:56:34,271 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:34,271 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:34,354 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:34,389 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:34,389 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:34,389 INFO L85 PathProgramCache]: Analyzing trace with hash -1014045300, now seen corresponding path program 41 times [2023-02-18 08:56:34,389 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:34,389 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1750351696] [2023-02-18 08:56:34,390 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:34,390 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:34,397 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:34,397 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [223126930] [2023-02-18 08:56:34,397 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:56:34,397 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:34,397 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:34,401 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-18 08:56:34,401 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-18 08:56:34,669 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 16 check-sat command(s) [2023-02-18 08:56:34,669 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:34,673 INFO L263 TraceCheckSpWp]: Trace formula consists of 784 conjuncts, 27 conjunts are in the unsatisfiable core [2023-02-18 08:56:34,676 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:34,740 INFO L134 CoverageAnalysis]: Checked inductivity of 11297 backedges. 6286 proven. 656 refuted. 0 times theorem prover too weak. 4355 trivial. 0 not checked. [2023-02-18 08:56:34,740 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:34,949 INFO L134 CoverageAnalysis]: Checked inductivity of 11297 backedges. 599 proven. 2103 refuted. 0 times theorem prover too weak. 8595 trivial. 0 not checked. [2023-02-18 08:56:34,949 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:34,949 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1750351696] [2023-02-18 08:56:34,949 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:34,949 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [223126930] [2023-02-18 08:56:34,949 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [223126930] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:34,949 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:34,949 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 22] total 26 [2023-02-18 08:56:34,950 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1433916701] [2023-02-18 08:56:34,950 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:34,950 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:34,950 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:34,950 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 26 interpolants. [2023-02-18 08:56:34,951 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=95, Invalid=555, Unknown=0, NotChecked=0, Total=650 [2023-02-18 08:56:34,951 INFO L87 Difference]: Start difference. First operand 2509 states and 3508 transitions. cyclomatic complexity: 1026 Second operand has 26 states, 21 states have (on average 3.238095238095238) internal successors, (68), 24 states have internal predecessors, (68), 17 states have call successors, (32), 2 states have call predecessors, (32), 10 states have return successors, (37), 13 states have call predecessors, (37), 17 states have call successors, (37) [2023-02-18 08:56:35,792 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:35,792 INFO L93 Difference]: Finished difference Result 4023 states and 6135 transitions. [2023-02-18 08:56:35,792 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4023 states and 6135 transitions. [2023-02-18 08:56:35,811 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 377 [2023-02-18 08:56:35,836 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4023 states to 4017 states and 6120 transitions. [2023-02-18 08:56:35,836 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 311 [2023-02-18 08:56:35,837 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 314 [2023-02-18 08:56:35,837 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4017 states and 6120 transitions. [2023-02-18 08:56:35,837 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:35,837 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4017 states and 6120 transitions. [2023-02-18 08:56:35,838 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4017 states and 6120 transitions. [2023-02-18 08:56:35,887 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4017 to 2996. [2023-02-18 08:56:35,889 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2996 states, 1843 states have (on average 1.060227889310906) internal successors, (1954), 1841 states have internal predecessors, (1954), 938 states have call successors, (950), 289 states have call predecessors, (950), 215 states have return successors, (1620), 865 states have call predecessors, (1620), 938 states have call successors, (1620) [2023-02-18 08:56:35,900 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2996 states to 2996 states and 4524 transitions. [2023-02-18 08:56:35,900 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2996 states and 4524 transitions. [2023-02-18 08:56:35,901 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 34 states. [2023-02-18 08:56:35,901 INFO L428 stractBuchiCegarLoop]: Abstraction has 2996 states and 4524 transitions. [2023-02-18 08:56:35,901 INFO L335 stractBuchiCegarLoop]: ======== Iteration 54 ============ [2023-02-18 08:56:35,901 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2996 states and 4524 transitions. [2023-02-18 08:56:35,909 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 230 [2023-02-18 08:56:35,909 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:35,909 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:35,911 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:35,911 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [69, 69, 51, 51, 51, 51, 18, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:35,912 INFO L748 eck$LassoCheckResult]: Stem: 225254#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 225194#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; 225195#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 225223#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; 225212#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 225213#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 225490#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 225486#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 225487#$Ultimate##0 ~n := #in~n; 225491#L25 assume ~n <= 0;#res := 1; 225488#factFINAL assume true; 225485#factEXIT >#68#return; 225481#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 225482#$Ultimate##0 ~n := #in~n; 225489#L25 assume ~n <= 0;#res := 1; 225484#factFINAL assume true; 225480#factEXIT >#70#return; 225477#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 225478#$Ultimate##0 ~n := #in~n; 225483#L25 assume ~n <= 0;#res := 1; 225479#factFINAL assume true; 225476#factEXIT >#72#return; 225475#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 225474#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 225472#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 225469#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 225466#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 225454#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 225455#$Ultimate##0 ~n := #in~n; 225473#L25 assume !(~n <= 0); 225463#L26 call #t~ret0 := fact(~n - 1);< 225464#$Ultimate##0 ~n := #in~n; 225471#L25 assume ~n <= 0;#res := 1; 225468#factFINAL assume true; 225462#factEXIT >#66#return; 225461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225459#factFINAL assume true; 225453#factEXIT >#74#return; 225449#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 225450#$Ultimate##0 ~n := #in~n; 225465#L25 assume ~n <= 0;#res := 1; 225452#factFINAL assume true; 225448#factEXIT >#76#return; 225444#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 225445#$Ultimate##0 ~n := #in~n; 225460#L25 assume !(~n <= 0); 225457#L26 call #t~ret0 := fact(~n - 1);< 225458#$Ultimate##0 ~n := #in~n; 225470#L25 assume ~n <= 0;#res := 1; 225467#factFINAL assume true; 225456#factEXIT >#66#return; 225451#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225447#factFINAL assume true; 225443#factEXIT >#78#return; 225441#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 225438#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 225437#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 225434#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 225430#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 225426#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 225427#$Ultimate##0 ~n := #in~n; 225440#L25 assume !(~n <= 0); 225419#L26 call #t~ret0 := fact(~n - 1);< 225424#$Ultimate##0 ~n := #in~n; 225446#L25 assume !(~n <= 0); 225421#L26 call #t~ret0 := fact(~n - 1);< 225436#$Ultimate##0 ~n := #in~n; 225442#L25 assume ~n <= 0;#res := 1; 225439#factFINAL assume true; 225435#factEXIT >#66#return; 225432#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225429#factFINAL assume true; 225418#factEXIT >#66#return; 225423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225494#factFINAL assume true; 225425#factEXIT >#74#return; 225411#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 225412#$Ultimate##0 ~n := #in~n; 225416#L25 assume ~n <= 0;#res := 1; 225414#factFINAL assume true; 225410#factEXIT >#76#return; 225405#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 225406#$Ultimate##0 ~n := #in~n; 225433#L25 assume !(~n <= 0); 225420#L26 call #t~ret0 := fact(~n - 1);< 225424#$Ultimate##0 ~n := #in~n; 225446#L25 assume !(~n <= 0); 225421#L26 call #t~ret0 := fact(~n - 1);< 225436#$Ultimate##0 ~n := #in~n; 225442#L25 assume ~n <= 0;#res := 1; 225439#factFINAL assume true; 225435#factEXIT >#66#return; 225432#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225429#factFINAL assume true; 225418#factEXIT >#66#return; 225417#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225408#factFINAL assume true; 225404#factEXIT >#78#return; 225401#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 225399#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 225396#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 225391#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 225388#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 225384#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 225385#$Ultimate##0 ~n := #in~n; 225398#L25 assume !(~n <= 0); 225394#L26 call #t~ret0 := fact(~n - 1);< 225395#$Ultimate##0 ~n := #in~n; 225409#L25 assume !(~n <= 0); 225393#L26 call #t~ret0 := fact(~n - 1);< 225403#$Ultimate##0 ~n := #in~n; 225409#L25 assume !(~n <= 0); 225393#L26 call #t~ret0 := fact(~n - 1);< 225403#$Ultimate##0 ~n := #in~n; 225431#L25 assume ~n <= 0;#res := 1; 225428#factFINAL assume true; 225415#factEXIT >#66#return; 225413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225407#factFINAL assume true; 225402#factEXIT >#66#return; 225400#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225397#factFINAL assume true; 225392#factEXIT >#66#return; 225390#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225387#factFINAL assume true; 225383#factEXIT >#74#return; 225380#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 225381#$Ultimate##0 ~n := #in~n; 225386#L25 assume ~n <= 0;#res := 1; 225382#factFINAL assume true; 225379#factEXIT >#76#return; 225375#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 225377#$Ultimate##0 ~n := #in~n; 225378#L25 assume !(~n <= 0); 225369#L26 call #t~ret0 := fact(~n - 1);< 225372#$Ultimate##0 ~n := #in~n; 225376#L25 assume !(~n <= 0); 225368#L26 call #t~ret0 := fact(~n - 1);< 225500#$Ultimate##0 ~n := #in~n; 225376#L25 assume !(~n <= 0); 225368#L26 call #t~ret0 := fact(~n - 1);< 225500#$Ultimate##0 ~n := #in~n; 225508#L25 assume ~n <= 0;#res := 1; 225507#factFINAL assume true; 225506#factEXIT >#66#return; 225505#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225504#factFINAL assume true; 225503#factEXIT >#66#return; 225502#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225501#factFINAL assume true; 225498#factEXIT >#66#return; 225370#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 227692#factFINAL assume true; 226302#factEXIT >#78#return; 226299#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 225197#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 226296#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 226295#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 226294#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 226293#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 226292#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 225799#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 225796#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 225797#$Ultimate##0 ~n := #in~n; 225917#L25 assume !(~n <= 0); 225864#L26 call #t~ret0 := fact(~n - 1);< 225880#$Ultimate##0 ~n := #in~n; 225919#L25 assume ~n <= 0;#res := 1; 225904#factFINAL assume true; 225856#factEXIT >#66#return; 225801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225798#factFINAL assume true; 225791#factEXIT >#68#return; 225785#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 225790#$Ultimate##0 ~n := #in~n; 225902#L25 assume ~n <= 0;#res := 1; 225855#factFINAL assume true; 225782#factEXIT >#70#return; 225779#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 225780#$Ultimate##0 ~n := #in~n; 225800#L25 assume !(~n <= 0); 225590#L26 call #t~ret0 := fact(~n - 1);< 225653#$Ultimate##0 ~n := #in~n; 225768#L25 assume ~n <= 0;#res := 1; 225756#factFINAL assume true; 225736#factEXIT >#66#return; 225741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225781#factFINAL assume true; 225778#factEXIT >#72#return; 225777#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 225776#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 225775#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 225774#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 225773#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 225556#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 225772#$Ultimate##0 ~n := #in~n; 225769#L25 assume !(~n <= 0); 225585#L26 call #t~ret0 := fact(~n - 1);< 225653#$Ultimate##0 ~n := #in~n; 225768#L25 assume ~n <= 0;#res := 1; 225756#factFINAL assume true; 225736#factEXIT >#66#return; 225743#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 226245#factFINAL assume true; 226243#factEXIT >#68#return; 225334#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 226080#$Ultimate##0 ~n := #in~n; 225937#L25 assume !(~n <= 0); 225591#L26 call #t~ret0 := fact(~n - 1);< 225670#$Ultimate##0 ~n := #in~n; 225768#L25 assume ~n <= 0;#res := 1; 225756#factFINAL assume true; 225736#factEXIT >#66#return; 225740#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 226141#factFINAL assume true; 226118#factEXIT >#70#return; 226104#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 226109#$Ultimate##0 ~n := #in~n; 226182#L25 assume ~n <= 0;#res := 1; 226111#factFINAL assume true; 226103#factEXIT >#72#return; 226107#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 226218#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 226216#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 226212#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 226210#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 225307#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 225634#$Ultimate##0 ~n := #in~n; 226147#L25 assume !(~n <= 0); 225572#L26 call #t~ret0 := fact(~n - 1);< 225684#$Ultimate##0 ~n := #in~n; 225664#L25 assume !(~n <= 0); 225577#L26 call #t~ret0 := fact(~n - 1);< 225668#$Ultimate##0 ~n := #in~n; 225663#L25 assume ~n <= 0;#res := 1; 225662#factFINAL assume true; 225656#factEXIT >#66#return; 225659#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 226088#factFINAL assume true; 225571#factEXIT >#66#return; 225601#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 226079#factFINAL assume true; 225306#factEXIT >#74#return; 225338#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 226080#$Ultimate##0 ~n := #in~n; 225937#L25 assume !(~n <= 0); 225591#L26 call #t~ret0 := fact(~n - 1);< 225670#$Ultimate##0 ~n := #in~n; 225768#L25 assume ~n <= 0;#res := 1; 225756#factFINAL assume true; 225736#factEXIT >#66#return; 225740#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 226141#factFINAL assume true; 226118#factEXIT >#76#return; 225344#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 226142#$Ultimate##0 ~n := #in~n; 226945#L25 assume !(~n <= 0); 225737#L26 call #t~ret0 := fact(~n - 1);< 225744#$Ultimate##0 ~n := #in~n; 225768#L25 assume ~n <= 0;#res := 1; 225756#factFINAL assume true; 225736#factEXIT >#66#return; 225740#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 226141#factFINAL assume true; 226118#factEXIT >#78#return; 226119#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 226269#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 226268#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 226267#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 226183#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 226184#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 227802#$Ultimate##0 ~n := #in~n; 227838#L25 assume !(~n <= 0); 225154#L26 call #t~ret0 := fact(~n - 1);< 227829#$Ultimate##0 ~n := #in~n; 227822#L25 assume !(~n <= 0); 225151#L26 call #t~ret0 := fact(~n - 1);< 227817#$Ultimate##0 ~n := #in~n; 227822#L25 assume !(~n <= 0); 225151#L26 call #t~ret0 := fact(~n - 1);< 227817#$Ultimate##0 ~n := #in~n; 227828#L25 assume ~n <= 0;#res := 1; 227847#factFINAL assume true; 227843#factEXIT >#66#return; 227842#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 227830#factFINAL assume true; 227823#factEXIT >#66#return; 227821#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 227816#factFINAL assume true; 227806#factEXIT >#66#return; 227804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 227801#factFINAL assume true; 227791#factEXIT >#74#return; 227767#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 227771#$Ultimate##0 ~n := #in~n; 227819#L25 assume !(~n <= 0); 227777#L26 call #t~ret0 := fact(~n - 1);< 227813#$Ultimate##0 ~n := #in~n; 227785#L25 assume ~n <= 0;#res := 1; 227784#factFINAL assume true; 227776#factEXIT >#66#return; 227782#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 227761#factFINAL assume true; 227770#factEXIT >#76#return; 227792#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 227802#$Ultimate##0 ~n := #in~n; 227838#L25 assume !(~n <= 0); 225154#L26 call #t~ret0 := fact(~n - 1);< 227829#$Ultimate##0 ~n := #in~n; 227822#L25 assume !(~n <= 0); 225151#L26 call #t~ret0 := fact(~n - 1);< 227817#$Ultimate##0 ~n := #in~n; 227828#L25 assume ~n <= 0;#res := 1; 227847#factFINAL assume true; 227843#factEXIT >#66#return; 227842#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 227830#factFINAL assume true; 227823#factEXIT >#66#return; 227824#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 227849#factFINAL assume true; 227848#factEXIT >#78#return; 225305#L30-8 [2023-02-18 08:56:35,912 INFO L750 eck$LassoCheckResult]: Loop: 225305#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 225224#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 225225#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 225304#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 225216#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 225217#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 225261#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 225262#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 225190#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 225191#$Ultimate##0 ~n := #in~n; 226030#L25 assume !(~n <= 0); 225586#L26 call #t~ret0 := fact(~n - 1);< 225684#$Ultimate##0 ~n := #in~n; 225664#L25 assume !(~n <= 0); 225577#L26 call #t~ret0 := fact(~n - 1);< 225668#$Ultimate##0 ~n := #in~n; 225664#L25 assume !(~n <= 0); 225577#L26 call #t~ret0 := fact(~n - 1);< 225668#$Ultimate##0 ~n := #in~n; 225664#L25 assume !(~n <= 0); 225577#L26 call #t~ret0 := fact(~n - 1);< 225668#$Ultimate##0 ~n := #in~n; 225664#L25 assume !(~n <= 0); 225577#L26 call #t~ret0 := fact(~n - 1);< 225668#$Ultimate##0 ~n := #in~n; 225663#L25 assume ~n <= 0;#res := 1; 225662#factFINAL assume true; 225656#factEXIT >#66#return; 225659#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 226088#factFINAL assume true; 225571#factEXIT >#66#return; 225604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225970#factFINAL assume true; 225964#factEXIT >#66#return; 225963#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225961#factFINAL assume true; 225953#factEXIT >#66#return; 225652#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225637#factFINAL assume true; 225643#factEXIT >#66#return; 225752#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 226028#factFINAL assume true; 226023#factEXIT >#68#return; 226021#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 226022#$Ultimate##0 ~n := #in~n; 226031#L25 assume ~n <= 0;#res := 1; 226029#factFINAL assume true; 226017#factEXIT >#70#return; 225731#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 225767#$Ultimate##0 ~n := #in~n; 225755#L25 assume !(~n <= 0); 225640#L26 call #t~ret0 := fact(~n - 1);< 225724#$Ultimate##0 ~n := #in~n; 225711#L25 assume !(~n <= 0); 225642#L26 call #t~ret0 := fact(~n - 1);< 225687#$Ultimate##0 ~n := #in~n; 225685#L25 assume !(~n <= 0); 225596#L26 call #t~ret0 := fact(~n - 1);< 225669#$Ultimate##0 ~n := #in~n; 225664#L25 assume !(~n <= 0); 225577#L26 call #t~ret0 := fact(~n - 1);< 225668#$Ultimate##0 ~n := #in~n; 225663#L25 assume ~n <= 0;#res := 1; 225662#factFINAL assume true; 225656#factEXIT >#66#return; 225659#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 226088#factFINAL assume true; 225571#factEXIT >#66#return; 225604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225970#factFINAL assume true; 225964#factEXIT >#66#return; 225963#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225961#factFINAL assume true; 225953#factEXIT >#66#return; 225753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 226278#factFINAL assume true; 226012#factEXIT >#72#return; 226013#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 226089#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 226087#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 226086#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 226084#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 225729#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 225746#$Ultimate##0 ~n := #in~n; 225747#L25 assume !(~n <= 0); 225638#L26 call #t~ret0 := fact(~n - 1);< 225724#$Ultimate##0 ~n := #in~n; 225711#L25 assume !(~n <= 0); 225642#L26 call #t~ret0 := fact(~n - 1);< 225687#$Ultimate##0 ~n := #in~n; 225685#L25 assume !(~n <= 0); 225596#L26 call #t~ret0 := fact(~n - 1);< 225669#$Ultimate##0 ~n := #in~n; 225664#L25 assume !(~n <= 0); 225577#L26 call #t~ret0 := fact(~n - 1);< 225668#$Ultimate##0 ~n := #in~n; 225663#L25 assume ~n <= 0;#res := 1; 225662#factFINAL assume true; 225656#factEXIT >#66#return; 225659#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 226088#factFINAL assume true; 225571#factEXIT >#66#return; 225604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225970#factFINAL assume true; 225964#factEXIT >#66#return; 225963#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225961#factFINAL assume true; 225953#factEXIT >#66#return; 225951#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225949#factFINAL assume true; 225939#factEXIT >#68#return; 225267#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 225713#$Ultimate##0 ~n := #in~n; 226229#L25 assume !(~n <= 0); 225739#L26 call #t~ret0 := fact(~n - 1);< 225744#$Ultimate##0 ~n := #in~n; 225768#L25 assume ~n <= 0;#res := 1; 225756#factFINAL assume true; 225736#factEXIT >#66#return; 225725#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225712#factFINAL assume true; 225700#factEXIT >#70#return; 225624#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 225693#$Ultimate##0 ~n := #in~n; 225691#L25 assume !(~n <= 0); 225639#L26 call #t~ret0 := fact(~n - 1);< 225687#$Ultimate##0 ~n := #in~n; 225685#L25 assume !(~n <= 0); 225596#L26 call #t~ret0 := fact(~n - 1);< 225669#$Ultimate##0 ~n := #in~n; 225664#L25 assume !(~n <= 0); 225577#L26 call #t~ret0 := fact(~n - 1);< 225668#$Ultimate##0 ~n := #in~n; 225664#L25 assume !(~n <= 0); 225577#L26 call #t~ret0 := fact(~n - 1);< 225668#$Ultimate##0 ~n := #in~n; 225663#L25 assume ~n <= 0;#res := 1; 225662#factFINAL assume true; 225656#factEXIT >#66#return; 225659#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 226088#factFINAL assume true; 225571#factEXIT >#66#return; 225604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225970#factFINAL assume true; 225964#factEXIT >#66#return; 225963#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225961#factFINAL assume true; 225953#factEXIT >#66#return; 225957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 227682#factFINAL assume true; 227683#factEXIT >#72#return; 225720#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 226003#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 226002#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 226001#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 225999#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 225941#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 225996#$Ultimate##0 ~n := #in~n; 226032#L25 assume !(~n <= 0); 225954#L26 call #t~ret0 := fact(~n - 1);< 226310#$Ultimate##0 ~n := #in~n; 226305#L25 assume !(~n <= 0); 225965#L26 call #t~ret0 := fact(~n - 1);< 227706#$Ultimate##0 ~n := #in~n; 227707#L25 assume !(~n <= 0); 225592#L26 call #t~ret0 := fact(~n - 1);< 225648#$Ultimate##0 ~n := #in~n; 225667#L25 assume !(~n <= 0); 225657#L26 call #t~ret0 := fact(~n - 1);< 225660#$Ultimate##0 ~n := #in~n; 225663#L25 assume ~n <= 0;#res := 1; 225662#factFINAL assume true; 225656#factEXIT >#66#return; 225659#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 226088#factFINAL assume true; 225571#factEXIT >#66#return; 225604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225970#factFINAL assume true; 225964#factEXIT >#66#return; 225963#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225961#factFINAL assume true; 225953#factEXIT >#66#return; 225951#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225949#factFINAL assume true; 225939#factEXIT >#68#return; 225286#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 225710#$Ultimate##0 ~n := #in~n; 225764#L25 assume !(~n <= 0); 225595#L26 call #t~ret0 := fact(~n - 1);< 225684#$Ultimate##0 ~n := #in~n; 225664#L25 assume !(~n <= 0); 225577#L26 call #t~ret0 := fact(~n - 1);< 225668#$Ultimate##0 ~n := #in~n; 225663#L25 assume ~n <= 0;#res := 1; 225662#factFINAL assume true; 225656#factEXIT >#66#return; 225659#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 226088#factFINAL assume true; 225571#factEXIT >#66#return; 225602#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225991#factFINAL assume true; 225984#factEXIT >#70#return; 225986#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 225992#$Ultimate##0 ~n := #in~n; 226027#L25 assume !(~n <= 0); 225597#L26 call #t~ret0 := fact(~n - 1);< 225648#$Ultimate##0 ~n := #in~n; 225667#L25 assume !(~n <= 0); 225657#L26 call #t~ret0 := fact(~n - 1);< 225660#$Ultimate##0 ~n := #in~n; 225663#L25 assume ~n <= 0;#res := 1; 225662#factFINAL assume true; 225656#factEXIT >#66#return; 225659#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 226088#factFINAL assume true; 225571#factEXIT >#66#return; 225602#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225991#factFINAL assume true; 225984#factEXIT >#72#return; 225987#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 225993#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 225990#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 225980#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 225979#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 225940#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 225948#$Ultimate##0 ~n := #in~n; 226233#L25 assume !(~n <= 0); 225738#L26 call #t~ret0 := fact(~n - 1);< 225959#$Ultimate##0 ~n := #in~n; 227591#L25 assume !(~n <= 0); 225658#L26 call #t~ret0 := fact(~n - 1);< 225969#$Ultimate##0 ~n := #in~n; 227702#L25 assume !(~n <= 0); 225579#L26 call #t~ret0 := fact(~n - 1);< 225661#$Ultimate##0 ~n := #in~n; 225667#L25 assume !(~n <= 0); 225657#L26 call #t~ret0 := fact(~n - 1);< 225660#$Ultimate##0 ~n := #in~n; 225663#L25 assume ~n <= 0;#res := 1; 225662#factFINAL assume true; 225656#factEXIT >#66#return; 225659#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 226088#factFINAL assume true; 225571#factEXIT >#66#return; 225604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225970#factFINAL assume true; 225964#factEXIT >#66#return; 225963#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225961#factFINAL assume true; 225953#factEXIT >#66#return; 225951#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225949#factFINAL assume true; 225939#factEXIT >#68#return; 225275#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 225710#$Ultimate##0 ~n := #in~n; 225764#L25 assume !(~n <= 0); 225595#L26 call #t~ret0 := fact(~n - 1);< 225684#$Ultimate##0 ~n := #in~n; 225664#L25 assume !(~n <= 0); 225577#L26 call #t~ret0 := fact(~n - 1);< 225668#$Ultimate##0 ~n := #in~n; 225664#L25 assume !(~n <= 0); 225577#L26 call #t~ret0 := fact(~n - 1);< 225668#$Ultimate##0 ~n := #in~n; 225664#L25 assume !(~n <= 0); 225577#L26 call #t~ret0 := fact(~n - 1);< 225668#$Ultimate##0 ~n := #in~n; 225663#L25 assume ~n <= 0;#res := 1; 225662#factFINAL assume true; 225656#factEXIT >#66#return; 225659#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 226088#factFINAL assume true; 225571#factEXIT >#66#return; 225604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225970#factFINAL assume true; 225964#factEXIT >#66#return; 225963#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225961#factFINAL assume true; 225953#factEXIT >#66#return; 225957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 227682#factFINAL assume true; 227683#factEXIT >#70#return; 225265#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 225714#$Ultimate##0 ~n := #in~n; 225762#L25 assume !(~n <= 0); 225573#L26 call #t~ret0 := fact(~n - 1);< 225653#$Ultimate##0 ~n := #in~n; 225768#L25 assume ~n <= 0;#res := 1; 225756#factFINAL assume true; 225736#factEXIT >#66#return; 225725#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225712#factFINAL assume true; 225700#factEXIT >#72#return; 225705#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 225962#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 225960#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 225952#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 225950#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 225943#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 225948#$Ultimate##0 ~n := #in~n; 226233#L25 assume !(~n <= 0); 225738#L26 call #t~ret0 := fact(~n - 1);< 225959#$Ultimate##0 ~n := #in~n; 227591#L25 assume !(~n <= 0); 225658#L26 call #t~ret0 := fact(~n - 1);< 225969#$Ultimate##0 ~n := #in~n; 227702#L25 assume !(~n <= 0); 225579#L26 call #t~ret0 := fact(~n - 1);< 225661#$Ultimate##0 ~n := #in~n; 225667#L25 assume !(~n <= 0); 225657#L26 call #t~ret0 := fact(~n - 1);< 225660#$Ultimate##0 ~n := #in~n; 225663#L25 assume ~n <= 0;#res := 1; 225662#factFINAL assume true; 225656#factEXIT >#66#return; 225659#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 226088#factFINAL assume true; 225571#factEXIT >#66#return; 225604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225970#factFINAL assume true; 225964#factEXIT >#66#return; 225963#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225961#factFINAL assume true; 225953#factEXIT >#66#return; 225951#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225949#factFINAL assume true; 225939#factEXIT >#68#return; 225268#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 225710#$Ultimate##0 ~n := #in~n; 225764#L25 assume !(~n <= 0); 225595#L26 call #t~ret0 := fact(~n - 1);< 225684#$Ultimate##0 ~n := #in~n; 225664#L25 assume !(~n <= 0); 225577#L26 call #t~ret0 := fact(~n - 1);< 225668#$Ultimate##0 ~n := #in~n; 225664#L25 assume !(~n <= 0); 225577#L26 call #t~ret0 := fact(~n - 1);< 225668#$Ultimate##0 ~n := #in~n; 225663#L25 assume ~n <= 0;#res := 1; 225662#factFINAL assume true; 225656#factEXIT >#66#return; 225659#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 226088#factFINAL assume true; 225571#factEXIT >#66#return; 225604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225970#factFINAL assume true; 225964#factEXIT >#66#return; 225649#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 225612#factFINAL assume true; 225631#factEXIT >#70#return; 225274#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 225714#$Ultimate##0 ~n := #in~n; 225762#L25 assume ~n <= 0;#res := 1; 225297#factFINAL assume true; 225263#factEXIT >#72#return; 225292#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 227920#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 227916#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 227914#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 227910#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 227875#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 227906#$Ultimate##0 ~n := #in~n; 227874#L25 assume !(~n <= 0); 225152#L26 call #t~ret0 := fact(~n - 1);< 227814#$Ultimate##0 ~n := #in~n; 227822#L25 assume !(~n <= 0); 225151#L26 call #t~ret0 := fact(~n - 1);< 227817#$Ultimate##0 ~n := #in~n; 227822#L25 assume !(~n <= 0); 225151#L26 call #t~ret0 := fact(~n - 1);< 227817#$Ultimate##0 ~n := #in~n; 227822#L25 assume !(~n <= 0); 225151#L26 call #t~ret0 := fact(~n - 1);< 227817#$Ultimate##0 ~n := #in~n; 227822#L25 assume !(~n <= 0); 225151#L26 call #t~ret0 := fact(~n - 1);< 227817#$Ultimate##0 ~n := #in~n; 227828#L25 assume ~n <= 0;#res := 1; 227847#factFINAL assume true; 227843#factEXIT >#66#return; 227842#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 227830#factFINAL assume true; 227823#factEXIT >#66#return; 227821#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 227816#factFINAL assume true; 227806#factEXIT >#66#return; 227810#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 227921#factFINAL assume true; 225149#factEXIT >#66#return; 225159#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 227882#factFINAL assume true; 227861#factEXIT >#66#return; 227863#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 227907#factFINAL assume true; 227908#factEXIT >#74#return; 227885#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 227903#$Ultimate##0 ~n := #in~n; 227884#L25 assume !(~n <= 0); 227808#L26 call #t~ret0 := fact(~n - 1);< 227818#$Ultimate##0 ~n := #in~n; 227832#L25 assume !(~n <= 0); 225201#L26 call #t~ret0 := fact(~n - 1);< 227827#$Ultimate##0 ~n := #in~n; 225241#L25 assume !(~n <= 0); 225200#L26 call #t~ret0 := fact(~n - 1);< 225202#$Ultimate##0 ~n := #in~n; 227828#L25 assume ~n <= 0;#res := 1; 227847#factFINAL assume true; 227843#factEXIT >#66#return; 227842#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 227830#factFINAL assume true; 227823#factEXIT >#66#return; 227821#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 227816#factFINAL assume true; 227806#factEXIT >#66#return; 227812#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 227904#factFINAL assume true; 227901#factEXIT >#76#return; 227749#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 227851#$Ultimate##0 ~n := #in~n; 227883#L25 assume !(~n <= 0); 227778#L26 call #t~ret0 := fact(~n - 1);< 227783#$Ultimate##0 ~n := #in~n; 227785#L25 assume ~n <= 0;#res := 1; 227784#factFINAL assume true; 227776#factEXIT >#66#return; 227773#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 227774#factFINAL assume true; 227748#factEXIT >#78#return; 225305#L30-8 [2023-02-18 08:56:35,913 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:35,913 INFO L85 PathProgramCache]: Analyzing trace with hash 2135700754, now seen corresponding path program 41 times [2023-02-18 08:56:35,913 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:35,913 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1053036536] [2023-02-18 08:56:35,913 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:35,913 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:35,922 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:35,922 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1774623412] [2023-02-18 08:56:35,922 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:56:35,923 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:35,923 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:35,926 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-18 08:56:35,927 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-18 08:56:36,184 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 17 check-sat command(s) [2023-02-18 08:56:36,184 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:36,184 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:36,266 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:36,317 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:36,318 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:36,318 INFO L85 PathProgramCache]: Analyzing trace with hash 989845644, now seen corresponding path program 42 times [2023-02-18 08:56:36,318 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:36,318 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [242343288] [2023-02-18 08:56:36,318 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:36,319 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:36,326 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:36,326 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1790203743] [2023-02-18 08:56:36,326 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:56:36,326 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:36,326 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:36,329 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-18 08:56:36,330 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-18 08:56:36,560 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 15 check-sat command(s) [2023-02-18 08:56:36,561 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:36,563 INFO L263 TraceCheckSpWp]: Trace formula consists of 622 conjuncts, 17 conjunts are in the unsatisfiable core [2023-02-18 08:56:36,566 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:36,612 INFO L134 CoverageAnalysis]: Checked inductivity of 12035 backedges. 1741 proven. 49 refuted. 0 times theorem prover too weak. 10245 trivial. 0 not checked. [2023-02-18 08:56:36,613 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:36,715 INFO L134 CoverageAnalysis]: Checked inductivity of 12035 backedges. 1105 proven. 88 refuted. 0 times theorem prover too weak. 10842 trivial. 0 not checked. [2023-02-18 08:56:36,715 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:36,716 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [242343288] [2023-02-18 08:56:36,716 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:36,716 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1790203743] [2023-02-18 08:56:36,716 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1790203743] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:36,716 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:36,716 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 17] total 18 [2023-02-18 08:56:36,716 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1728605041] [2023-02-18 08:56:36,716 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:36,717 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:36,717 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:36,717 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 18 interpolants. [2023-02-18 08:56:36,717 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=63, Invalid=243, Unknown=0, NotChecked=0, Total=306 [2023-02-18 08:56:36,718 INFO L87 Difference]: Start difference. First operand 2996 states and 4524 transitions. cyclomatic complexity: 1555 Second operand has 18 states, 17 states have (on average 3.588235294117647) internal successors, (61), 18 states have internal predecessors, (61), 12 states have call successors, (25), 2 states have call predecessors, (25), 6 states have return successors, (27), 11 states have call predecessors, (27), 12 states have call successors, (27) [2023-02-18 08:56:37,289 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:37,289 INFO L93 Difference]: Finished difference Result 3938 states and 5827 transitions. [2023-02-18 08:56:37,289 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 3938 states and 5827 transitions. [2023-02-18 08:56:37,307 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 263 [2023-02-18 08:56:37,319 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 3938 states to 2536 states and 3665 transitions. [2023-02-18 08:56:37,319 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 233 [2023-02-18 08:56:37,319 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 233 [2023-02-18 08:56:37,319 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2536 states and 3665 transitions. [2023-02-18 08:56:37,319 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:37,319 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2536 states and 3665 transitions. [2023-02-18 08:56:37,320 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2536 states and 3665 transitions. [2023-02-18 08:56:37,340 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2536 to 2266. [2023-02-18 08:56:37,342 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2266 states, 1413 states have (on average 1.0608634111818824) internal successors, (1499), 1407 states have internal predecessors, (1499), 670 states have call successors, (682), 223 states have call predecessors, (682), 183 states have return successors, (1099), 635 states have call predecessors, (1099), 670 states have call successors, (1099) [2023-02-18 08:56:37,348 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2266 states to 2266 states and 3280 transitions. [2023-02-18 08:56:37,348 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2266 states and 3280 transitions. [2023-02-18 08:56:37,349 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2023-02-18 08:56:37,349 INFO L428 stractBuchiCegarLoop]: Abstraction has 2266 states and 3280 transitions. [2023-02-18 08:56:37,349 INFO L335 stractBuchiCegarLoop]: ======== Iteration 55 ============ [2023-02-18 08:56:37,349 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2266 states and 3280 transitions. [2023-02-18 08:56:37,354 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 219 [2023-02-18 08:56:37,354 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:37,354 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:37,355 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:37,355 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [72, 72, 54, 54, 54, 54, 18, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:37,356 INFO L748 eck$LassoCheckResult]: Stem: 234786#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 234721#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; 234722#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 234752#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; 234741#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 234742#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 235039#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 235035#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 235036#$Ultimate##0 ~n := #in~n; 235038#L25 assume ~n <= 0;#res := 1; 235037#factFINAL assume true; 235034#factEXIT >#68#return; 235029#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 235030#$Ultimate##0 ~n := #in~n; 235032#L25 assume ~n <= 0;#res := 1; 235031#factFINAL assume true; 235028#factEXIT >#70#return; 235024#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 235025#$Ultimate##0 ~n := #in~n; 235033#L25 assume ~n <= 0;#res := 1; 235026#factFINAL assume true; 235023#factEXIT >#72#return; 235021#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 235020#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 235019#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 235017#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 235014#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 235002#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 235003#$Ultimate##0 ~n := #in~n; 235013#L25 assume !(~n <= 0); 235011#L26 call #t~ret0 := fact(~n - 1);< 235012#$Ultimate##0 ~n := #in~n; 235027#L25 assume ~n <= 0;#res := 1; 235016#factFINAL assume true; 235010#factEXIT >#66#return; 235009#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235008#factFINAL assume true; 235001#factEXIT >#74#return; 234997#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 234998#$Ultimate##0 ~n := #in~n; 235007#L25 assume ~n <= 0;#res := 1; 235000#factFINAL assume true; 234996#factEXIT >#76#return; 234993#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 234994#$Ultimate##0 ~n := #in~n; 235022#L25 assume !(~n <= 0); 235005#L26 call #t~ret0 := fact(~n - 1);< 235006#$Ultimate##0 ~n := #in~n; 235018#L25 assume ~n <= 0;#res := 1; 235015#factFINAL assume true; 235004#factEXIT >#66#return; 234999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 234995#factFINAL assume true; 234992#factEXIT >#78#return; 234991#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 234990#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 234985#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 234982#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 234974#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 234967#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 234968#$Ultimate##0 ~n := #in~n; 234984#L25 assume !(~n <= 0); 234960#L26 call #t~ret0 := fact(~n - 1);< 234964#$Ultimate##0 ~n := #in~n; 234975#L25 assume !(~n <= 0); 234959#L26 call #t~ret0 := fact(~n - 1);< 234981#$Ultimate##0 ~n := #in~n; 234986#L25 assume ~n <= 0;#res := 1; 234983#factFINAL assume true; 234980#factEXIT >#66#return; 234972#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 234971#factFINAL assume true; 234958#factEXIT >#66#return; 234963#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235047#factFINAL assume true; 234966#factEXIT >#74#return; 234952#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 234953#$Ultimate##0 ~n := #in~n; 234965#L25 assume ~n <= 0;#res := 1; 234957#factFINAL assume true; 234951#factEXIT >#76#return; 234946#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 234947#$Ultimate##0 ~n := #in~n; 234973#L25 assume !(~n <= 0); 234961#L26 call #t~ret0 := fact(~n - 1);< 234964#$Ultimate##0 ~n := #in~n; 234975#L25 assume !(~n <= 0); 234959#L26 call #t~ret0 := fact(~n - 1);< 234981#$Ultimate##0 ~n := #in~n; 234986#L25 assume ~n <= 0;#res := 1; 234983#factFINAL assume true; 234980#factEXIT >#66#return; 234972#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 234971#factFINAL assume true; 234958#factEXIT >#66#return; 234956#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 234950#factFINAL assume true; 234945#factEXIT >#78#return; 234942#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 234940#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 234936#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 234930#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 234926#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 234921#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 234922#$Ultimate##0 ~n := #in~n; 234939#L25 assume !(~n <= 0); 234933#L26 call #t~ret0 := fact(~n - 1);< 234935#$Ultimate##0 ~n := #in~n; 234949#L25 assume !(~n <= 0); 234934#L26 call #t~ret0 := fact(~n - 1);< 234944#$Ultimate##0 ~n := #in~n; 234949#L25 assume !(~n <= 0); 234934#L26 call #t~ret0 := fact(~n - 1);< 234944#$Ultimate##0 ~n := #in~n; 234970#L25 assume ~n <= 0;#res := 1; 234969#factFINAL assume true; 234955#factEXIT >#66#return; 234954#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 234948#factFINAL assume true; 234943#factEXIT >#66#return; 234941#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 234938#factFINAL assume true; 234932#factEXIT >#66#return; 234929#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 234925#factFINAL assume true; 234920#factEXIT >#74#return; 234916#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 234917#$Ultimate##0 ~n := #in~n; 234924#L25 assume ~n <= 0;#res := 1; 234919#factFINAL assume true; 234915#factEXIT >#76#return; 234903#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 234912#$Ultimate##0 ~n := #in~n; 234911#L25 assume !(~n <= 0); 234892#L26 call #t~ret0 := fact(~n - 1);< 234897#$Ultimate##0 ~n := #in~n; 234905#L25 assume !(~n <= 0); 234894#L26 call #t~ret0 := fact(~n - 1);< 234909#$Ultimate##0 ~n := #in~n; 234905#L25 assume !(~n <= 0); 234894#L26 call #t~ret0 := fact(~n - 1);< 234909#$Ultimate##0 ~n := #in~n; 234937#L25 assume ~n <= 0;#res := 1; 234931#factFINAL assume true; 234928#factEXIT >#66#return; 234923#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 234918#factFINAL assume true; 234914#factEXIT >#66#return; 234913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 234910#factFINAL assume true; 234907#factEXIT >#66#return; 234895#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 236615#factFINAL assume true; 236609#factEXIT >#78#return; 236607#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 234724#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 235620#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 235618#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 235599#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 235597#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 235595#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 235594#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 235588#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 235593#$Ultimate##0 ~n := #in~n; 235619#L25 assume !(~n <= 0); 235603#L26 call #t~ret0 := fact(~n - 1);< 235617#$Ultimate##0 ~n := #in~n; 235631#L25 assume ~n <= 0;#res := 1; 235623#factFINAL assume true; 235600#factEXIT >#66#return; 235598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235596#factFINAL assume true; 235587#factEXIT >#68#return; 235581#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 235584#$Ultimate##0 ~n := #in~n; 235638#L25 assume ~n <= 0;#res := 1; 235637#factFINAL assume true; 235578#factEXIT >#70#return; 235320#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 235577#$Ultimate##0 ~n := #in~n; 236340#L25 assume !(~n <= 0); 235187#L26 call #t~ret0 := fact(~n - 1);< 235205#$Ultimate##0 ~n := #in~n; 235257#L25 assume ~n <= 0;#res := 1; 235319#factFINAL assume true; 235300#factEXIT >#66#return; 235303#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235640#factFINAL assume true; 235576#factEXIT >#72#return; 235574#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 235573#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 235572#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 235571#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 235569#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 235321#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 235414#$Ultimate##0 ~n := #in~n; 235413#L25 assume !(~n <= 0); 235184#L26 call #t~ret0 := fact(~n - 1);< 235205#$Ultimate##0 ~n := #in~n; 235257#L25 assume ~n <= 0;#res := 1; 235319#factFINAL assume true; 235300#factEXIT >#66#return; 235304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235575#factFINAL assume true; 235567#factEXIT >#68#return; 234864#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 234878#$Ultimate##0 ~n := #in~n; 235730#L25 assume !(~n <= 0); 235194#L26 call #t~ret0 := fact(~n - 1);< 235330#$Ultimate##0 ~n := #in~n; 235257#L25 assume ~n <= 0;#res := 1; 235319#factFINAL assume true; 235300#factEXIT >#66#return; 235306#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235642#factFINAL assume true; 235556#factEXIT >#70#return; 235382#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 234821#$Ultimate##0 ~n := #in~n; 235394#L25 assume ~n <= 0;#res := 1; 235392#factFINAL assume true; 235380#factEXIT >#72#return; 235379#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 235378#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 235376#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 235375#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 235374#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 234840#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 235085#$Ultimate##0 ~n := #in~n; 235695#L25 assume !(~n <= 0); 235091#L26 call #t~ret0 := fact(~n - 1);< 235227#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235231#L25 assume ~n <= 0;#res := 1; 235224#factFINAL assume true; 235213#factEXIT >#66#return; 235211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235204#factFINAL assume true; 235183#factEXIT >#66#return; 235087#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235082#factFINAL assume true; 234836#factEXIT >#74#return; 234848#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 234878#$Ultimate##0 ~n := #in~n; 235730#L25 assume !(~n <= 0); 235194#L26 call #t~ret0 := fact(~n - 1);< 235330#$Ultimate##0 ~n := #in~n; 235257#L25 assume ~n <= 0;#res := 1; 235319#factFINAL assume true; 235300#factEXIT >#66#return; 235306#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235642#factFINAL assume true; 235556#factEXIT >#76#return; 234874#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 235636#$Ultimate##0 ~n := #in~n; 235633#L25 assume !(~n <= 0); 235302#L26 call #t~ret0 := fact(~n - 1);< 235307#$Ultimate##0 ~n := #in~n; 235257#L25 assume ~n <= 0;#res := 1; 235319#factFINAL assume true; 235300#factEXIT >#66#return; 235306#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235642#factFINAL assume true; 235556#factEXIT >#78#return; 235562#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 236623#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 236621#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 236619#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 236617#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 236618#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 236844#$Ultimate##0 ~n := #in~n; 236911#L25 assume !(~n <= 0); 234734#L26 call #t~ret0 := fact(~n - 1);< 236882#$Ultimate##0 ~n := #in~n; 236472#L25 assume !(~n <= 0); 234733#L26 call #t~ret0 := fact(~n - 1);< 234740#$Ultimate##0 ~n := #in~n; 236472#L25 assume !(~n <= 0); 234733#L26 call #t~ret0 := fact(~n - 1);< 234740#$Ultimate##0 ~n := #in~n; 236475#L25 assume ~n <= 0;#res := 1; 236912#factFINAL assume true; 236906#factEXIT >#66#return; 236904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 236887#factFINAL assume true; 236879#factEXIT >#66#return; 236881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 236889#factFINAL assume true; 236866#factEXIT >#66#return; 236871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 236859#factFINAL assume true; 236847#factEXIT >#74#return; 236825#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 236839#$Ultimate##0 ~n := #in~n; 236901#L25 assume !(~n <= 0); 236868#L26 call #t~ret0 := fact(~n - 1);< 236898#$Ultimate##0 ~n := #in~n; 236910#L25 assume ~n <= 0;#res := 1; 236903#factFINAL assume true; 236894#factEXIT >#66#return; 236892#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 236860#factFINAL assume true; 236848#factEXIT >#76#return; 236828#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 236844#$Ultimate##0 ~n := #in~n; 236911#L25 assume !(~n <= 0); 234734#L26 call #t~ret0 := fact(~n - 1);< 236882#$Ultimate##0 ~n := #in~n; 236472#L25 assume !(~n <= 0); 234733#L26 call #t~ret0 := fact(~n - 1);< 234740#$Ultimate##0 ~n := #in~n; 236475#L25 assume ~n <= 0;#res := 1; 236912#factFINAL assume true; 236906#factEXIT >#66#return; 236904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 236887#factFINAL assume true; 236879#factEXIT >#66#return; 236863#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 236854#factFINAL assume true; 236824#factEXIT >#78#return; 234703#L30-8 [2023-02-18 08:56:37,356 INFO L750 eck$LassoCheckResult]: Loop: 234703#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 234753#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 234754#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 236811#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 236810#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 236809#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 236808#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 234832#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 234705#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 234709#$Ultimate##0 ~n := #in~n; 236026#L25 assume !(~n <= 0); 235097#L26 call #t~ret0 := fact(~n - 1);< 235227#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235231#L25 assume ~n <= 0;#res := 1; 235224#factFINAL assume true; 235213#factEXIT >#66#return; 235211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235204#factFINAL assume true; 235183#factEXIT >#66#return; 235200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235248#factFINAL assume true; 235237#factEXIT >#66#return; 235232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235226#factFINAL assume true; 235218#factEXIT >#66#return; 235108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235119#factFINAL assume true; 235090#factEXIT >#66#return; 235111#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 236807#factFINAL assume true; 236806#factEXIT >#68#return; 234771#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 234778#$Ultimate##0 ~n := #in~n; 234770#L25 assume ~n <= 0;#res := 1; 234773#factFINAL assume true; 236805#factEXIT >#70#return; 235273#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 235717#$Ultimate##0 ~n := #in~n; 235716#L25 assume !(~n <= 0); 235094#L26 call #t~ret0 := fact(~n - 1);< 235259#$Ultimate##0 ~n := #in~n; 235255#L25 assume !(~n <= 0); 235092#L26 call #t~ret0 := fact(~n - 1);< 235230#$Ultimate##0 ~n := #in~n; 235229#L25 assume !(~n <= 0); 235096#L26 call #t~ret0 := fact(~n - 1);< 235203#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235231#L25 assume ~n <= 0;#res := 1; 235224#factFINAL assume true; 235213#factEXIT >#66#return; 235211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235204#factFINAL assume true; 235183#factEXIT >#66#return; 235200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235248#factFINAL assume true; 235237#factEXIT >#66#return; 235232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235226#factFINAL assume true; 235218#factEXIT >#66#return; 235110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 236804#factFINAL assume true; 236800#factEXIT >#72#return; 236803#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 236945#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 236943#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 236941#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 236939#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 235338#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 235359#$Ultimate##0 ~n := #in~n; 235373#L25 assume !(~n <= 0); 235103#L26 call #t~ret0 := fact(~n - 1);< 235259#$Ultimate##0 ~n := #in~n; 235255#L25 assume !(~n <= 0); 235092#L26 call #t~ret0 := fact(~n - 1);< 235230#$Ultimate##0 ~n := #in~n; 235229#L25 assume !(~n <= 0); 235096#L26 call #t~ret0 := fact(~n - 1);< 235203#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235231#L25 assume ~n <= 0;#res := 1; 235224#factFINAL assume true; 235213#factEXIT >#66#return; 235211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235204#factFINAL assume true; 235183#factEXIT >#66#return; 235200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235248#factFINAL assume true; 235237#factEXIT >#66#return; 235232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235226#factFINAL assume true; 235218#factEXIT >#66#return; 235108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235119#factFINAL assume true; 235090#factEXIT >#66#return; 235114#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235412#factFINAL assume true; 235335#factEXIT >#68#return; 234806#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 235173#$Ultimate##0 ~n := #in~n; 235331#L25 assume !(~n <= 0); 235301#L26 call #t~ret0 := fact(~n - 1);< 235307#$Ultimate##0 ~n := #in~n; 235257#L25 assume ~n <= 0;#res := 1; 235319#factFINAL assume true; 235300#factEXIT >#66#return; 235180#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235172#factFINAL assume true; 235157#factEXIT >#70#return; 235083#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 235084#$Ultimate##0 ~n := #in~n; 235244#L25 assume !(~n <= 0); 235098#L26 call #t~ret0 := fact(~n - 1);< 235230#$Ultimate##0 ~n := #in~n; 235229#L25 assume !(~n <= 0); 235096#L26 call #t~ret0 := fact(~n - 1);< 235203#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235231#L25 assume ~n <= 0;#res := 1; 235224#factFINAL assume true; 235213#factEXIT >#66#return; 235211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235204#factFINAL assume true; 235183#factEXIT >#66#return; 235200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235248#factFINAL assume true; 235237#factEXIT >#66#return; 235241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235276#factFINAL assume true; 235156#factEXIT >#72#return; 235152#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 236789#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 236786#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 236783#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 236779#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 235340#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 235359#$Ultimate##0 ~n := #in~n; 235373#L25 assume !(~n <= 0); 235103#L26 call #t~ret0 := fact(~n - 1);< 235259#$Ultimate##0 ~n := #in~n; 235255#L25 assume !(~n <= 0); 235092#L26 call #t~ret0 := fact(~n - 1);< 235230#$Ultimate##0 ~n := #in~n; 235229#L25 assume !(~n <= 0); 235096#L26 call #t~ret0 := fact(~n - 1);< 235203#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235231#L25 assume ~n <= 0;#res := 1; 235224#factFINAL assume true; 235213#factEXIT >#66#return; 235211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235204#factFINAL assume true; 235183#factEXIT >#66#return; 235200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235248#factFINAL assume true; 235237#factEXIT >#66#return; 235232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235226#factFINAL assume true; 235218#factEXIT >#66#return; 235108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235119#factFINAL assume true; 235090#factEXIT >#66#return; 235114#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235412#factFINAL assume true; 235335#factEXIT >#68#return; 234793#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 235175#$Ultimate##0 ~n := #in~n; 235334#L25 assume !(~n <= 0); 235099#L26 call #t~ret0 := fact(~n - 1);< 235227#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235231#L25 assume ~n <= 0;#res := 1; 235224#factFINAL assume true; 235213#factEXIT >#66#return; 235211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235204#factFINAL assume true; 235183#factEXIT >#66#return; 235181#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235176#factFINAL assume true; 235163#factEXIT >#70#return; 235142#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 235177#$Ultimate##0 ~n := #in~n; 235309#L25 assume !(~n <= 0); 235104#L26 call #t~ret0 := fact(~n - 1);< 235203#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235231#L25 assume ~n <= 0;#res := 1; 235224#factFINAL assume true; 235213#factEXIT >#66#return; 235211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235204#factFINAL assume true; 235183#factEXIT >#66#return; 235200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235248#factFINAL assume true; 235237#factEXIT >#66#return; 235241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235276#factFINAL assume true; 235156#factEXIT >#72#return; 235151#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 236774#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 236772#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 236770#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 236768#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 235344#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 235346#$Ultimate##0 ~n := #in~n; 235505#L25 assume !(~n <= 0); 235102#L26 call #t~ret0 := fact(~n - 1);< 235227#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235231#L25 assume ~n <= 0;#res := 1; 235224#factFINAL assume true; 235213#factEXIT >#66#return; 235211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235204#factFINAL assume true; 235183#factEXIT >#66#return; 235200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235248#factFINAL assume true; 235237#factEXIT >#66#return; 235232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235226#factFINAL assume true; 235218#factEXIT >#66#return; 235223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235358#factFINAL assume true; 235348#factEXIT >#68#return; 234807#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 235175#$Ultimate##0 ~n := #in~n; 235334#L25 assume !(~n <= 0); 235099#L26 call #t~ret0 := fact(~n - 1);< 235227#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235231#L25 assume ~n <= 0;#res := 1; 235224#factFINAL assume true; 235213#factEXIT >#66#return; 235211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235204#factFINAL assume true; 235183#factEXIT >#66#return; 235200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235248#factFINAL assume true; 235237#factEXIT >#66#return; 235241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235276#factFINAL assume true; 235156#factEXIT >#70#return; 234796#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 235174#$Ultimate##0 ~n := #in~n; 235310#L25 assume !(~n <= 0); 235186#L26 call #t~ret0 := fact(~n - 1);< 235205#$Ultimate##0 ~n := #in~n; 235257#L25 assume ~n <= 0;#res := 1; 235319#factFINAL assume true; 235300#factEXIT >#66#return; 235180#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235172#factFINAL assume true; 235157#factEXIT >#72#return; 235158#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 236763#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 236760#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 236757#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 235349#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 235290#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 235297#$Ultimate##0 ~n := #in~n; 235294#L25 assume !(~n <= 0); 235220#L26 call #t~ret0 := fact(~n - 1);< 235279#$Ultimate##0 ~n := #in~n; 235275#L25 assume !(~n <= 0); 235215#L26 call #t~ret0 := fact(~n - 1);< 235256#$Ultimate##0 ~n := #in~n; 235245#L25 assume !(~n <= 0); 235195#L26 call #t~ret0 := fact(~n - 1);< 235216#$Ultimate##0 ~n := #in~n; 235225#L25 assume !(~n <= 0); 235214#L26 call #t~ret0 := fact(~n - 1);< 235217#$Ultimate##0 ~n := #in~n; 235231#L25 assume ~n <= 0;#res := 1; 235224#factFINAL assume true; 235213#factEXIT >#66#return; 235211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235204#factFINAL assume true; 235183#factEXIT >#66#return; 235200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235248#factFINAL assume true; 235237#factEXIT >#66#return; 235232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235226#factFINAL assume true; 235218#factEXIT >#66#return; 235223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235358#factFINAL assume true; 235348#factEXIT >#68#return; 234814#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 235175#$Ultimate##0 ~n := #in~n; 235334#L25 assume !(~n <= 0); 235099#L26 call #t~ret0 := fact(~n - 1);< 235227#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235233#L25 assume !(~n <= 0); 235095#L26 call #t~ret0 := fact(~n - 1);< 235228#$Ultimate##0 ~n := #in~n; 235231#L25 assume ~n <= 0;#res := 1; 235224#factFINAL assume true; 235213#factEXIT >#66#return; 235211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235204#factFINAL assume true; 235183#factEXIT >#66#return; 235200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235248#factFINAL assume true; 235237#factEXIT >#66#return; 235232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235226#factFINAL assume true; 235218#factEXIT >#66#return; 235108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235119#factFINAL assume true; 235090#factEXIT >#66#return; 235109#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 235308#factFINAL assume true; 235182#factEXIT >#70#return; 234809#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 235174#$Ultimate##0 ~n := #in~n; 235310#L25 assume ~n <= 0;#res := 1; 234822#factFINAL assume true; 234790#factEXIT >#72#return; 234745#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 234746#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 234761#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 234784#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 234757#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 234758#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 234696#$Ultimate##0 ~n := #in~n; 236947#L25 assume !(~n <= 0); 234735#L26 call #t~ret0 := fact(~n - 1);< 236474#$Ultimate##0 ~n := #in~n; 236472#L25 assume !(~n <= 0); 234733#L26 call #t~ret0 := fact(~n - 1);< 234740#$Ultimate##0 ~n := #in~n; 236472#L25 assume !(~n <= 0); 234733#L26 call #t~ret0 := fact(~n - 1);< 234740#$Ultimate##0 ~n := #in~n; 236472#L25 assume !(~n <= 0); 234733#L26 call #t~ret0 := fact(~n - 1);< 234740#$Ultimate##0 ~n := #in~n; 236475#L25 assume ~n <= 0;#res := 1; 236912#factFINAL assume true; 236906#factEXIT >#66#return; 236904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 236887#factFINAL assume true; 236879#factEXIT >#66#return; 236881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 236889#factFINAL assume true; 236866#factEXIT >#66#return; 236865#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 236864#factFINAL assume true; 236856#factEXIT >#66#return; 236857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 236938#factFINAL assume true; 236823#factEXIT >#74#return; 236689#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 234696#$Ultimate##0 ~n := #in~n; 236947#L25 assume !(~n <= 0); 234735#L26 call #t~ret0 := fact(~n - 1);< 236474#$Ultimate##0 ~n := #in~n; 236472#L25 assume !(~n <= 0); 234733#L26 call #t~ret0 := fact(~n - 1);< 234740#$Ultimate##0 ~n := #in~n; 236472#L25 assume !(~n <= 0); 234733#L26 call #t~ret0 := fact(~n - 1);< 234740#$Ultimate##0 ~n := #in~n; 236472#L25 assume !(~n <= 0); 234733#L26 call #t~ret0 := fact(~n - 1);< 234740#$Ultimate##0 ~n := #in~n; 236475#L25 assume ~n <= 0;#res := 1; 236912#factFINAL assume true; 236906#factEXIT >#66#return; 236904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 236887#factFINAL assume true; 236879#factEXIT >#66#return; 236881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 236889#factFINAL assume true; 236866#factEXIT >#66#return; 236865#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 236864#factFINAL assume true; 236856#factEXIT >#66#return; 236857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 236938#factFINAL assume true; 236823#factEXIT >#76#return; 234702#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 236908#$Ultimate##0 ~n := #in~n; 236905#L25 assume !(~n <= 0); 236895#L26 call #t~ret0 := fact(~n - 1);< 236899#$Ultimate##0 ~n := #in~n; 236910#L25 assume ~n <= 0;#res := 1; 236903#factFINAL assume true; 236894#factEXIT >#66#return; 236897#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 236953#factFINAL assume true; 234701#factEXIT >#78#return; 234703#L30-8 [2023-02-18 08:56:37,356 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:37,357 INFO L85 PathProgramCache]: Analyzing trace with hash 2135700754, now seen corresponding path program 42 times [2023-02-18 08:56:37,357 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:37,357 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [37603307] [2023-02-18 08:56:37,357 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:37,357 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:37,364 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:37,364 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [468765817] [2023-02-18 08:56:37,364 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:56:37,364 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:37,365 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:37,368 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-18 08:56:37,368 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-18 08:56:37,622 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 17 check-sat command(s) [2023-02-18 08:56:37,622 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:37,622 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:37,716 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:37,750 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:37,750 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:37,751 INFO L85 PathProgramCache]: Analyzing trace with hash 585034596, now seen corresponding path program 43 times [2023-02-18 08:56:37,751 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:37,751 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1322813121] [2023-02-18 08:56:37,751 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:37,751 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:37,759 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:37,759 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1560349843] [2023-02-18 08:56:37,759 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:56:37,759 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:37,759 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:37,763 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-18 08:56:37,766 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-18 08:56:37,984 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:56:37,987 INFO L263 TraceCheckSpWp]: Trace formula consists of 962 conjuncts, 25 conjunts are in the unsatisfiable core [2023-02-18 08:56:37,990 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:38,064 INFO L134 CoverageAnalysis]: Checked inductivity of 13187 backedges. 3793 proven. 165 refuted. 0 times theorem prover too weak. 9229 trivial. 0 not checked. [2023-02-18 08:56:38,064 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:38,362 INFO L134 CoverageAnalysis]: Checked inductivity of 13187 backedges. 103 proven. 2807 refuted. 0 times theorem prover too weak. 10277 trivial. 0 not checked. [2023-02-18 08:56:38,362 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:38,362 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1322813121] [2023-02-18 08:56:38,362 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:38,362 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1560349843] [2023-02-18 08:56:38,363 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1560349843] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:38,363 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:38,363 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 25] total 28 [2023-02-18 08:56:38,363 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2008331337] [2023-02-18 08:56:38,363 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:38,363 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:38,363 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:38,363 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 28 interpolants. [2023-02-18 08:56:38,364 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=115, Invalid=641, Unknown=0, NotChecked=0, Total=756 [2023-02-18 08:56:38,364 INFO L87 Difference]: Start difference. First operand 2266 states and 3280 transitions. cyclomatic complexity: 1041 Second operand has 28 states, 25 states have (on average 2.76) internal successors, (69), 26 states have internal predecessors, (69), 16 states have call successors, (30), 2 states have call predecessors, (30), 12 states have return successors, (37), 13 states have call predecessors, (37), 16 states have call successors, (37) [2023-02-18 08:56:39,083 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:39,084 INFO L93 Difference]: Finished difference Result 2547 states and 3647 transitions. [2023-02-18 08:56:39,084 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2547 states and 3647 transitions. [2023-02-18 08:56:39,093 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 282 [2023-02-18 08:56:39,103 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2547 states to 2546 states and 3646 transitions. [2023-02-18 08:56:39,103 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 220 [2023-02-18 08:56:39,104 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 220 [2023-02-18 08:56:39,104 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2546 states and 3646 transitions. [2023-02-18 08:56:39,104 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:39,104 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2546 states and 3646 transitions. [2023-02-18 08:56:39,105 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2546 states and 3646 transitions. [2023-02-18 08:56:39,124 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2546 to 2275. [2023-02-18 08:56:39,126 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2275 states, 1419 states have (on average 1.0606060606060606) internal successors, (1505), 1413 states have internal predecessors, (1505), 672 states have call successors, (684), 225 states have call predecessors, (684), 184 states have return successors, (1104), 636 states have call predecessors, (1104), 672 states have call successors, (1104) [2023-02-18 08:56:39,132 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2275 states to 2275 states and 3293 transitions. [2023-02-18 08:56:39,132 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2275 states and 3293 transitions. [2023-02-18 08:56:39,133 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 28 states. [2023-02-18 08:56:39,133 INFO L428 stractBuchiCegarLoop]: Abstraction has 2275 states and 3293 transitions. [2023-02-18 08:56:39,133 INFO L335 stractBuchiCegarLoop]: ======== Iteration 56 ============ [2023-02-18 08:56:39,134 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2275 states and 3293 transitions. [2023-02-18 08:56:39,138 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 219 [2023-02-18 08:56:39,138 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:39,138 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:39,139 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:39,139 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [73, 73, 55, 55, 55, 55, 18, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:39,139 INFO L748 eck$LassoCheckResult]: Stem: 242336#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 242285#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; 242286#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 242306#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; 242337#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 242476#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 242474#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 242470#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 242471#$Ultimate##0 ~n := #in~n; 242475#L25 assume ~n <= 0;#res := 1; 242473#factFINAL assume true; 242469#factEXIT >#68#return; 242465#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 242466#$Ultimate##0 ~n := #in~n; 242472#L25 assume ~n <= 0;#res := 1; 242468#factFINAL assume true; 242464#factEXIT >#70#return; 242461#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 242462#$Ultimate##0 ~n := #in~n; 242467#L25 assume ~n <= 0;#res := 1; 242463#factFINAL assume true; 242460#factEXIT >#72#return; 242459#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 242458#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 242457#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 242456#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 242455#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 242441#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 242442#$Ultimate##0 ~n := #in~n; 242453#L25 assume !(~n <= 0); 242450#L26 call #t~ret0 := fact(~n - 1);< 242451#$Ultimate##0 ~n := #in~n; 242454#L25 assume ~n <= 0;#res := 1; 242452#factFINAL assume true; 242449#factEXIT >#66#return; 242448#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242445#factFINAL assume true; 242440#factEXIT >#74#return; 242438#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 242439#$Ultimate##0 ~n := #in~n; 242446#L25 assume ~n <= 0;#res := 1; 242444#factFINAL assume true; 242437#factEXIT >#76#return; 242418#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 242419#$Ultimate##0 ~n := #in~n; 242447#L25 assume !(~n <= 0); 242430#L26 call #t~ret0 := fact(~n - 1);< 242431#$Ultimate##0 ~n := #in~n; 242436#L25 assume ~n <= 0;#res := 1; 242435#factFINAL assume true; 242429#factEXIT >#66#return; 242427#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242426#factFINAL assume true; 242417#factEXIT >#78#return; 242411#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 242404#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 242401#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 242397#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 242390#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 242382#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 242385#$Ultimate##0 ~n := #in~n; 242400#L25 assume !(~n <= 0); 242394#L26 call #t~ret0 := fact(~n - 1);< 242396#$Ultimate##0 ~n := #in~n; 242410#L25 assume !(~n <= 0); 242393#L26 call #t~ret0 := fact(~n - 1);< 242409#$Ultimate##0 ~n := #in~n; 242432#L25 assume ~n <= 0;#res := 1; 242428#factFINAL assume true; 242425#factEXIT >#66#return; 242423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242415#factFINAL assume true; 242406#factEXIT >#66#return; 242408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242443#factFINAL assume true; 242424#factEXIT >#74#return; 242383#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 242422#$Ultimate##0 ~n := #in~n; 242434#L25 assume ~n <= 0;#res := 1; 242433#factFINAL assume true; 242421#factEXIT >#76#return; 242413#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 242414#$Ultimate##0 ~n := #in~n; 242416#L25 assume !(~n <= 0); 242395#L26 call #t~ret0 := fact(~n - 1);< 242396#$Ultimate##0 ~n := #in~n; 242410#L25 assume !(~n <= 0); 242393#L26 call #t~ret0 := fact(~n - 1);< 242409#$Ultimate##0 ~n := #in~n; 242432#L25 assume ~n <= 0;#res := 1; 242428#factFINAL assume true; 242425#factEXIT >#66#return; 242423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242415#factFINAL assume true; 242406#factEXIT >#66#return; 242407#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242420#factFINAL assume true; 242412#factEXIT >#78#return; 242405#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 242402#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 242398#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 242391#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 242387#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 242388#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 242503#$Ultimate##0 ~n := #in~n; 242512#L25 assume !(~n <= 0); 242508#L26 call #t~ret0 := fact(~n - 1);< 242510#$Ultimate##0 ~n := #in~n; 242517#L25 assume !(~n <= 0); 242509#L26 call #t~ret0 := fact(~n - 1);< 242515#$Ultimate##0 ~n := #in~n; 242517#L25 assume !(~n <= 0); 242509#L26 call #t~ret0 := fact(~n - 1);< 242515#$Ultimate##0 ~n := #in~n; 242521#L25 assume ~n <= 0;#res := 1; 242520#factFINAL assume true; 242519#factEXIT >#66#return; 242518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242516#factFINAL assume true; 242514#factEXIT >#66#return; 242513#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242511#factFINAL assume true; 242507#factEXIT >#66#return; 242506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242505#factFINAL assume true; 242502#factEXIT >#74#return; 242499#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 242500#$Ultimate##0 ~n := #in~n; 242504#L25 assume ~n <= 0;#res := 1; 242501#factFINAL assume true; 242498#factEXIT >#76#return; 242316#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 242494#$Ultimate##0 ~n := #in~n; 242495#L25 assume !(~n <= 0); 242361#L26 call #t~ret0 := fact(~n - 1);< 242365#$Ultimate##0 ~n := #in~n; 242493#L25 assume !(~n <= 0); 242363#L26 call #t~ret0 := fact(~n - 1);< 242542#$Ultimate##0 ~n := #in~n; 242493#L25 assume !(~n <= 0); 242363#L26 call #t~ret0 := fact(~n - 1);< 242542#$Ultimate##0 ~n := #in~n; 242550#L25 assume ~n <= 0;#res := 1; 242549#factFINAL assume true; 242548#factEXIT >#66#return; 242547#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242546#factFINAL assume true; 242545#factEXIT >#66#return; 242544#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242543#factFINAL assume true; 242540#factEXIT >#66#return; 242315#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242317#factFINAL assume true; 244277#factEXIT >#78#return; 244245#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 242288#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 244074#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 244073#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 244071#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 243437#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 243435#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 243028#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 243025#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 243026#$Ultimate##0 ~n := #in~n; 243052#L25 assume !(~n <= 0); 243037#L26 call #t~ret0 := fact(~n - 1);< 243050#$Ultimate##0 ~n := #in~n; 243174#L25 assume ~n <= 0;#res := 1; 243143#factFINAL assume true; 243033#factEXIT >#66#return; 243032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243031#factFINAL assume true; 243020#factEXIT >#68#return; 243009#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 243017#$Ultimate##0 ~n := #in~n; 243140#L25 assume ~n <= 0;#res := 1; 243139#factFINAL assume true; 243007#factEXIT >#70#return; 242884#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 242904#$Ultimate##0 ~n := #in~n; 242903#L25 assume !(~n <= 0); 242794#L26 call #t~ret0 := fact(~n - 1);< 242820#$Ultimate##0 ~n := #in~n; 242833#L25 assume ~n <= 0;#res := 1; 242823#factFINAL assume true; 242787#factEXIT >#66#return; 242799#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243029#factFINAL assume true; 243027#factEXIT >#72#return; 242900#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 242879#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 242878#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 242867#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 242866#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 242693#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 242853#$Ultimate##0 ~n := #in~n; 242847#L25 assume !(~n <= 0); 242791#L26 call #t~ret0 := fact(~n - 1);< 242820#$Ultimate##0 ~n := #in~n; 242833#L25 assume ~n <= 0;#res := 1; 242823#factFINAL assume true; 242787#factEXIT >#66#return; 242797#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243559#factFINAL assume true; 243552#factEXIT >#68#return; 242584#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 242898#$Ultimate##0 ~n := #in~n; 242896#L25 assume !(~n <= 0); 242676#L26 call #t~ret0 := fact(~n - 1);< 242801#$Ultimate##0 ~n := #in~n; 242833#L25 assume ~n <= 0;#res := 1; 242823#factFINAL assume true; 242787#factEXIT >#66#return; 242798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243126#factFINAL assume true; 242999#factEXIT >#70#return; 242565#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 242559#$Ultimate##0 ~n := #in~n; 242570#L25 assume ~n <= 0;#res := 1; 242560#factFINAL assume true; 242569#factEXIT >#72#return; 242734#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 242735#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 242963#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 242962#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 242960#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 242592#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 242652#$Ultimate##0 ~n := #in~n; 243734#L25 assume !(~n <= 0); 242665#L26 call #t~ret0 := fact(~n - 1);< 242821#$Ultimate##0 ~n := #in~n; 242887#L25 assume !(~n <= 0); 242661#L26 call #t~ret0 := fact(~n - 1);< 242851#$Ultimate##0 ~n := #in~n; 242856#L25 assume ~n <= 0;#res := 1; 242855#factFINAL assume true; 242849#factEXIT >#66#return; 242846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242842#factFINAL assume true; 242808#factEXIT >#66#return; 242818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242983#factFINAL assume true; 242572#factEXIT >#74#return; 242573#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 242898#$Ultimate##0 ~n := #in~n; 242896#L25 assume !(~n <= 0); 242676#L26 call #t~ret0 := fact(~n - 1);< 242801#$Ultimate##0 ~n := #in~n; 242833#L25 assume ~n <= 0;#res := 1; 242823#factFINAL assume true; 242787#factEXIT >#66#return; 242798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243126#factFINAL assume true; 242999#factEXIT >#76#return; 242609#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 243127#$Ultimate##0 ~n := #in~n; 243504#L25 assume !(~n <= 0); 242792#L26 call #t~ret0 := fact(~n - 1);< 242800#$Ultimate##0 ~n := #in~n; 242833#L25 assume ~n <= 0;#res := 1; 242823#factFINAL assume true; 242787#factEXIT >#66#return; 242798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243126#factFINAL assume true; 242999#factEXIT >#78#return; 243003#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 243137#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 243136#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 243134#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 243131#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 243132#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 243650#$Ultimate##0 ~n := #in~n; 243718#L25 assume !(~n <= 0); 242253#L26 call #t~ret0 := fact(~n - 1);< 243697#$Ultimate##0 ~n := #in~n; 243692#L25 assume !(~n <= 0); 242255#L26 call #t~ret0 := fact(~n - 1);< 243680#$Ultimate##0 ~n := #in~n; 243692#L25 assume !(~n <= 0); 242255#L26 call #t~ret0 := fact(~n - 1);< 243680#$Ultimate##0 ~n := #in~n; 243715#L25 assume ~n <= 0;#res := 1; 243714#factFINAL assume true; 243702#factEXIT >#66#return; 243685#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243679#factFINAL assume true; 243663#factEXIT >#66#return; 243668#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 244024#factFINAL assume true; 242252#factEXIT >#66#return; 242264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243660#factFINAL assume true; 243651#factEXIT >#74#return; 243635#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 243648#$Ultimate##0 ~n := #in~n; 243712#L25 assume !(~n <= 0); 242261#L26 call #t~ret0 := fact(~n - 1);< 243691#$Ultimate##0 ~n := #in~n; 243709#L25 assume ~n <= 0;#res := 1; 243706#factFINAL assume true; 243686#factEXIT >#66#return; 243675#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243672#factFINAL assume true; 243659#factEXIT >#76#return; 243634#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 243650#$Ultimate##0 ~n := #in~n; 243718#L25 assume !(~n <= 0); 242253#L26 call #t~ret0 := fact(~n - 1);< 243697#$Ultimate##0 ~n := #in~n; 243692#L25 assume !(~n <= 0); 242255#L26 call #t~ret0 := fact(~n - 1);< 243680#$Ultimate##0 ~n := #in~n; 243715#L25 assume ~n <= 0;#res := 1; 243714#factFINAL assume true; 243702#factEXIT >#66#return; 243685#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243679#factFINAL assume true; 243663#factEXIT >#66#return; 243658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243647#factFINAL assume true; 243629#factEXIT >#78#return; 243609#L30-8 [2023-02-18 08:56:39,140 INFO L750 eck$LassoCheckResult]: Loop: 243609#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 243608#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 243607#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 243606#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 243605#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 243604#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 243603#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 243602#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 243414#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 242282#$Ultimate##0 ~n := #in~n; 243416#L25 assume !(~n <= 0); 242673#L26 call #t~ret0 := fact(~n - 1);< 242821#$Ultimate##0 ~n := #in~n; 242887#L25 assume !(~n <= 0); 242661#L26 call #t~ret0 := fact(~n - 1);< 242851#$Ultimate##0 ~n := #in~n; 242887#L25 assume !(~n <= 0); 242661#L26 call #t~ret0 := fact(~n - 1);< 242851#$Ultimate##0 ~n := #in~n; 242887#L25 assume !(~n <= 0); 242661#L26 call #t~ret0 := fact(~n - 1);< 242851#$Ultimate##0 ~n := #in~n; 242856#L25 assume ~n <= 0;#res := 1; 242855#factFINAL assume true; 242849#factEXIT >#66#return; 242846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242842#factFINAL assume true; 242808#factEXIT >#66#return; 242817#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243806#factFINAL assume true; 242657#factEXIT >#66#return; 242681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242953#factFINAL assume true; 242948#factEXIT >#66#return; 242951#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243415#factFINAL assume true; 243413#factEXIT >#68#return; 243381#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 243387#$Ultimate##0 ~n := #in~n; 243389#L25 assume ~n <= 0;#res := 1; 243388#factFINAL assume true; 243380#factEXIT >#70#return; 243385#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 243405#$Ultimate##0 ~n := #in~n; 243920#L25 assume !(~n <= 0); 242719#L26 call #t~ret0 := fact(~n - 1);< 242954#$Ultimate##0 ~n := #in~n; 244053#L25 assume !(~n <= 0); 242666#L26 call #t~ret0 := fact(~n - 1);< 243103#$Ultimate##0 ~n := #in~n; 243553#L25 assume !(~n <= 0); 242670#L26 call #t~ret0 := fact(~n - 1);< 242685#$Ultimate##0 ~n := #in~n; 242887#L25 assume !(~n <= 0); 242661#L26 call #t~ret0 := fact(~n - 1);< 242851#$Ultimate##0 ~n := #in~n; 242856#L25 assume ~n <= 0;#res := 1; 242855#factFINAL assume true; 242849#factEXIT >#66#return; 242846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242842#factFINAL assume true; 242808#factEXIT >#66#return; 242817#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243806#factFINAL assume true; 242657#factEXIT >#66#return; 242681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242953#factFINAL assume true; 242948#factEXIT >#66#return; 242952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243919#factFINAL assume true; 243601#factEXIT >#72#return; 243403#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 243600#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 243599#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 243598#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 243597#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 242710#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 242707#$Ultimate##0 ~n := #in~n; 243736#L25 assume !(~n <= 0); 242708#L26 call #t~ret0 := fact(~n - 1);< 242712#$Ultimate##0 ~n := #in~n; 243105#L25 assume !(~n <= 0); 242677#L26 call #t~ret0 := fact(~n - 1);< 243104#$Ultimate##0 ~n := #in~n; 244026#L25 assume !(~n <= 0); 242812#L26 call #t~ret0 := fact(~n - 1);< 242860#$Ultimate##0 ~n := #in~n; 242857#L25 assume !(~n <= 0); 242850#L26 call #t~ret0 := fact(~n - 1);< 242852#$Ultimate##0 ~n := #in~n; 242856#L25 assume ~n <= 0;#res := 1; 242855#factFINAL assume true; 242849#factEXIT >#66#return; 242846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242842#factFINAL assume true; 242808#factEXIT >#66#return; 242817#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243806#factFINAL assume true; 242657#factEXIT >#66#return; 242681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242953#factFINAL assume true; 242948#factEXIT >#66#return; 242949#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242929#factFINAL assume true; 242916#factEXIT >#68#return; 242926#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 243068#$Ultimate##0 ~n := #in~n; 243087#L25 assume !(~n <= 0); 242790#L26 call #t~ret0 := fact(~n - 1);< 242800#$Ultimate##0 ~n := #in~n; 242833#L25 assume ~n <= 0;#res := 1; 242823#factFINAL assume true; 242787#factEXIT >#66#return; 242796#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243067#factFINAL assume true; 242940#factEXIT >#70#return; 242633#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 242651#$Ultimate##0 ~n := #in~n; 243369#L25 assume !(~n <= 0); 242663#L26 call #t~ret0 := fact(~n - 1);< 243103#$Ultimate##0 ~n := #in~n; 243553#L25 assume !(~n <= 0); 242670#L26 call #t~ret0 := fact(~n - 1);< 242685#$Ultimate##0 ~n := #in~n; 242887#L25 assume !(~n <= 0); 242661#L26 call #t~ret0 := fact(~n - 1);< 242851#$Ultimate##0 ~n := #in~n; 242887#L25 assume !(~n <= 0); 242661#L26 call #t~ret0 := fact(~n - 1);< 242851#$Ultimate##0 ~n := #in~n; 242887#L25 assume !(~n <= 0); 242661#L26 call #t~ret0 := fact(~n - 1);< 242851#$Ultimate##0 ~n := #in~n; 242856#L25 assume ~n <= 0;#res := 1; 242855#factFINAL assume true; 242849#factEXIT >#66#return; 242846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242842#factFINAL assume true; 242808#factEXIT >#66#return; 242817#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243806#factFINAL assume true; 242657#factEXIT >#66#return; 242681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242953#factFINAL assume true; 242948#factEXIT >#66#return; 242728#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242716#factFINAL assume true; 242721#factEXIT >#66#return; 242654#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242615#factFINAL assume true; 242650#factEXIT >#72#return; 242873#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 243592#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 243591#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 243590#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 243365#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 242711#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 242707#$Ultimate##0 ~n := #in~n; 243736#L25 assume !(~n <= 0); 242708#L26 call #t~ret0 := fact(~n - 1);< 242712#$Ultimate##0 ~n := #in~n; 243105#L25 assume !(~n <= 0); 242677#L26 call #t~ret0 := fact(~n - 1);< 243104#$Ultimate##0 ~n := #in~n; 244026#L25 assume !(~n <= 0); 242812#L26 call #t~ret0 := fact(~n - 1);< 242860#$Ultimate##0 ~n := #in~n; 242857#L25 assume !(~n <= 0); 242850#L26 call #t~ret0 := fact(~n - 1);< 242852#$Ultimate##0 ~n := #in~n; 242856#L25 assume ~n <= 0;#res := 1; 242855#factFINAL assume true; 242849#factEXIT >#66#return; 242846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242842#factFINAL assume true; 242808#factEXIT >#66#return; 242817#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243806#factFINAL assume true; 242657#factEXIT >#66#return; 242681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242953#factFINAL assume true; 242948#factEXIT >#66#return; 242949#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242929#factFINAL assume true; 242916#factEXIT >#68#return; 242642#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 242614#$Ultimate##0 ~n := #in~n; 242997#L25 assume !(~n <= 0); 242674#L26 call #t~ret0 := fact(~n - 1);< 242821#$Ultimate##0 ~n := #in~n; 242887#L25 assume !(~n <= 0); 242661#L26 call #t~ret0 := fact(~n - 1);< 242851#$Ultimate##0 ~n := #in~n; 242856#L25 assume ~n <= 0;#res := 1; 242855#factFINAL assume true; 242849#factEXIT >#66#return; 242846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242842#factFINAL assume true; 242808#factEXIT >#66#return; 242816#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243122#factFINAL assume true; 243116#factEXIT >#70#return; 243118#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 243123#$Ultimate##0 ~n := #in~n; 243141#L25 assume !(~n <= 0); 242814#L26 call #t~ret0 := fact(~n - 1);< 242860#$Ultimate##0 ~n := #in~n; 242857#L25 assume !(~n <= 0); 242850#L26 call #t~ret0 := fact(~n - 1);< 242852#$Ultimate##0 ~n := #in~n; 242856#L25 assume ~n <= 0;#res := 1; 242855#factFINAL assume true; 242849#factEXIT >#66#return; 242846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242842#factFINAL assume true; 242808#factEXIT >#66#return; 242816#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243122#factFINAL assume true; 243116#factEXIT >#72#return; 243120#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 243362#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 243360#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 243359#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 243357#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 242912#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 242928#$Ultimate##0 ~n := #in~n; 242915#L25 assume !(~n <= 0); 242788#L26 call #t~ret0 := fact(~n - 1);< 242908#$Ultimate##0 ~n := #in~n; 242907#L25 assume !(~n <= 0); 242660#L26 call #t~ret0 := fact(~n - 1);< 242885#$Ultimate##0 ~n := #in~n; 242883#L25 assume !(~n <= 0); 242813#L26 call #t~ret0 := fact(~n - 1);< 242861#$Ultimate##0 ~n := #in~n; 242857#L25 assume !(~n <= 0); 242850#L26 call #t~ret0 := fact(~n - 1);< 242852#$Ultimate##0 ~n := #in~n; 242856#L25 assume ~n <= 0;#res := 1; 242855#factFINAL assume true; 242849#factEXIT >#66#return; 242846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242842#factFINAL assume true; 242808#factEXIT >#66#return; 242817#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243806#factFINAL assume true; 242657#factEXIT >#66#return; 242681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242953#factFINAL assume true; 242948#factEXIT >#66#return; 242949#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242929#factFINAL assume true; 242916#factEXIT >#68#return; 242624#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 242614#$Ultimate##0 ~n := #in~n; 242997#L25 assume !(~n <= 0); 242674#L26 call #t~ret0 := fact(~n - 1);< 242821#$Ultimate##0 ~n := #in~n; 242887#L25 assume !(~n <= 0); 242661#L26 call #t~ret0 := fact(~n - 1);< 242851#$Ultimate##0 ~n := #in~n; 242887#L25 assume !(~n <= 0); 242661#L26 call #t~ret0 := fact(~n - 1);< 242851#$Ultimate##0 ~n := #in~n; 242887#L25 assume !(~n <= 0); 242661#L26 call #t~ret0 := fact(~n - 1);< 242851#$Ultimate##0 ~n := #in~n; 242887#L25 assume !(~n <= 0); 242661#L26 call #t~ret0 := fact(~n - 1);< 242851#$Ultimate##0 ~n := #in~n; 242856#L25 assume ~n <= 0;#res := 1; 242855#factFINAL assume true; 242849#factEXIT >#66#return; 242846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242842#factFINAL assume true; 242808#factEXIT >#66#return; 242817#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243806#factFINAL assume true; 242657#factEXIT >#66#return; 242681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242953#factFINAL assume true; 242948#factEXIT >#66#return; 242728#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242716#factFINAL assume true; 242721#factEXIT >#66#return; 242654#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242615#factFINAL assume true; 242650#factEXIT >#70#return; 242828#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 242888#$Ultimate##0 ~n := #in~n; 242862#L25 assume !(~n <= 0); 242793#L26 call #t~ret0 := fact(~n - 1);< 242820#$Ultimate##0 ~n := #in~n; 242833#L25 assume ~n <= 0;#res := 1; 242823#factFINAL assume true; 242787#factEXIT >#66#return; 242796#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243067#factFINAL assume true; 242940#factEXIT >#72#return; 242938#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 242936#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 242934#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 242932#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 242930#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 242910#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 242928#$Ultimate##0 ~n := #in~n; 242915#L25 assume !(~n <= 0); 242788#L26 call #t~ret0 := fact(~n - 1);< 242908#$Ultimate##0 ~n := #in~n; 242907#L25 assume !(~n <= 0); 242660#L26 call #t~ret0 := fact(~n - 1);< 242885#$Ultimate##0 ~n := #in~n; 242883#L25 assume !(~n <= 0); 242813#L26 call #t~ret0 := fact(~n - 1);< 242861#$Ultimate##0 ~n := #in~n; 242857#L25 assume !(~n <= 0); 242850#L26 call #t~ret0 := fact(~n - 1);< 242852#$Ultimate##0 ~n := #in~n; 242856#L25 assume ~n <= 0;#res := 1; 242855#factFINAL assume true; 242849#factEXIT >#66#return; 242846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242842#factFINAL assume true; 242808#factEXIT >#66#return; 242817#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243806#factFINAL assume true; 242657#factEXIT >#66#return; 242681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242953#factFINAL assume true; 242948#factEXIT >#66#return; 242949#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242929#factFINAL assume true; 242916#factEXIT >#68#return; 242649#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 242614#$Ultimate##0 ~n := #in~n; 242997#L25 assume !(~n <= 0); 242674#L26 call #t~ret0 := fact(~n - 1);< 242821#$Ultimate##0 ~n := #in~n; 242887#L25 assume !(~n <= 0); 242661#L26 call #t~ret0 := fact(~n - 1);< 242851#$Ultimate##0 ~n := #in~n; 242887#L25 assume !(~n <= 0); 242661#L26 call #t~ret0 := fact(~n - 1);< 242851#$Ultimate##0 ~n := #in~n; 242887#L25 assume !(~n <= 0); 242661#L26 call #t~ret0 := fact(~n - 1);< 242851#$Ultimate##0 ~n := #in~n; 242856#L25 assume ~n <= 0;#res := 1; 242855#factFINAL assume true; 242849#factEXIT >#66#return; 242846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242842#factFINAL assume true; 242808#factEXIT >#66#return; 242817#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243806#factFINAL assume true; 242657#factEXIT >#66#return; 242681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242953#factFINAL assume true; 242948#factEXIT >#66#return; 242947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242946#factFINAL assume true; 242890#factEXIT >#70#return; 242826#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 242888#$Ultimate##0 ~n := #in~n; 242862#L25 assume ~n <= 0;#res := 1; 242863#factFINAL assume true; 242975#factEXIT >#72#return; 242976#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 243900#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 243899#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 243896#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 243893#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 242656#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 242249#$Ultimate##0 ~n := #in~n; 243907#L25 assume !(~n <= 0); 242262#L26 call #t~ret0 := fact(~n - 1);< 243698#$Ultimate##0 ~n := #in~n; 243692#L25 assume !(~n <= 0); 242255#L26 call #t~ret0 := fact(~n - 1);< 243680#$Ultimate##0 ~n := #in~n; 243692#L25 assume !(~n <= 0); 242255#L26 call #t~ret0 := fact(~n - 1);< 243680#$Ultimate##0 ~n := #in~n; 243692#L25 assume !(~n <= 0); 242255#L26 call #t~ret0 := fact(~n - 1);< 243680#$Ultimate##0 ~n := #in~n; 243692#L25 assume !(~n <= 0); 242255#L26 call #t~ret0 := fact(~n - 1);< 243680#$Ultimate##0 ~n := #in~n; 243715#L25 assume ~n <= 0;#res := 1; 243714#factFINAL assume true; 243702#factEXIT >#66#return; 243685#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243679#factFINAL assume true; 243663#factEXIT >#66#return; 243668#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 244024#factFINAL assume true; 242252#factEXIT >#66#return; 242265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243720#factFINAL assume true; 243699#factEXIT >#66#return; 243694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242275#factFINAL assume true; 242276#factEXIT >#66#return; 243696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243892#factFINAL assume true; 243865#factEXIT >#74#return; 243716#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 242249#$Ultimate##0 ~n := #in~n; 243907#L25 assume !(~n <= 0); 242262#L26 call #t~ret0 := fact(~n - 1);< 243698#$Ultimate##0 ~n := #in~n; 243692#L25 assume !(~n <= 0); 242255#L26 call #t~ret0 := fact(~n - 1);< 243680#$Ultimate##0 ~n := #in~n; 243692#L25 assume !(~n <= 0); 242255#L26 call #t~ret0 := fact(~n - 1);< 243680#$Ultimate##0 ~n := #in~n; 243692#L25 assume !(~n <= 0); 242255#L26 call #t~ret0 := fact(~n - 1);< 243680#$Ultimate##0 ~n := #in~n; 243692#L25 assume !(~n <= 0); 242255#L26 call #t~ret0 := fact(~n - 1);< 243680#$Ultimate##0 ~n := #in~n; 243715#L25 assume ~n <= 0;#res := 1; 243714#factFINAL assume true; 243702#factEXIT >#66#return; 243685#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243679#factFINAL assume true; 243663#factEXIT >#66#return; 243668#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 244024#factFINAL assume true; 242252#factEXIT >#66#return; 242265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243720#factFINAL assume true; 243699#factEXIT >#66#return; 243694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 242275#factFINAL assume true; 242276#factEXIT >#66#return; 243696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243892#factFINAL assume true; 243865#factEXIT >#76#return; 243611#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 243614#$Ultimate##0 ~n := #in~n; 243708#L25 assume !(~n <= 0); 243688#L26 call #t~ret0 := fact(~n - 1);< 243690#$Ultimate##0 ~n := #in~n; 243709#L25 assume ~n <= 0;#res := 1; 243706#factFINAL assume true; 243686#factEXIT >#66#return; 243689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 243918#factFINAL assume true; 243610#factEXIT >#78#return; 243609#L30-8 [2023-02-18 08:56:39,140 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:39,140 INFO L85 PathProgramCache]: Analyzing trace with hash 2135700754, now seen corresponding path program 43 times [2023-02-18 08:56:39,141 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:39,141 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1896365627] [2023-02-18 08:56:39,141 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:39,141 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:39,150 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:39,150 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [205610186] [2023-02-18 08:56:39,150 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:56:39,150 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:39,150 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:39,152 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-18 08:56:39,153 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-18 08:56:39,397 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:39,397 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:39,474 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:39,506 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:39,506 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:39,506 INFO L85 PathProgramCache]: Analyzing trace with hash -1742468724, now seen corresponding path program 44 times [2023-02-18 08:56:39,506 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:39,506 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [930524403] [2023-02-18 08:56:39,506 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:39,506 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:39,514 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:39,514 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [692910297] [2023-02-18 08:56:39,514 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:56:39,514 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:39,514 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:39,516 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-18 08:56:39,516 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-18 08:56:39,759 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:56:39,759 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:39,762 INFO L263 TraceCheckSpWp]: Trace formula consists of 974 conjuncts, 28 conjunts are in the unsatisfiable core [2023-02-18 08:56:39,766 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:39,835 INFO L134 CoverageAnalysis]: Checked inductivity of 13583 backedges. 6361 proven. 441 refuted. 0 times theorem prover too weak. 6781 trivial. 0 not checked. [2023-02-18 08:56:39,835 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:40,058 INFO L134 CoverageAnalysis]: Checked inductivity of 13583 backedges. 323 proven. 2383 refuted. 0 times theorem prover too weak. 10877 trivial. 0 not checked. [2023-02-18 08:56:40,059 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:40,059 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [930524403] [2023-02-18 08:56:40,059 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:40,059 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [692910297] [2023-02-18 08:56:40,059 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [692910297] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:40,059 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:40,059 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 25] total 31 [2023-02-18 08:56:40,059 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1233359759] [2023-02-18 08:56:40,059 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:40,060 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:40,060 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:40,065 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 31 interpolants. [2023-02-18 08:56:40,065 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=123, Invalid=807, Unknown=0, NotChecked=0, Total=930 [2023-02-18 08:56:40,065 INFO L87 Difference]: Start difference. First operand 2275 states and 3293 transitions. cyclomatic complexity: 1045 Second operand has 31 states, 27 states have (on average 2.814814814814815) internal successors, (76), 31 states have internal predecessors, (76), 18 states have call successors, (36), 2 states have call predecessors, (36), 11 states have return successors, (41), 14 states have call predecessors, (41), 18 states have call successors, (41) [2023-02-18 08:56:41,231 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:41,231 INFO L93 Difference]: Finished difference Result 2760 states and 3961 transitions. [2023-02-18 08:56:41,231 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2760 states and 3961 transitions. [2023-02-18 08:56:41,242 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 410 [2023-02-18 08:56:41,253 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2760 states to 2759 states and 3960 transitions. [2023-02-18 08:56:41,253 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 260 [2023-02-18 08:56:41,253 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 260 [2023-02-18 08:56:41,253 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2759 states and 3960 transitions. [2023-02-18 08:56:41,253 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:41,253 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2759 states and 3960 transitions. [2023-02-18 08:56:41,254 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2759 states and 3960 transitions. [2023-02-18 08:56:41,275 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2759 to 2290. [2023-02-18 08:56:41,277 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2290 states, 1421 states have (on average 1.0605207600281492) internal successors, (1507), 1415 states have internal predecessors, (1507), 685 states have call successors, (697), 226 states have call predecessors, (697), 184 states have return successors, (1125), 648 states have call predecessors, (1125), 685 states have call successors, (1125) [2023-02-18 08:56:41,284 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2290 states to 2290 states and 3329 transitions. [2023-02-18 08:56:41,284 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2290 states and 3329 transitions. [2023-02-18 08:56:41,285 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 38 states. [2023-02-18 08:56:41,285 INFO L428 stractBuchiCegarLoop]: Abstraction has 2290 states and 3329 transitions. [2023-02-18 08:56:41,285 INFO L335 stractBuchiCegarLoop]: ======== Iteration 57 ============ [2023-02-18 08:56:41,285 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2290 states and 3329 transitions. [2023-02-18 08:56:41,290 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 231 [2023-02-18 08:56:41,290 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:41,290 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:41,291 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:41,291 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [69, 69, 51, 51, 51, 51, 18, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:41,291 INFO L748 eck$LassoCheckResult]: Stem: 250194#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 250136#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; 250137#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 250160#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; 250149#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 250150#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 251675#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 250124#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 250125#$Ultimate##0 ~n := #in~n; 251629#L25 assume ~n <= 0;#res := 1; 251628#factFINAL assume true; 251627#factEXIT >#68#return; 250187#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 250188#$Ultimate##0 ~n := #in~n; 251840#L25 assume ~n <= 0;#res := 1; 251839#factFINAL assume true; 251837#factEXIT >#70#return; 251834#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 251835#$Ultimate##0 ~n := #in~n; 251838#L25 assume ~n <= 0;#res := 1; 251836#factFINAL assume true; 251833#factEXIT >#72#return; 251831#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 251828#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 251823#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 251819#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 251813#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 251808#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 251809#$Ultimate##0 ~n := #in~n; 251830#L25 assume !(~n <= 0); 251825#L26 call #t~ret0 := fact(~n - 1);< 251826#$Ultimate##0 ~n := #in~n; 251832#L25 assume ~n <= 0;#res := 1; 251829#factFINAL assume true; 251824#factEXIT >#66#return; 251820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 251814#factFINAL assume true; 251807#factEXIT >#74#return; 251805#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 251806#$Ultimate##0 ~n := #in~n; 251818#L25 assume ~n <= 0;#res := 1; 251812#factFINAL assume true; 251804#factEXIT >#76#return; 251802#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 251803#$Ultimate##0 ~n := #in~n; 251822#L25 assume !(~n <= 0); 251816#L26 call #t~ret0 := fact(~n - 1);< 251817#$Ultimate##0 ~n := #in~n; 251827#L25 assume ~n <= 0;#res := 1; 251821#factFINAL assume true; 251815#factEXIT >#66#return; 251811#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 251810#factFINAL assume true; 251801#factEXIT >#78#return; 251800#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 251797#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 251792#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 251791#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 251787#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 251779#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 251783#$Ultimate##0 ~n := #in~n; 251796#L25 assume !(~n <= 0); 251771#L26 call #t~ret0 := fact(~n - 1);< 251775#$Ultimate##0 ~n := #in~n; 251794#L25 assume !(~n <= 0); 251770#L26 call #t~ret0 := fact(~n - 1);< 251789#$Ultimate##0 ~n := #in~n; 251798#L25 assume ~n <= 0;#res := 1; 251793#factFINAL assume true; 251788#factEXIT >#66#return; 251784#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 251778#factFINAL assume true; 251769#factEXIT >#66#return; 251774#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 251849#factFINAL assume true; 251782#factEXIT >#74#return; 251761#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 251762#$Ultimate##0 ~n := #in~n; 251785#L25 assume ~n <= 0;#res := 1; 251780#factFINAL assume true; 251760#factEXIT >#76#return; 251757#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 251758#$Ultimate##0 ~n := #in~n; 251841#L25 assume !(~n <= 0); 251772#L26 call #t~ret0 := fact(~n - 1);< 251775#$Ultimate##0 ~n := #in~n; 251794#L25 assume !(~n <= 0); 251770#L26 call #t~ret0 := fact(~n - 1);< 251789#$Ultimate##0 ~n := #in~n; 251798#L25 assume ~n <= 0;#res := 1; 251793#factFINAL assume true; 251788#factEXIT >#66#return; 251784#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 251778#factFINAL assume true; 251769#factEXIT >#66#return; 251768#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 251766#factFINAL assume true; 251756#factEXIT >#78#return; 251753#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 251750#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 251745#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 251739#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 251735#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 251723#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 251724#$Ultimate##0 ~n := #in~n; 251749#L25 assume !(~n <= 0); 251742#L26 call #t~ret0 := fact(~n - 1);< 251744#$Ultimate##0 ~n := #in~n; 251767#L25 assume !(~n <= 0); 251743#L26 call #t~ret0 := fact(~n - 1);< 251765#$Ultimate##0 ~n := #in~n; 251767#L25 assume !(~n <= 0); 251743#L26 call #t~ret0 := fact(~n - 1);< 251765#$Ultimate##0 ~n := #in~n; 251799#L25 assume ~n <= 0;#res := 1; 251795#factFINAL assume true; 251790#factEXIT >#66#return; 251786#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 251781#factFINAL assume true; 251764#factEXIT >#66#return; 251763#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 251748#factFINAL assume true; 251741#factEXIT >#66#return; 251738#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 251734#factFINAL assume true; 251722#factEXIT >#74#return; 251718#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 251719#$Ultimate##0 ~n := #in~n; 251732#L25 assume ~n <= 0;#res := 1; 251721#factFINAL assume true; 251717#factEXIT >#76#return; 251714#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 251715#$Ultimate##0 ~n := #in~n; 251752#L25 assume !(~n <= 0); 251726#L26 call #t~ret0 := fact(~n - 1);< 251731#$Ultimate##0 ~n := #in~n; 251755#L25 assume !(~n <= 0); 251728#L26 call #t~ret0 := fact(~n - 1);< 251747#$Ultimate##0 ~n := #in~n; 251755#L25 assume !(~n <= 0); 251728#L26 call #t~ret0 := fact(~n - 1);< 251747#$Ultimate##0 ~n := #in~n; 251777#L25 assume ~n <= 0;#res := 1; 251776#factFINAL assume true; 251759#factEXIT >#66#return; 251754#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 251751#factFINAL assume true; 251746#factEXIT >#66#return; 251740#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 251737#factFINAL assume true; 251725#factEXIT >#66#return; 251729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 252221#factFINAL assume true; 251713#factEXIT >#78#return; 251698#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 251696#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 251663#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 251656#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 251654#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 251652#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 251650#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 250719#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 250667#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 250670#$Ultimate##0 ~n := #in~n; 250716#L25 assume !(~n <= 0); 250701#L26 call #t~ret0 := fact(~n - 1);< 250715#$Ultimate##0 ~n := #in~n; 250782#L25 assume ~n <= 0;#res := 1; 250777#factFINAL assume true; 250698#factEXIT >#66#return; 250696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250695#factFINAL assume true; 250664#factEXIT >#68#return; 250651#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 250662#$Ultimate##0 ~n := #in~n; 250734#L25 assume ~n <= 0;#res := 1; 250689#factFINAL assume true; 250650#factEXIT >#70#return; 250614#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 250615#$Ultimate##0 ~n := #in~n; 250733#L25 assume !(~n <= 0); 250183#L26 call #t~ret0 := fact(~n - 1);< 250349#$Ultimate##0 ~n := #in~n; 250684#L25 assume ~n <= 0;#res := 1; 250629#factFINAL assume true; 250592#factEXIT >#66#return; 250597#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250649#factFINAL assume true; 250613#factEXIT >#72#return; 250590#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 250582#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 250581#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 250579#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 250577#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 250568#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 250571#$Ultimate##0 ~n := #in~n; 250687#L25 assume !(~n <= 0); 250180#L26 call #t~ret0 := fact(~n - 1);< 250349#$Ultimate##0 ~n := #in~n; 250684#L25 assume ~n <= 0;#res := 1; 250629#factFINAL assume true; 250592#factEXIT >#66#return; 250596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250576#factFINAL assume true; 250561#factEXIT >#68#return; 250251#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 250280#$Ultimate##0 ~n := #in~n; 250646#L25 assume !(~n <= 0); 250328#L26 call #t~ret0 := fact(~n - 1);< 250600#$Ultimate##0 ~n := #in~n; 250684#L25 assume ~n <= 0;#res := 1; 250629#factFINAL assume true; 250592#factEXIT >#66#return; 250575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250558#factFINAL assume true; 250546#factEXIT >#70#return; 250537#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 250542#$Ultimate##0 ~n := #in~n; 250557#L25 assume ~n <= 0;#res := 1; 250545#factFINAL assume true; 250532#factEXIT >#72#return; 250530#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 250527#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 250517#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 250515#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 250512#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 250264#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 250284#$Ultimate##0 ~n := #in~n; 251635#L25 assume !(~n <= 0); 250301#L26 call #t~ret0 := fact(~n - 1);< 250402#$Ultimate##0 ~n := #in~n; 250335#L25 assume !(~n <= 0); 250306#L26 call #t~ret0 := fact(~n - 1);< 250337#$Ultimate##0 ~n := #in~n; 250334#L25 assume ~n <= 0;#res := 1; 250333#factFINAL assume true; 250323#factEXIT >#66#return; 250325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250346#factFINAL assume true; 250339#factEXIT >#66#return; 250287#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250281#factFINAL assume true; 250235#factEXIT >#74#return; 250242#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 250280#$Ultimate##0 ~n := #in~n; 250646#L25 assume !(~n <= 0); 250328#L26 call #t~ret0 := fact(~n - 1);< 250600#$Ultimate##0 ~n := #in~n; 250684#L25 assume ~n <= 0;#res := 1; 250629#factFINAL assume true; 250592#factEXIT >#66#return; 250575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250558#factFINAL assume true; 250546#factEXIT >#76#return; 250275#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 250560#$Ultimate##0 ~n := #in~n; 251555#L25 assume !(~n <= 0); 250594#L26 call #t~ret0 := fact(~n - 1);< 250599#$Ultimate##0 ~n := #in~n; 250684#L25 assume ~n <= 0;#res := 1; 250629#factFINAL assume true; 250592#factEXIT >#66#return; 250575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250558#factFINAL assume true; 250546#factEXIT >#78#return; 250552#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 250813#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 250811#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 250809#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 250806#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 250807#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 250093#$Ultimate##0 ~n := #in~n; 252346#L25 assume !(~n <= 0); 250105#L26 call #t~ret0 := fact(~n - 1);< 252269#$Ultimate##0 ~n := #in~n; 252199#L25 assume !(~n <= 0); 250144#L26 call #t~ret0 := fact(~n - 1);< 250148#$Ultimate##0 ~n := #in~n; 252199#L25 assume !(~n <= 0); 250144#L26 call #t~ret0 := fact(~n - 1);< 250148#$Ultimate##0 ~n := #in~n; 252202#L25 assume ~n <= 0;#res := 1; 252279#factFINAL assume true; 252275#factEXIT >#66#return; 252273#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 252271#factFINAL assume true; 252262#factEXIT >#66#return; 252267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 252316#factFINAL assume true; 252311#factEXIT >#66#return; 252312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 252342#factFINAL assume true; 252339#factEXIT >#74#return; 252290#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 252300#$Ultimate##0 ~n := #in~n; 252289#L25 assume !(~n <= 0); 250107#L26 call #t~ret0 := fact(~n - 1);< 252285#$Ultimate##0 ~n := #in~n; 252281#L25 assume ~n <= 0;#res := 1; 252358#factFINAL assume true; 250098#factEXIT >#66#return; 250109#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 252337#factFINAL assume true; 252338#factEXIT >#76#return; 252336#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 250093#$Ultimate##0 ~n := #in~n; 252346#L25 assume !(~n <= 0); 250105#L26 call #t~ret0 := fact(~n - 1);< 252269#$Ultimate##0 ~n := #in~n; 252199#L25 assume !(~n <= 0); 250144#L26 call #t~ret0 := fact(~n - 1);< 250148#$Ultimate##0 ~n := #in~n; 252202#L25 assume ~n <= 0;#res := 1; 252279#factFINAL assume true; 252275#factEXIT >#66#return; 252273#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 252271#factFINAL assume true; 252262#factEXIT >#66#return; 252266#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 252347#factFINAL assume true; 252343#factEXIT >#78#return; 252239#L30-8 [2023-02-18 08:56:41,292 INFO L750 eck$LassoCheckResult]: Loop: 252239#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 252236#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 250925#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 250923#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 250920#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 250919#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 250918#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 250917#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 250122#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 250123#$Ultimate##0 ~n := #in~n; 250415#L25 assume !(~n <= 0); 250296#L26 call #t~ret0 := fact(~n - 1);< 250402#$Ultimate##0 ~n := #in~n; 250335#L25 assume !(~n <= 0); 250306#L26 call #t~ret0 := fact(~n - 1);< 250337#$Ultimate##0 ~n := #in~n; 250335#L25 assume !(~n <= 0); 250306#L26 call #t~ret0 := fact(~n - 1);< 250337#$Ultimate##0 ~n := #in~n; 250335#L25 assume !(~n <= 0); 250306#L26 call #t~ret0 := fact(~n - 1);< 250337#$Ultimate##0 ~n := #in~n; 250334#L25 assume ~n <= 0;#res := 1; 250333#factFINAL assume true; 250323#factEXIT >#66#return; 250325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250346#factFINAL assume true; 250339#factEXIT >#66#return; 250341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250424#factFINAL assume true; 250418#factEXIT >#66#return; 250416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250403#factFINAL assume true; 250395#factEXIT >#66#return; 250394#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250393#factFINAL assume true; 250392#factEXIT >#68#return; 250387#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 250389#$Ultimate##0 ~n := #in~n; 250391#L25 assume ~n <= 0;#res := 1; 250390#factFINAL assume true; 250384#factEXIT >#70#return; 250364#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 250773#$Ultimate##0 ~n := #in~n; 250771#L25 assume !(~n <= 0); 250303#L26 call #t~ret0 := fact(~n - 1);< 250361#$Ultimate##0 ~n := #in~n; 250358#L25 assume !(~n <= 0); 250302#L26 call #t~ret0 := fact(~n - 1);< 250351#$Ultimate##0 ~n := #in~n; 250350#L25 assume !(~n <= 0); 250291#L26 call #t~ret0 := fact(~n - 1);< 250338#$Ultimate##0 ~n := #in~n; 250335#L25 assume !(~n <= 0); 250306#L26 call #t~ret0 := fact(~n - 1);< 250337#$Ultimate##0 ~n := #in~n; 250335#L25 assume !(~n <= 0); 250306#L26 call #t~ret0 := fact(~n - 1);< 250337#$Ultimate##0 ~n := #in~n; 250334#L25 assume ~n <= 0;#res := 1; 250333#factFINAL assume true; 250323#factEXIT >#66#return; 250325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250346#factFINAL assume true; 250339#factEXIT >#66#return; 250341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250424#factFINAL assume true; 250418#factEXIT >#66#return; 250416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250403#factFINAL assume true; 250395#factEXIT >#66#return; 250308#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250318#factFINAL assume true; 250288#factEXIT >#66#return; 250312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250916#factFINAL assume true; 250912#factEXIT >#72#return; 250915#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 252246#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 252245#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 252244#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 252243#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 250791#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 250903#$Ultimate##0 ~n := #in~n; 250995#L25 assume !(~n <= 0); 250332#L26 call #t~ret0 := fact(~n - 1);< 251461#$Ultimate##0 ~n := #in~n; 251462#L25 assume !(~n <= 0); 250331#L26 call #t~ret0 := fact(~n - 1);< 250322#$Ultimate##0 ~n := #in~n; 252248#L25 assume !(~n <= 0); 250186#L26 call #t~ret0 := fact(~n - 1);< 250190#$Ultimate##0 ~n := #in~n; 250174#L25 assume !(~n <= 0); 250179#L26 call #t~ret0 := fact(~n - 1);< 250326#$Ultimate##0 ~n := #in~n; 250334#L25 assume ~n <= 0;#res := 1; 250333#factFINAL assume true; 250323#factEXIT >#66#return; 250325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250346#factFINAL assume true; 250339#factEXIT >#66#return; 250341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250424#factFINAL assume true; 250418#factEXIT >#66#return; 250416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250403#factFINAL assume true; 250395#factEXIT >#66#return; 250399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250794#factFINAL assume true; 250789#factEXIT >#68#return; 250630#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 250822#$Ultimate##0 ~n := #in~n; 251622#L25 assume !(~n <= 0); 250233#L26 call #t~ret0 := fact(~n - 1);< 250599#$Ultimate##0 ~n := #in~n; 250684#L25 assume ~n <= 0;#res := 1; 250629#factFINAL assume true; 250592#factEXIT >#66#return; 250598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250820#factFINAL assume true; 250760#factEXIT >#70#return; 250320#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 250787#$Ultimate##0 ~n := #in~n; 251240#L25 assume !(~n <= 0); 250319#L26 call #t~ret0 := fact(~n - 1);< 250322#$Ultimate##0 ~n := #in~n; 252248#L25 assume !(~n <= 0); 250186#L26 call #t~ret0 := fact(~n - 1);< 250190#$Ultimate##0 ~n := #in~n; 250174#L25 assume !(~n <= 0); 250179#L26 call #t~ret0 := fact(~n - 1);< 250326#$Ultimate##0 ~n := #in~n; 250334#L25 assume ~n <= 0;#res := 1; 250333#factFINAL assume true; 250323#factEXIT >#66#return; 250325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250346#factFINAL assume true; 250339#factEXIT >#66#return; 250341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250424#factFINAL assume true; 250418#factEXIT >#66#return; 250420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250786#factFINAL assume true; 250774#factEXIT >#72#return; 250738#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 252240#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 252237#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 252235#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 251063#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 250790#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 250903#$Ultimate##0 ~n := #in~n; 250995#L25 assume !(~n <= 0); 250332#L26 call #t~ret0 := fact(~n - 1);< 251461#$Ultimate##0 ~n := #in~n; 251462#L25 assume !(~n <= 0); 250331#L26 call #t~ret0 := fact(~n - 1);< 250322#$Ultimate##0 ~n := #in~n; 252248#L25 assume !(~n <= 0); 250186#L26 call #t~ret0 := fact(~n - 1);< 250190#$Ultimate##0 ~n := #in~n; 250174#L25 assume !(~n <= 0); 250179#L26 call #t~ret0 := fact(~n - 1);< 250326#$Ultimate##0 ~n := #in~n; 250334#L25 assume ~n <= 0;#res := 1; 250333#factFINAL assume true; 250323#factEXIT >#66#return; 250325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250346#factFINAL assume true; 250339#factEXIT >#66#return; 250341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250424#factFINAL assume true; 250418#factEXIT >#66#return; 250416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250403#factFINAL assume true; 250395#factEXIT >#66#return; 250399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250794#factFINAL assume true; 250789#factEXIT >#68#return; 250644#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 250286#$Ultimate##0 ~n := #in~n; 250685#L25 assume !(~n <= 0); 250294#L26 call #t~ret0 := fact(~n - 1);< 250402#$Ultimate##0 ~n := #in~n; 250335#L25 assume !(~n <= 0); 250306#L26 call #t~ret0 := fact(~n - 1);< 250337#$Ultimate##0 ~n := #in~n; 250334#L25 assume ~n <= 0;#res := 1; 250333#factFINAL assume true; 250323#factEXIT >#66#return; 250325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250346#factFINAL assume true; 250339#factEXIT >#66#return; 250340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250899#factFINAL assume true; 250894#factEXIT >#70#return; 250347#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 250900#$Ultimate##0 ~n := #in~n; 251455#L25 assume !(~n <= 0); 250176#L26 call #t~ret0 := fact(~n - 1);< 250190#$Ultimate##0 ~n := #in~n; 250174#L25 assume !(~n <= 0); 250179#L26 call #t~ret0 := fact(~n - 1);< 250326#$Ultimate##0 ~n := #in~n; 250334#L25 assume ~n <= 0;#res := 1; 250333#factFINAL assume true; 250323#factEXIT >#66#return; 250325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250346#factFINAL assume true; 250339#factEXIT >#66#return; 250340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250899#factFINAL assume true; 250894#factEXIT >#72#return; 250898#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 251062#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 251061#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 251055#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 251052#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 250412#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 250795#$Ultimate##0 ~n := #in~n; 250996#L25 assume !(~n <= 0); 250396#L26 call #t~ret0 := fact(~n - 1);< 250414#$Ultimate##0 ~n := #in~n; 251460#L25 assume !(~n <= 0); 250324#L26 call #t~ret0 := fact(~n - 1);< 252250#$Ultimate##0 ~n := #in~n; 252249#L25 assume !(~n <= 0); 250178#L26 call #t~ret0 := fact(~n - 1);< 250330#$Ultimate##0 ~n := #in~n; 250174#L25 assume !(~n <= 0); 250179#L26 call #t~ret0 := fact(~n - 1);< 250326#$Ultimate##0 ~n := #in~n; 250334#L25 assume ~n <= 0;#res := 1; 250333#factFINAL assume true; 250323#factEXIT >#66#return; 250325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250346#factFINAL assume true; 250339#factEXIT >#66#return; 250341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250424#factFINAL assume true; 250418#factEXIT >#66#return; 250416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250403#factFINAL assume true; 250395#factEXIT >#66#return; 250399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250794#factFINAL assume true; 250789#factEXIT >#68#return; 250636#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 250286#$Ultimate##0 ~n := #in~n; 250685#L25 assume !(~n <= 0); 250294#L26 call #t~ret0 := fact(~n - 1);< 250402#$Ultimate##0 ~n := #in~n; 250335#L25 assume !(~n <= 0); 250306#L26 call #t~ret0 := fact(~n - 1);< 250337#$Ultimate##0 ~n := #in~n; 250335#L25 assume !(~n <= 0); 250306#L26 call #t~ret0 := fact(~n - 1);< 250337#$Ultimate##0 ~n := #in~n; 250335#L25 assume !(~n <= 0); 250306#L26 call #t~ret0 := fact(~n - 1);< 250337#$Ultimate##0 ~n := #in~n; 250334#L25 assume ~n <= 0;#res := 1; 250333#factFINAL assume true; 250323#factEXIT >#66#return; 250325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250346#factFINAL assume true; 250339#factEXIT >#66#return; 250341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250424#factFINAL assume true; 250418#factEXIT >#66#return; 250416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250403#factFINAL assume true; 250395#factEXIT >#66#return; 250397#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250886#factFINAL assume true; 250736#factEXIT >#70#return; 250201#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 250230#$Ultimate##0 ~n := #in~n; 251480#L25 assume !(~n <= 0); 250177#L26 call #t~ret0 := fact(~n - 1);< 250349#$Ultimate##0 ~n := #in~n; 250684#L25 assume ~n <= 0;#res := 1; 250629#factFINAL assume true; 250592#factEXIT >#66#return; 250598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250820#factFINAL assume true; 250760#factEXIT >#72#return; 250761#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 251029#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 251028#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 251027#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 250887#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 250413#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 250795#$Ultimate##0 ~n := #in~n; 250996#L25 assume !(~n <= 0); 250396#L26 call #t~ret0 := fact(~n - 1);< 250414#$Ultimate##0 ~n := #in~n; 251460#L25 assume !(~n <= 0); 250324#L26 call #t~ret0 := fact(~n - 1);< 252250#$Ultimate##0 ~n := #in~n; 252249#L25 assume !(~n <= 0); 250178#L26 call #t~ret0 := fact(~n - 1);< 250330#$Ultimate##0 ~n := #in~n; 250174#L25 assume !(~n <= 0); 250179#L26 call #t~ret0 := fact(~n - 1);< 250326#$Ultimate##0 ~n := #in~n; 250334#L25 assume ~n <= 0;#res := 1; 250333#factFINAL assume true; 250323#factEXIT >#66#return; 250325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250346#factFINAL assume true; 250339#factEXIT >#66#return; 250341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250424#factFINAL assume true; 250418#factEXIT >#66#return; 250416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250403#factFINAL assume true; 250395#factEXIT >#66#return; 250399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250794#factFINAL assume true; 250789#factEXIT >#68#return; 250635#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 250286#$Ultimate##0 ~n := #in~n; 250685#L25 assume !(~n <= 0); 250294#L26 call #t~ret0 := fact(~n - 1);< 250402#$Ultimate##0 ~n := #in~n; 250335#L25 assume !(~n <= 0); 250306#L26 call #t~ret0 := fact(~n - 1);< 250337#$Ultimate##0 ~n := #in~n; 250335#L25 assume !(~n <= 0); 250306#L26 call #t~ret0 := fact(~n - 1);< 250337#$Ultimate##0 ~n := #in~n; 250335#L25 assume !(~n <= 0); 250306#L26 call #t~ret0 := fact(~n - 1);< 250337#$Ultimate##0 ~n := #in~n; 250334#L25 assume ~n <= 0;#res := 1; 250333#factFINAL assume true; 250323#factEXIT >#66#return; 250325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250346#factFINAL assume true; 250339#factEXIT >#66#return; 250341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250424#factFINAL assume true; 250418#factEXIT >#66#return; 250416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250403#factFINAL assume true; 250395#factEXIT >#66#return; 250397#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 250886#factFINAL assume true; 250736#factEXIT >#70#return; 250215#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 250230#$Ultimate##0 ~n := #in~n; 251480#L25 assume ~n <= 0;#res := 1; 250231#factFINAL assume true; 250200#factEXIT >#72#return; 250156#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 250157#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 250166#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 250170#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 250163#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 250164#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 252326#$Ultimate##0 ~n := #in~n; 252325#L25 assume !(~n <= 0); 250147#L26 call #t~ret0 := fact(~n - 1);< 252201#$Ultimate##0 ~n := #in~n; 252199#L25 assume !(~n <= 0); 250144#L26 call #t~ret0 := fact(~n - 1);< 250148#$Ultimate##0 ~n := #in~n; 252199#L25 assume !(~n <= 0); 250144#L26 call #t~ret0 := fact(~n - 1);< 250148#$Ultimate##0 ~n := #in~n; 252199#L25 assume !(~n <= 0); 250144#L26 call #t~ret0 := fact(~n - 1);< 250148#$Ultimate##0 ~n := #in~n; 252202#L25 assume ~n <= 0;#res := 1; 252279#factFINAL assume true; 252275#factEXIT >#66#return; 252273#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 252271#factFINAL assume true; 252262#factEXIT >#66#return; 252267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 252316#factFINAL assume true; 252311#factEXIT >#66#return; 252313#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 252330#factFINAL assume true; 252322#factEXIT >#66#return; 252324#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 252377#factFINAL assume true; 252370#factEXIT >#74#return; 252206#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 252326#$Ultimate##0 ~n := #in~n; 252325#L25 assume !(~n <= 0); 250147#L26 call #t~ret0 := fact(~n - 1);< 252201#$Ultimate##0 ~n := #in~n; 252199#L25 assume !(~n <= 0); 250144#L26 call #t~ret0 := fact(~n - 1);< 250148#$Ultimate##0 ~n := #in~n; 252199#L25 assume !(~n <= 0); 250144#L26 call #t~ret0 := fact(~n - 1);< 250148#$Ultimate##0 ~n := #in~n; 252199#L25 assume !(~n <= 0); 250144#L26 call #t~ret0 := fact(~n - 1);< 250148#$Ultimate##0 ~n := #in~n; 252202#L25 assume ~n <= 0;#res := 1; 252279#factFINAL assume true; 252275#factEXIT >#66#return; 252273#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 252271#factFINAL assume true; 252262#factEXIT >#66#return; 252267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 252316#factFINAL assume true; 252311#factEXIT >#66#return; 252313#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 252330#factFINAL assume true; 252322#factEXIT >#66#return; 252324#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 252377#factFINAL assume true; 252370#factEXIT >#76#return; 252242#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 252345#$Ultimate##0 ~n := #in~n; 252354#L25 assume !(~n <= 0); 250102#L26 call #t~ret0 := fact(~n - 1);< 250143#$Ultimate##0 ~n := #in~n; 252281#L25 assume ~n <= 0;#res := 1; 252358#factFINAL assume true; 250098#factEXIT >#66#return; 250110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 252344#factFINAL assume true; 252241#factEXIT >#78#return; 252239#L30-8 [2023-02-18 08:56:41,292 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:41,292 INFO L85 PathProgramCache]: Analyzing trace with hash 2135700754, now seen corresponding path program 44 times [2023-02-18 08:56:41,292 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:41,292 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [217050631] [2023-02-18 08:56:41,292 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:41,292 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:41,326 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:41,326 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [669978171] [2023-02-18 08:56:41,326 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:56:41,326 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:41,327 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:41,330 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-18 08:56:41,331 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-18 08:56:41,594 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:56:41,594 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:41,594 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:41,684 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:41,718 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:41,719 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:41,719 INFO L85 PathProgramCache]: Analyzing trace with hash -113456228, now seen corresponding path program 45 times [2023-02-18 08:56:41,719 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:41,719 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1774905650] [2023-02-18 08:56:41,719 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:41,719 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:41,726 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:41,727 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [307806360] [2023-02-18 08:56:41,727 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:56:41,727 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:41,727 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:41,732 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-18 08:56:41,732 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-18 08:56:41,976 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 10 check-sat command(s) [2023-02-18 08:56:41,977 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:41,979 INFO L263 TraceCheckSpWp]: Trace formula consists of 614 conjuncts, 19 conjunts are in the unsatisfiable core [2023-02-18 08:56:41,982 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:42,033 INFO L134 CoverageAnalysis]: Checked inductivity of 12035 backedges. 3488 proven. 26 refuted. 0 times theorem prover too weak. 8521 trivial. 0 not checked. [2023-02-18 08:56:42,033 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:42,146 INFO L134 CoverageAnalysis]: Checked inductivity of 12035 backedges. 1292 proven. 187 refuted. 0 times theorem prover too weak. 10556 trivial. 0 not checked. [2023-02-18 08:56:42,146 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:42,146 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1774905650] [2023-02-18 08:56:42,146 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:42,146 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [307806360] [2023-02-18 08:56:42,146 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [307806360] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:42,146 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:42,146 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 19] total 20 [2023-02-18 08:56:42,146 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [911282320] [2023-02-18 08:56:42,146 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:42,147 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:42,147 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:42,147 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 20 interpolants. [2023-02-18 08:56:42,147 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=82, Invalid=298, Unknown=0, NotChecked=0, Total=380 [2023-02-18 08:56:42,147 INFO L87 Difference]: Start difference. First operand 2290 states and 3329 transitions. cyclomatic complexity: 1066 Second operand has 20 states, 19 states have (on average 3.4210526315789473) internal successors, (65), 20 states have internal predecessors, (65), 13 states have call successors, (27), 2 states have call predecessors, (27), 7 states have return successors, (30), 11 states have call predecessors, (30), 13 states have call successors, (30) [2023-02-18 08:56:42,664 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:42,664 INFO L93 Difference]: Finished difference Result 2603 states and 3753 transitions. [2023-02-18 08:56:42,664 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2603 states and 3753 transitions. [2023-02-18 08:56:42,674 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 277 [2023-02-18 08:56:42,685 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2603 states to 2561 states and 3692 transitions. [2023-02-18 08:56:42,685 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 234 [2023-02-18 08:56:42,685 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 234 [2023-02-18 08:56:42,685 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2561 states and 3692 transitions. [2023-02-18 08:56:42,685 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:42,685 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2561 states and 3692 transitions. [2023-02-18 08:56:42,686 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2561 states and 3692 transitions. [2023-02-18 08:56:42,707 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2561 to 2286. [2023-02-18 08:56:42,709 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2286 states, 1433 states have (on average 1.0628053035589673) internal successors, (1523), 1432 states have internal predecessors, (1523), 665 states have call successors, (677), 218 states have call predecessors, (677), 188 states have return successors, (1076), 635 states have call predecessors, (1076), 665 states have call successors, (1076) [2023-02-18 08:56:42,714 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2286 states to 2286 states and 3276 transitions. [2023-02-18 08:56:42,715 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2286 states and 3276 transitions. [2023-02-18 08:56:42,715 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2023-02-18 08:56:42,715 INFO L428 stractBuchiCegarLoop]: Abstraction has 2286 states and 3276 transitions. [2023-02-18 08:56:42,715 INFO L335 stractBuchiCegarLoop]: ======== Iteration 58 ============ [2023-02-18 08:56:42,715 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2286 states and 3276 transitions. [2023-02-18 08:56:42,719 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 227 [2023-02-18 08:56:42,719 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:42,719 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:42,720 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:42,721 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [73, 73, 55, 55, 55, 55, 18, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:42,721 INFO L748 eck$LassoCheckResult]: Stem: 257675#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 257620#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; 257621#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 257645#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; 257633#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 257634#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 257885#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257881#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 257882#$Ultimate##0 ~n := #in~n; 257886#L25 assume ~n <= 0;#res := 1; 257884#factFINAL assume true; 257880#factEXIT >#68#return; 257876#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 257877#$Ultimate##0 ~n := #in~n; 257883#L25 assume ~n <= 0;#res := 1; 257879#factFINAL assume true; 257875#factEXIT >#70#return; 257872#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 257873#$Ultimate##0 ~n := #in~n; 257878#L25 assume ~n <= 0;#res := 1; 257874#factFINAL assume true; 257871#factEXIT >#72#return; 257870#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 257868#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 257862#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 257858#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 257855#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257851#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 257852#$Ultimate##0 ~n := #in~n; 257867#L25 assume !(~n <= 0); 257860#L26 call #t~ret0 := fact(~n - 1);< 257861#$Ultimate##0 ~n := #in~n; 257869#L25 assume ~n <= 0;#res := 1; 257866#factFINAL assume true; 257859#factEXIT >#66#return; 257857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257854#factFINAL assume true; 257850#factEXIT >#74#return; 257832#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 257833#$Ultimate##0 ~n := #in~n; 257835#L25 assume ~n <= 0;#res := 1; 257834#factFINAL assume true; 257831#factEXIT >#76#return; 257829#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 257830#$Ultimate##0 ~n := #in~n; 257841#L25 assume !(~n <= 0); 257839#L26 call #t~ret0 := fact(~n - 1);< 257840#$Ultimate##0 ~n := #in~n; 257843#L25 assume ~n <= 0;#res := 1; 257842#factFINAL assume true; 257838#factEXIT >#66#return; 257837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257836#factFINAL assume true; 257828#factEXIT >#78#return; 257826#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 257824#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 257823#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 257819#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 257817#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257783#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 257784#$Ultimate##0 ~n := #in~n; 257801#L25 assume !(~n <= 0); 257791#L26 call #t~ret0 := fact(~n - 1);< 257796#$Ultimate##0 ~n := #in~n; 257822#L25 assume !(~n <= 0); 257793#L26 call #t~ret0 := fact(~n - 1);< 257821#$Ultimate##0 ~n := #in~n; 257827#L25 assume ~n <= 0;#res := 1; 257825#factFINAL assume true; 257820#factEXIT >#66#return; 257818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257799#factFINAL assume true; 257790#factEXIT >#66#return; 257795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257891#factFINAL assume true; 257782#factEXIT >#74#return; 257779#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 257780#$Ultimate##0 ~n := #in~n; 257816#L25 assume ~n <= 0;#res := 1; 257815#factFINAL assume true; 257778#factEXIT >#76#return; 257775#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 257776#$Ultimate##0 ~n := #in~n; 257798#L25 assume !(~n <= 0); 257792#L26 call #t~ret0 := fact(~n - 1);< 257796#$Ultimate##0 ~n := #in~n; 257822#L25 assume !(~n <= 0); 257793#L26 call #t~ret0 := fact(~n - 1);< 257821#$Ultimate##0 ~n := #in~n; 257827#L25 assume ~n <= 0;#res := 1; 257825#factFINAL assume true; 257820#factEXIT >#66#return; 257818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257799#factFINAL assume true; 257790#factEXIT >#66#return; 257788#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257786#factFINAL assume true; 257774#factEXIT >#78#return; 257771#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 257769#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 257766#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 257761#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 257758#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257754#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 257755#$Ultimate##0 ~n := #in~n; 257768#L25 assume !(~n <= 0); 257764#L26 call #t~ret0 := fact(~n - 1);< 257765#$Ultimate##0 ~n := #in~n; 257797#L25 assume !(~n <= 0); 257763#L26 call #t~ret0 := fact(~n - 1);< 257773#$Ultimate##0 ~n := #in~n; 257797#L25 assume !(~n <= 0); 257763#L26 call #t~ret0 := fact(~n - 1);< 257773#$Ultimate##0 ~n := #in~n; 257789#L25 assume ~n <= 0;#res := 1; 257787#factFINAL assume true; 257785#factEXIT >#66#return; 257781#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257777#factFINAL assume true; 257772#factEXIT >#66#return; 257770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257767#factFINAL assume true; 257762#factEXIT >#66#return; 257760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257757#factFINAL assume true; 257753#factEXIT >#74#return; 257750#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 257751#$Ultimate##0 ~n := #in~n; 257756#L25 assume ~n <= 0;#res := 1; 257752#factFINAL assume true; 257749#factEXIT >#76#return; 257607#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 257746#$Ultimate##0 ~n := #in~n; 257747#L25 assume !(~n <= 0); 257739#L26 call #t~ret0 := fact(~n - 1);< 257741#$Ultimate##0 ~n := #in~n; 257745#L25 assume !(~n <= 0); 257738#L26 call #t~ret0 := fact(~n - 1);< 257814#$Ultimate##0 ~n := #in~n; 257745#L25 assume !(~n <= 0); 257738#L26 call #t~ret0 := fact(~n - 1);< 257814#$Ultimate##0 ~n := #in~n; 257856#L25 assume ~n <= 0;#res := 1; 257853#factFINAL assume true; 257849#factEXIT >#66#return; 257848#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257847#factFINAL assume true; 257846#factEXIT >#66#return; 257845#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257844#factFINAL assume true; 257811#factEXIT >#66#return; 257655#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257619#factFINAL assume true; 257606#factEXIT >#78#return; 257608#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 257623#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 259861#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 259859#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 259858#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 258885#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 258879#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 258330#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 258324#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 258329#$Ultimate##0 ~n := #in~n; 258354#L25 assume !(~n <= 0); 258339#L26 call #t~ret0 := fact(~n - 1);< 258352#$Ultimate##0 ~n := #in~n; 258364#L25 assume ~n <= 0;#res := 1; 258355#factFINAL assume true; 258336#factEXIT >#66#return; 258334#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258332#factFINAL assume true; 258323#factEXIT >#68#return; 258311#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 258322#$Ultimate##0 ~n := #in~n; 258368#L25 assume ~n <= 0;#res := 1; 258367#factFINAL assume true; 258310#factEXIT >#70#return; 258271#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 258272#$Ultimate##0 ~n := #in~n; 258365#L25 assume !(~n <= 0); 258063#L26 call #t~ret0 := fact(~n - 1);< 257985#$Ultimate##0 ~n := #in~n; 258102#L25 assume ~n <= 0;#res := 1; 258086#factFINAL assume true; 258076#factEXIT >#66#return; 258083#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258308#factFINAL assume true; 258270#factEXIT >#72#return; 258268#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 258266#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 258264#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 258259#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 258258#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 258095#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 258104#$Ultimate##0 ~n := #in~n; 258103#L25 assume !(~n <= 0); 258061#L26 call #t~ret0 := fact(~n - 1);< 257985#$Ultimate##0 ~n := #in~n; 258102#L25 assume ~n <= 0;#res := 1; 258086#factFINAL assume true; 258076#factEXIT >#66#return; 258082#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258254#factFINAL assume true; 258228#factEXIT >#68#return; 258214#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 258226#$Ultimate##0 ~n := #in~n; 258260#L25 assume !(~n <= 0); 257956#L26 call #t~ret0 := fact(~n - 1);< 258089#$Ultimate##0 ~n := #in~n; 258102#L25 assume ~n <= 0;#res := 1; 258086#factFINAL assume true; 258076#factEXIT >#66#return; 258080#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258249#factFINAL assume true; 258192#factEXIT >#70#return; 258177#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 258190#$Ultimate##0 ~n := #in~n; 258246#L25 assume ~n <= 0;#res := 1; 258243#factFINAL assume true; 258176#factEXIT >#72#return; 258174#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 258173#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 258172#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 258171#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 258169#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257947#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 257948#$Ultimate##0 ~n := #in~n; 258528#L25 assume !(~n <= 0); 257966#L26 call #t~ret0 := fact(~n - 1);< 258085#$Ultimate##0 ~n := #in~n; 258510#L25 assume !(~n <= 0); 257965#L26 call #t~ret0 := fact(~n - 1);< 258405#$Ultimate##0 ~n := #in~n; 258451#L25 assume ~n <= 0;#res := 1; 258449#factFINAL assume true; 258403#factEXIT >#66#return; 258399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258394#factFINAL assume true; 258059#factEXIT >#66#return; 258069#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258445#factFINAL assume true; 258430#factEXIT >#74#return; 258209#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 258226#$Ultimate##0 ~n := #in~n; 258260#L25 assume !(~n <= 0); 257956#L26 call #t~ret0 := fact(~n - 1);< 258089#$Ultimate##0 ~n := #in~n; 258102#L25 assume ~n <= 0;#res := 1; 258086#factFINAL assume true; 258076#factEXIT >#66#return; 258080#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258249#factFINAL assume true; 258192#factEXIT >#76#return; 258198#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 258251#$Ultimate##0 ~n := #in~n; 258261#L25 assume !(~n <= 0); 258079#L26 call #t~ret0 := fact(~n - 1);< 258084#$Ultimate##0 ~n := #in~n; 258102#L25 assume ~n <= 0;#res := 1; 258086#factFINAL assume true; 258076#factEXIT >#66#return; 258080#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258249#factFINAL assume true; 258192#factEXIT >#78#return; 258220#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 258527#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 258526#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 258525#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 258523#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 258524#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 259767#$Ultimate##0 ~n := #in~n; 259798#L25 assume !(~n <= 0); 257599#L26 call #t~ret0 := fact(~n - 1);< 259797#$Ultimate##0 ~n := #in~n; 257665#L25 assume !(~n <= 0); 257628#L26 call #t~ret0 := fact(~n - 1);< 257632#$Ultimate##0 ~n := #in~n; 257665#L25 assume !(~n <= 0); 257628#L26 call #t~ret0 := fact(~n - 1);< 257632#$Ultimate##0 ~n := #in~n; 257669#L25 assume ~n <= 0;#res := 1; 259834#factFINAL assume true; 259821#factEXIT >#66#return; 259820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259819#factFINAL assume true; 259789#factEXIT >#66#return; 259793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259804#factFINAL assume true; 259799#factEXIT >#66#return; 259770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259769#factFINAL assume true; 259751#factEXIT >#74#return; 257670#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 257671#$Ultimate##0 ~n := #in~n; 259838#L25 assume !(~n <= 0); 257596#L26 call #t~ret0 := fact(~n - 1);< 259805#$Ultimate##0 ~n := #in~n; 259839#L25 assume ~n <= 0;#res := 1; 259835#factFINAL assume true; 257595#factEXIT >#66#return; 257604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259845#factFINAL assume true; 259841#factEXIT >#76#return; 259740#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 259767#$Ultimate##0 ~n := #in~n; 259798#L25 assume !(~n <= 0); 257599#L26 call #t~ret0 := fact(~n - 1);< 259797#$Ultimate##0 ~n := #in~n; 257665#L25 assume !(~n <= 0); 257628#L26 call #t~ret0 := fact(~n - 1);< 257632#$Ultimate##0 ~n := #in~n; 257669#L25 assume ~n <= 0;#res := 1; 259834#factFINAL assume true; 259821#factEXIT >#66#return; 259820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259819#factFINAL assume true; 259789#factEXIT >#66#return; 259787#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259766#factFINAL assume true; 259736#factEXIT >#78#return; 257718#L30-8 [2023-02-18 08:56:42,721 INFO L750 eck$LassoCheckResult]: Loop: 257718#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 257646#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 257647#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 257717#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 257641#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 257642#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 257680#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 257678#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257679#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 257612#$Ultimate##0 ~n := #in~n; 258306#L25 assume !(~n <= 0); 257973#L26 call #t~ret0 := fact(~n - 1);< 258085#$Ultimate##0 ~n := #in~n; 258510#L25 assume !(~n <= 0); 257965#L26 call #t~ret0 := fact(~n - 1);< 258405#$Ultimate##0 ~n := #in~n; 258510#L25 assume !(~n <= 0); 257965#L26 call #t~ret0 := fact(~n - 1);< 258405#$Ultimate##0 ~n := #in~n; 258510#L25 assume !(~n <= 0); 257965#L26 call #t~ret0 := fact(~n - 1);< 258405#$Ultimate##0 ~n := #in~n; 258510#L25 assume !(~n <= 0); 257965#L26 call #t~ret0 := fact(~n - 1);< 258405#$Ultimate##0 ~n := #in~n; 258451#L25 assume ~n <= 0;#res := 1; 258449#factFINAL assume true; 258403#factEXIT >#66#return; 258399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258394#factFINAL assume true; 258059#factEXIT >#66#return; 258068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258379#factFINAL assume true; 257954#factEXIT >#66#return; 257979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258154#factFINAL assume true; 258140#factEXIT >#66#return; 257998#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257987#factFINAL assume true; 257992#factEXIT >#66#return; 258152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258301#factFINAL assume true; 258300#factEXIT >#68#return; 258283#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 258286#$Ultimate##0 ~n := #in~n; 258309#L25 assume ~n <= 0;#res := 1; 258287#factFINAL assume true; 258279#factEXIT >#70#return; 258285#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 258290#$Ultimate##0 ~n := #in~n; 258299#L25 assume !(~n <= 0); 257989#L26 call #t~ret0 := fact(~n - 1);< 258297#$Ultimate##0 ~n := #in~n; 258428#L25 assume !(~n <= 0); 257990#L26 call #t~ret0 := fact(~n - 1);< 258296#$Ultimate##0 ~n := #in~n; 258427#L25 assume !(~n <= 0); 257972#L26 call #t~ret0 := fact(~n - 1);< 258161#$Ultimate##0 ~n := #in~n; 258435#L25 assume !(~n <= 0); 257969#L26 call #t~ret0 := fact(~n - 1);< 258073#$Ultimate##0 ~n := #in~n; 258510#L25 assume !(~n <= 0); 257965#L26 call #t~ret0 := fact(~n - 1);< 258405#$Ultimate##0 ~n := #in~n; 258451#L25 assume ~n <= 0;#res := 1; 258449#factFINAL assume true; 258403#factEXIT >#66#return; 258399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258394#factFINAL assume true; 258059#factEXIT >#66#return; 258068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258379#factFINAL assume true; 257954#factEXIT >#66#return; 257979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258154#factFINAL assume true; 258140#factEXIT >#66#return; 257998#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257987#factFINAL assume true; 257992#factEXIT >#66#return; 258149#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258292#factFINAL assume true; 258288#factEXIT >#72#return; 258289#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 258305#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 258304#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 258303#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 258302#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 258122#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 258175#$Ultimate##0 ~n := #in~n; 258432#L25 assume !(~n <= 0); 257988#L26 call #t~ret0 := fact(~n - 1);< 258296#$Ultimate##0 ~n := #in~n; 258427#L25 assume !(~n <= 0); 257972#L26 call #t~ret0 := fact(~n - 1);< 258161#$Ultimate##0 ~n := #in~n; 258435#L25 assume !(~n <= 0); 257969#L26 call #t~ret0 := fact(~n - 1);< 258073#$Ultimate##0 ~n := #in~n; 258510#L25 assume !(~n <= 0); 257965#L26 call #t~ret0 := fact(~n - 1);< 258405#$Ultimate##0 ~n := #in~n; 258451#L25 assume ~n <= 0;#res := 1; 258449#factFINAL assume true; 258403#factEXIT >#66#return; 258399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258394#factFINAL assume true; 258059#factEXIT >#66#return; 258068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258379#factFINAL assume true; 257954#factEXIT >#66#return; 257979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258154#factFINAL assume true; 258140#factEXIT >#66#return; 258135#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258128#factFINAL assume true; 258105#factEXIT >#68#return; 257696#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 258235#$Ultimate##0 ~n := #in~n; 257715#L25 assume !(~n <= 0); 257716#L26 call #t~ret0 := fact(~n - 1);< 258084#$Ultimate##0 ~n := #in~n; 258102#L25 assume ~n <= 0;#res := 1; 258086#factFINAL assume true; 258076#factEXIT >#66#return; 258074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258054#factFINAL assume true; 258039#factEXIT >#70#return; 257945#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 257946#$Ultimate##0 ~n := #in~n; 258164#L25 assume !(~n <= 0); 257957#L26 call #t~ret0 := fact(~n - 1);< 258161#$Ultimate##0 ~n := #in~n; 258435#L25 assume !(~n <= 0); 257969#L26 call #t~ret0 := fact(~n - 1);< 258073#$Ultimate##0 ~n := #in~n; 258510#L25 assume !(~n <= 0); 257965#L26 call #t~ret0 := fact(~n - 1);< 258405#$Ultimate##0 ~n := #in~n; 258510#L25 assume !(~n <= 0); 257965#L26 call #t~ret0 := fact(~n - 1);< 258405#$Ultimate##0 ~n := #in~n; 258451#L25 assume ~n <= 0;#res := 1; 258449#factFINAL assume true; 258403#factEXIT >#66#return; 258399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258394#factFINAL assume true; 258059#factEXIT >#66#return; 258068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258379#factFINAL assume true; 257954#factEXIT >#66#return; 257979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258154#factFINAL assume true; 258140#factEXIT >#66#return; 258137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258131#factFINAL assume true; 258004#factEXIT >#72#return; 258027#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 258353#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 258335#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 258333#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 258331#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 258107#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 258129#$Ultimate##0 ~n := #in~n; 258518#L25 assume !(~n <= 0); 258141#L26 call #t~ret0 := fact(~n - 1);< 258517#$Ultimate##0 ~n := #in~n; 258516#L25 assume !(~n <= 0); 257964#L26 call #t~ret0 := fact(~n - 1);< 258163#$Ultimate##0 ~n := #in~n; 258514#L25 assume !(~n <= 0); 258065#L26 call #t~ret0 := fact(~n - 1);< 257996#$Ultimate##0 ~n := #in~n; 258513#L25 assume !(~n <= 0); 258404#L26 call #t~ret0 := fact(~n - 1);< 258406#$Ultimate##0 ~n := #in~n; 258451#L25 assume ~n <= 0;#res := 1; 258449#factFINAL assume true; 258403#factEXIT >#66#return; 258399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258394#factFINAL assume true; 258059#factEXIT >#66#return; 258068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258379#factFINAL assume true; 257954#factEXIT >#66#return; 257979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258154#factFINAL assume true; 258140#factEXIT >#66#return; 258135#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258128#factFINAL assume true; 258105#factEXIT >#68#return; 258012#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 258049#$Ultimate##0 ~n := #in~n; 258100#L25 assume !(~n <= 0); 257976#L26 call #t~ret0 := fact(~n - 1);< 258085#$Ultimate##0 ~n := #in~n; 258510#L25 assume !(~n <= 0); 257965#L26 call #t~ret0 := fact(~n - 1);< 258405#$Ultimate##0 ~n := #in~n; 258451#L25 assume ~n <= 0;#res := 1; 258449#factFINAL assume true; 258403#factEXIT >#66#return; 258399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258394#factFINAL assume true; 258059#factEXIT >#66#return; 258058#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258051#factFINAL assume true; 258034#factEXIT >#70#return; 258035#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 258053#$Ultimate##0 ~n := #in~n; 258075#L25 assume !(~n <= 0); 258066#L26 call #t~ret0 := fact(~n - 1);< 257996#$Ultimate##0 ~n := #in~n; 258513#L25 assume !(~n <= 0); 258404#L26 call #t~ret0 := fact(~n - 1);< 258406#$Ultimate##0 ~n := #in~n; 258451#L25 assume ~n <= 0;#res := 1; 258449#factFINAL assume true; 258403#factEXIT >#66#return; 258399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258394#factFINAL assume true; 258059#factEXIT >#66#return; 258058#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258051#factFINAL assume true; 258034#factEXIT >#72#return; 258038#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 258291#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 258252#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 258248#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 258247#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 258125#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 258126#$Ultimate##0 ~n := #in~n; 259196#L25 assume !(~n <= 0); 258078#L26 call #t~ret0 := fact(~n - 1);< 258146#$Ultimate##0 ~n := #in~n; 258765#L25 assume !(~n <= 0); 257963#L26 call #t~ret0 := fact(~n - 1);< 258162#$Ultimate##0 ~n := #in~n; 258536#L25 assume !(~n <= 0); 258064#L26 call #t~ret0 := fact(~n - 1);< 258401#$Ultimate##0 ~n := #in~n; 258513#L25 assume !(~n <= 0); 258404#L26 call #t~ret0 := fact(~n - 1);< 258406#$Ultimate##0 ~n := #in~n; 258451#L25 assume ~n <= 0;#res := 1; 258449#factFINAL assume true; 258403#factEXIT >#66#return; 258399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258394#factFINAL assume true; 258059#factEXIT >#66#return; 258068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258379#factFINAL assume true; 257954#factEXIT >#66#return; 257979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258154#factFINAL assume true; 258140#factEXIT >#66#return; 258135#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258128#factFINAL assume true; 258105#factEXIT >#68#return; 258018#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 258049#$Ultimate##0 ~n := #in~n; 258100#L25 assume !(~n <= 0); 257976#L26 call #t~ret0 := fact(~n - 1);< 258085#$Ultimate##0 ~n := #in~n; 258510#L25 assume !(~n <= 0); 257965#L26 call #t~ret0 := fact(~n - 1);< 258405#$Ultimate##0 ~n := #in~n; 258510#L25 assume !(~n <= 0); 257965#L26 call #t~ret0 := fact(~n - 1);< 258405#$Ultimate##0 ~n := #in~n; 258510#L25 assume !(~n <= 0); 257965#L26 call #t~ret0 := fact(~n - 1);< 258405#$Ultimate##0 ~n := #in~n; 258451#L25 assume ~n <= 0;#res := 1; 258449#factFINAL assume true; 258403#factEXIT >#66#return; 258399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258394#factFINAL assume true; 258059#factEXIT >#66#return; 258068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258379#factFINAL assume true; 257954#factEXIT >#66#return; 257979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258154#factFINAL assume true; 258140#factEXIT >#66#return; 258137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258131#factFINAL assume true; 258004#factEXIT >#70#return; 257685#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 258055#$Ultimate##0 ~n := #in~n; 258515#L25 assume !(~n <= 0); 258062#L26 call #t~ret0 := fact(~n - 1);< 257985#$Ultimate##0 ~n := #in~n; 258102#L25 assume ~n <= 0;#res := 1; 258086#factFINAL assume true; 258076#factEXIT >#66#return; 258074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258054#factFINAL assume true; 258039#factEXIT >#72#return; 258047#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 258158#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 258147#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 258136#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 258130#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 258111#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 258126#$Ultimate##0 ~n := #in~n; 259196#L25 assume !(~n <= 0); 258078#L26 call #t~ret0 := fact(~n - 1);< 258146#$Ultimate##0 ~n := #in~n; 258765#L25 assume !(~n <= 0); 257963#L26 call #t~ret0 := fact(~n - 1);< 258162#$Ultimate##0 ~n := #in~n; 258536#L25 assume !(~n <= 0); 258064#L26 call #t~ret0 := fact(~n - 1);< 258401#$Ultimate##0 ~n := #in~n; 258513#L25 assume !(~n <= 0); 258404#L26 call #t~ret0 := fact(~n - 1);< 258406#$Ultimate##0 ~n := #in~n; 258451#L25 assume ~n <= 0;#res := 1; 258449#factFINAL assume true; 258403#factEXIT >#66#return; 258399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258394#factFINAL assume true; 258059#factEXIT >#66#return; 258068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258379#factFINAL assume true; 257954#factEXIT >#66#return; 257979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258154#factFINAL assume true; 258140#factEXIT >#66#return; 258135#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258128#factFINAL assume true; 258105#factEXIT >#68#return; 258021#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 258049#$Ultimate##0 ~n := #in~n; 258100#L25 assume !(~n <= 0); 257976#L26 call #t~ret0 := fact(~n - 1);< 258085#$Ultimate##0 ~n := #in~n; 258510#L25 assume !(~n <= 0); 257965#L26 call #t~ret0 := fact(~n - 1);< 258405#$Ultimate##0 ~n := #in~n; 258510#L25 assume !(~n <= 0); 257965#L26 call #t~ret0 := fact(~n - 1);< 258405#$Ultimate##0 ~n := #in~n; 258510#L25 assume !(~n <= 0); 257965#L26 call #t~ret0 := fact(~n - 1);< 258405#$Ultimate##0 ~n := #in~n; 258451#L25 assume ~n <= 0;#res := 1; 258449#factFINAL assume true; 258403#factEXIT >#66#return; 258399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258394#factFINAL assume true; 258059#factEXIT >#66#return; 258068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258379#factFINAL assume true; 257954#factEXIT >#66#return; 257979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258154#factFINAL assume true; 258140#factEXIT >#66#return; 258137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258131#factFINAL assume true; 258004#factEXIT >#70#return; 257705#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 258055#$Ultimate##0 ~n := #in~n; 258515#L25 assume ~n <= 0;#res := 1; 257713#factFINAL assume true; 257681#factEXIT >#72#return; 257637#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 257638#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 257653#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 257660#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 257661#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257953#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 259755#$Ultimate##0 ~n := #in~n; 259812#L25 assume !(~n <= 0); 257629#L26 call #t~ret0 := fact(~n - 1);< 259676#$Ultimate##0 ~n := #in~n; 257665#L25 assume !(~n <= 0); 257628#L26 call #t~ret0 := fact(~n - 1);< 257632#$Ultimate##0 ~n := #in~n; 257665#L25 assume !(~n <= 0); 257628#L26 call #t~ret0 := fact(~n - 1);< 257632#$Ultimate##0 ~n := #in~n; 257665#L25 assume !(~n <= 0); 257628#L26 call #t~ret0 := fact(~n - 1);< 257632#$Ultimate##0 ~n := #in~n; 257665#L25 assume !(~n <= 0); 257628#L26 call #t~ret0 := fact(~n - 1);< 257632#$Ultimate##0 ~n := #in~n; 257669#L25 assume ~n <= 0;#res := 1; 259834#factFINAL assume true; 259821#factEXIT >#66#return; 259820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259819#factFINAL assume true; 259789#factEXIT >#66#return; 259793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259804#factFINAL assume true; 259799#factEXIT >#66#return; 259802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259814#factFINAL assume true; 259784#factEXIT >#66#return; 259782#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259842#factFINAL assume true; 259779#factEXIT >#66#return; 259780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259771#factFINAL assume true; 259752#factEXIT >#74#return; 259753#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 259755#$Ultimate##0 ~n := #in~n; 259812#L25 assume !(~n <= 0); 257629#L26 call #t~ret0 := fact(~n - 1);< 259676#$Ultimate##0 ~n := #in~n; 257665#L25 assume !(~n <= 0); 257628#L26 call #t~ret0 := fact(~n - 1);< 257632#$Ultimate##0 ~n := #in~n; 257665#L25 assume !(~n <= 0); 257628#L26 call #t~ret0 := fact(~n - 1);< 257632#$Ultimate##0 ~n := #in~n; 257665#L25 assume !(~n <= 0); 257628#L26 call #t~ret0 := fact(~n - 1);< 257632#$Ultimate##0 ~n := #in~n; 257665#L25 assume !(~n <= 0); 257628#L26 call #t~ret0 := fact(~n - 1);< 257632#$Ultimate##0 ~n := #in~n; 257669#L25 assume ~n <= 0;#res := 1; 259834#factFINAL assume true; 259821#factEXIT >#66#return; 259820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259819#factFINAL assume true; 259789#factEXIT >#66#return; 259793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259804#factFINAL assume true; 259799#factEXIT >#66#return; 259802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259814#factFINAL assume true; 259784#factEXIT >#66#return; 259782#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259842#factFINAL assume true; 259779#factEXIT >#66#return; 259780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259771#factFINAL assume true; 259752#factEXIT >#76#return; 257720#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 259844#$Ultimate##0 ~n := #in~n; 259850#L25 assume !(~n <= 0); 257598#L26 call #t~ret0 := fact(~n - 1);< 257627#$Ultimate##0 ~n := #in~n; 259839#L25 assume ~n <= 0;#res := 1; 259835#factFINAL assume true; 257595#factEXIT >#66#return; 257605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259843#factFINAL assume true; 257719#factEXIT >#78#return; 257718#L30-8 [2023-02-18 08:56:42,721 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:42,721 INFO L85 PathProgramCache]: Analyzing trace with hash 2135700754, now seen corresponding path program 45 times [2023-02-18 08:56:42,721 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:42,721 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [429121618] [2023-02-18 08:56:42,721 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:42,722 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:42,729 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:42,729 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [170230050] [2023-02-18 08:56:42,729 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:56:42,729 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:42,729 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:42,733 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-18 08:56:42,733 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-18 08:56:43,026 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 17 check-sat command(s) [2023-02-18 08:56:43,026 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:43,026 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:43,109 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:43,142 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:43,142 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:43,142 INFO L85 PathProgramCache]: Analyzing trace with hash -1761135268, now seen corresponding path program 46 times [2023-02-18 08:56:43,142 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:43,142 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1785646430] [2023-02-18 08:56:43,143 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:43,143 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:43,150 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:43,150 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1865476112] [2023-02-18 08:56:43,151 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:56:43,151 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:43,151 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:43,158 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-18 08:56:43,158 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-18 08:56:43,400 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:56:43,400 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:43,404 INFO L263 TraceCheckSpWp]: Trace formula consists of 974 conjuncts, 26 conjunts are in the unsatisfiable core [2023-02-18 08:56:43,407 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:43,475 INFO L134 CoverageAnalysis]: Checked inductivity of 13583 backedges. 5362 proven. 306 refuted. 0 times theorem prover too weak. 7915 trivial. 0 not checked. [2023-02-18 08:56:43,476 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:43,713 INFO L134 CoverageAnalysis]: Checked inductivity of 13583 backedges. 254 proven. 2726 refuted. 0 times theorem prover too weak. 10603 trivial. 0 not checked. [2023-02-18 08:56:43,713 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:43,713 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1785646430] [2023-02-18 08:56:43,713 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:43,713 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1865476112] [2023-02-18 08:56:43,713 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1865476112] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:43,713 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:43,713 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 25] total 28 [2023-02-18 08:56:43,713 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [467153748] [2023-02-18 08:56:43,713 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:43,714 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:43,714 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:43,714 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 28 interpolants. [2023-02-18 08:56:43,714 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=115, Invalid=641, Unknown=0, NotChecked=0, Total=756 [2023-02-18 08:56:43,714 INFO L87 Difference]: Start difference. First operand 2286 states and 3276 transitions. cyclomatic complexity: 1017 Second operand has 28 states, 25 states have (on average 3.0) internal successors, (75), 28 states have internal predecessors, (75), 17 states have call successors, (30), 2 states have call predecessors, (30), 12 states have return successors, (36), 12 states have call predecessors, (36), 17 states have call successors, (36) [2023-02-18 08:56:44,662 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:44,662 INFO L93 Difference]: Finished difference Result 2596 states and 3745 transitions. [2023-02-18 08:56:44,662 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2596 states and 3745 transitions. [2023-02-18 08:56:44,673 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 270 [2023-02-18 08:56:44,684 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2596 states to 2589 states and 3738 transitions. [2023-02-18 08:56:44,684 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 259 [2023-02-18 08:56:44,684 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 259 [2023-02-18 08:56:44,684 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2589 states and 3738 transitions. [2023-02-18 08:56:44,685 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:44,685 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2589 states and 3738 transitions. [2023-02-18 08:56:44,685 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2589 states and 3738 transitions. [2023-02-18 08:56:44,714 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2589 to 2334. [2023-02-18 08:56:44,715 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2334 states, 1470 states have (on average 1.063265306122449) internal successors, (1563), 1470 states have internal predecessors, (1563), 676 states have call successors, (688), 224 states have call predecessors, (688), 188 states have return successors, (1077), 639 states have call predecessors, (1077), 676 states have call successors, (1077) [2023-02-18 08:56:44,721 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2334 states to 2334 states and 3328 transitions. [2023-02-18 08:56:44,721 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2334 states and 3328 transitions. [2023-02-18 08:56:44,722 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 23 states. [2023-02-18 08:56:44,722 INFO L428 stractBuchiCegarLoop]: Abstraction has 2334 states and 3328 transitions. [2023-02-18 08:56:44,722 INFO L335 stractBuchiCegarLoop]: ======== Iteration 59 ============ [2023-02-18 08:56:44,722 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2334 states and 3328 transitions. [2023-02-18 08:56:44,726 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 256 [2023-02-18 08:56:44,726 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:44,726 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:44,727 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:44,727 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [72, 72, 54, 54, 54, 54, 18, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:44,728 INFO L748 eck$LassoCheckResult]: Stem: 265331#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 265282#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; 265283#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 265301#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; 265332#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 267106#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 267105#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 266496#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 266497#$Ultimate##0 ~n := #in~n; 266500#L25 assume ~n <= 0;#res := 1; 266498#factFINAL assume true; 266495#factEXIT >#68#return; 266493#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 266494#$Ultimate##0 ~n := #in~n; 266501#L25 assume ~n <= 0;#res := 1; 266499#factFINAL assume true; 266492#factEXIT >#70#return; 266490#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 266491#$Ultimate##0 ~n := #in~n; 266503#L25 assume ~n <= 0;#res := 1; 266502#factFINAL assume true; 266489#factEXIT >#72#return; 266487#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 266483#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 266481#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 266479#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 266478#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 266476#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 266477#$Ultimate##0 ~n := #in~n; 266488#L25 assume !(~n <= 0); 266485#L26 call #t~ret0 := fact(~n - 1);< 266486#$Ultimate##0 ~n := #in~n; 266505#L25 assume ~n <= 0;#res := 1; 266504#factFINAL assume true; 266484#factEXIT >#66#return; 266482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 266480#factFINAL assume true; 266475#factEXIT >#74#return; 266473#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 266474#$Ultimate##0 ~n := #in~n; 266508#L25 assume ~n <= 0;#res := 1; 266506#factFINAL assume true; 266472#factEXIT >#76#return; 266469#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 266470#$Ultimate##0 ~n := #in~n; 266517#L25 assume !(~n <= 0); 266514#L26 call #t~ret0 := fact(~n - 1);< 266515#$Ultimate##0 ~n := #in~n; 266530#L25 assume ~n <= 0;#res := 1; 266522#factFINAL assume true; 266513#factEXIT >#66#return; 266510#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 266509#factFINAL assume true; 266468#factEXIT >#78#return; 266461#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 266458#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 266457#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 266454#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 266453#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 266451#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 266452#$Ultimate##0 ~n := #in~n; 266471#L25 assume !(~n <= 0); 266464#L26 call #t~ret0 := fact(~n - 1);< 266467#$Ultimate##0 ~n := #in~n; 266516#L25 assume !(~n <= 0); 266463#L26 call #t~ret0 := fact(~n - 1);< 266512#$Ultimate##0 ~n := #in~n; 267071#L25 assume ~n <= 0;#res := 1; 267070#factFINAL assume true; 267068#factEXIT >#66#return; 267067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 267066#factFINAL assume true; 267062#factEXIT >#66#return; 266459#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 266460#factFINAL assume true; 266450#factEXIT >#74#return; 266448#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 266449#$Ultimate##0 ~n := #in~n; 267079#L25 assume ~n <= 0;#res := 1; 267078#factFINAL assume true; 266447#factEXIT >#76#return; 266445#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 266446#$Ultimate##0 ~n := #in~n; 267065#L25 assume !(~n <= 0); 266465#L26 call #t~ret0 := fact(~n - 1);< 266467#$Ultimate##0 ~n := #in~n; 266516#L25 assume !(~n <= 0); 266463#L26 call #t~ret0 := fact(~n - 1);< 266512#$Ultimate##0 ~n := #in~n; 267071#L25 assume ~n <= 0;#res := 1; 267070#factFINAL assume true; 267068#factEXIT >#66#return; 267067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 267066#factFINAL assume true; 267062#factEXIT >#66#return; 267060#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 267059#factFINAL assume true; 266444#factEXIT >#78#return; 266442#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 266437#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 266435#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 266433#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 266431#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 266429#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 266430#$Ultimate##0 ~n := #in~n; 266443#L25 assume !(~n <= 0); 266440#L26 call #t~ret0 := fact(~n - 1);< 266441#$Ultimate##0 ~n := #in~n; 267038#L25 assume !(~n <= 0); 266439#L26 call #t~ret0 := fact(~n - 1);< 267037#$Ultimate##0 ~n := #in~n; 267038#L25 assume !(~n <= 0); 266439#L26 call #t~ret0 := fact(~n - 1);< 267037#$Ultimate##0 ~n := #in~n; 267047#L25 assume ~n <= 0;#res := 1; 267045#factFINAL assume true; 267042#factEXIT >#66#return; 267040#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 267039#factFINAL assume true; 267036#factEXIT >#66#return; 267035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 267034#factFINAL assume true; 266438#factEXIT >#66#return; 266436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 266434#factFINAL assume true; 266428#factEXIT >#74#return; 266425#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 266426#$Ultimate##0 ~n := #in~n; 267008#L25 assume ~n <= 0;#res := 1; 267007#factFINAL assume true; 266424#factEXIT >#76#return; 265311#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 266391#$Ultimate##0 ~n := #in~n; 267014#L25 assume !(~n <= 0); 267000#L26 call #t~ret0 := fact(~n - 1);< 267003#$Ultimate##0 ~n := #in~n; 267012#L25 assume !(~n <= 0); 267001#L26 call #t~ret0 := fact(~n - 1);< 267011#$Ultimate##0 ~n := #in~n; 267012#L25 assume !(~n <= 0); 267001#L26 call #t~ret0 := fact(~n - 1);< 267011#$Ultimate##0 ~n := #in~n; 267018#L25 assume ~n <= 0;#res := 1; 267017#factFINAL assume true; 267016#factEXIT >#66#return; 267015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 267013#factFINAL assume true; 267010#factEXIT >#66#return; 267009#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 267006#factFINAL assume true; 266998#factEXIT >#66#return; 265310#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265312#factFINAL assume true; 266427#factEXIT >#78#return; 266386#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 266384#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 266383#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 266382#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 266381#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 266379#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 266377#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 265576#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 265568#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 265573#$Ultimate##0 ~n := #in~n; 265605#L25 assume !(~n <= 0); 265590#L26 call #t~ret0 := fact(~n - 1);< 265595#$Ultimate##0 ~n := #in~n; 265606#L25 assume ~n <= 0;#res := 1; 265596#factFINAL assume true; 265579#factEXIT >#66#return; 265578#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265575#factFINAL assume true; 265567#factEXIT >#68#return; 265556#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 265564#$Ultimate##0 ~n := #in~n; 265574#L25 assume ~n <= 0;#res := 1; 265566#factFINAL assume true; 265552#factEXIT >#70#return; 265545#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 265546#$Ultimate##0 ~n := #in~n; 265577#L25 assume !(~n <= 0); 265458#L26 call #t~ret0 := fact(~n - 1);< 265475#$Ultimate##0 ~n := #in~n; 265565#L25 assume ~n <= 0;#res := 1; 265547#factFINAL assume true; 265528#factEXIT >#66#return; 265533#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265551#factFINAL assume true; 265544#factEXIT >#72#return; 265543#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 265542#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 265540#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 265539#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 265527#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 265492#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 265524#$Ultimate##0 ~n := #in~n; 265541#L25 assume !(~n <= 0); 265456#L26 call #t~ret0 := fact(~n - 1);< 265475#$Ultimate##0 ~n := #in~n; 265565#L25 assume ~n <= 0;#res := 1; 265547#factFINAL assume true; 265528#factEXIT >#66#return; 265536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265526#factFINAL assume true; 265523#factEXIT >#68#return; 265392#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 265519#$Ultimate##0 ~n := #in~n; 265609#L25 assume !(~n <= 0); 265455#L26 call #t~ret0 := fact(~n - 1);< 265538#$Ultimate##0 ~n := #in~n; 265565#L25 assume ~n <= 0;#res := 1; 265547#factFINAL assume true; 265528#factEXIT >#66#return; 265525#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265520#factFINAL assume true; 265506#factEXIT >#70#return; 265366#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 265345#$Ultimate##0 ~n := #in~n; 265367#L25 assume ~n <= 0;#res := 1; 265371#factFINAL assume true; 266041#factEXIT >#72#return; 266042#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 266238#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 266237#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 266235#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 266233#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 265398#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 265441#$Ultimate##0 ~n := #in~n; 267522#L25 assume !(~n <= 0); 265463#L26 call #t~ret0 := fact(~n - 1);< 265666#$Ultimate##0 ~n := #in~n; 267031#L25 assume !(~n <= 0); 265459#L26 call #t~ret0 := fact(~n - 1);< 267025#$Ultimate##0 ~n := #in~n; 267033#L25 assume ~n <= 0;#res := 1; 267032#factFINAL assume true; 267023#factEXIT >#66#return; 267022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 267020#factFINAL assume true; 265444#factEXIT >#66#return; 265472#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 267185#factFINAL assume true; 265372#factEXIT >#74#return; 265386#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 265519#$Ultimate##0 ~n := #in~n; 265609#L25 assume !(~n <= 0); 265455#L26 call #t~ret0 := fact(~n - 1);< 265538#$Ultimate##0 ~n := #in~n; 265565#L25 assume ~n <= 0;#res := 1; 265547#factFINAL assume true; 265528#factEXIT >#66#return; 265525#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265520#factFINAL assume true; 265506#factEXIT >#76#return; 265413#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 265522#$Ultimate##0 ~n := #in~n; 265607#L25 assume !(~n <= 0); 265532#L26 call #t~ret0 := fact(~n - 1);< 265537#$Ultimate##0 ~n := #in~n; 265565#L25 assume ~n <= 0;#res := 1; 265547#factFINAL assume true; 265528#factEXIT >#66#return; 265525#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265520#factFINAL assume true; 265506#factEXIT >#78#return; 265518#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 266412#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 266411#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 266410#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 266407#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 266000#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 265334#$Ultimate##0 ~n := #in~n; 266133#L25 assume !(~n <= 0); 265880#L26 call #t~ret0 := fact(~n - 1);< 265886#$Ultimate##0 ~n := #in~n; 265902#L25 assume !(~n <= 0); 265878#L26 call #t~ret0 := fact(~n - 1);< 265899#$Ultimate##0 ~n := #in~n; 265902#L25 assume !(~n <= 0); 265878#L26 call #t~ret0 := fact(~n - 1);< 265899#$Ultimate##0 ~n := #in~n; 265909#L25 assume ~n <= 0;#res := 1; 265906#factFINAL assume true; 265896#factEXIT >#66#return; 265895#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265888#factFINAL assume true; 265870#factEXIT >#66#return; 265884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265961#factFINAL assume true; 265957#factEXIT >#66#return; 265958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 266351#factFINAL assume true; 266030#factEXIT >#74#return; 265946#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 265954#$Ultimate##0 ~n := #in~n; 265953#L25 assume !(~n <= 0); 265875#L26 call #t~ret0 := fact(~n - 1);< 265952#$Ultimate##0 ~n := #in~n; 265905#L25 assume ~n <= 0;#res := 1; 265942#factFINAL assume true; 265929#factEXIT >#66#return; 265932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 266790#factFINAL assume true; 266352#factEXIT >#76#return; 265333#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 265334#$Ultimate##0 ~n := #in~n; 266133#L25 assume !(~n <= 0); 265880#L26 call #t~ret0 := fact(~n - 1);< 265886#$Ultimate##0 ~n := #in~n; 265902#L25 assume !(~n <= 0); 265878#L26 call #t~ret0 := fact(~n - 1);< 265899#$Ultimate##0 ~n := #in~n; 265909#L25 assume ~n <= 0;#res := 1; 265906#factFINAL assume true; 265896#factEXIT >#66#return; 265895#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265888#factFINAL assume true; 265870#factEXIT >#66#return; 265883#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 266350#factFINAL assume true; 265997#factEXIT >#78#return; 265850#L30-8 [2023-02-18 08:56:44,728 INFO L750 eck$LassoCheckResult]: Loop: 265850#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 266419#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 266418#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 266417#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 266416#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 266415#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 266414#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 265336#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 265260#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 265261#$Ultimate##0 ~n := #in~n; 265894#L25 assume !(~n <= 0); 265448#L26 call #t~ret0 := fact(~n - 1);< 265666#$Ultimate##0 ~n := #in~n; 267031#L25 assume !(~n <= 0); 265459#L26 call #t~ret0 := fact(~n - 1);< 267025#$Ultimate##0 ~n := #in~n; 267031#L25 assume !(~n <= 0); 265459#L26 call #t~ret0 := fact(~n - 1);< 267025#$Ultimate##0 ~n := #in~n; 267031#L25 assume !(~n <= 0); 265459#L26 call #t~ret0 := fact(~n - 1);< 267025#$Ultimate##0 ~n := #in~n; 267033#L25 assume ~n <= 0;#res := 1; 267032#factFINAL assume true; 267023#factEXIT >#66#return; 267022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 267020#factFINAL assume true; 265444#factEXIT >#66#return; 265470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265753#factFINAL assume true; 265714#factEXIT >#66#return; 265719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265745#factFINAL assume true; 265701#factEXIT >#66#return; 265705#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 266015#factFINAL assume true; 266013#factEXIT >#68#return; 265807#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 265808#$Ultimate##0 ~n := #in~n; 265869#L25 assume ~n <= 0;#res := 1; 265862#factFINAL assume true; 265803#factEXIT >#70#return; 265796#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 265938#$Ultimate##0 ~n := #in~n; 265936#L25 assume !(~n <= 0); 265642#L26 call #t~ret0 := fact(~n - 1);< 265746#$Ultimate##0 ~n := #in~n; 267535#L25 assume !(~n <= 0); 265646#L26 call #t~ret0 := fact(~n - 1);< 265725#$Ultimate##0 ~n := #in~n; 267147#L25 assume !(~n <= 0); 265445#L26 call #t~ret0 := fact(~n - 1);< 265747#$Ultimate##0 ~n := #in~n; 267031#L25 assume !(~n <= 0); 265459#L26 call #t~ret0 := fact(~n - 1);< 267025#$Ultimate##0 ~n := #in~n; 267031#L25 assume !(~n <= 0); 265459#L26 call #t~ret0 := fact(~n - 1);< 267025#$Ultimate##0 ~n := #in~n; 267033#L25 assume ~n <= 0;#res := 1; 267032#factFINAL assume true; 267023#factEXIT >#66#return; 267022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 267020#factFINAL assume true; 265444#factEXIT >#66#return; 265470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265753#factFINAL assume true; 265714#factEXIT >#66#return; 265719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265745#factFINAL assume true; 265701#factEXIT >#66#return; 265649#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265660#factFINAL assume true; 265638#factEXIT >#66#return; 265650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265861#factFINAL assume true; 265795#factEXIT >#72#return; 265798#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 266371#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 266370#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 266367#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 266365#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 265674#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 265503#$Ultimate##0 ~n := #in~n; 266886#L25 assume !(~n <= 0); 265702#L26 call #t~ret0 := fact(~n - 1);< 265707#$Ultimate##0 ~n := #in~n; 267530#L25 assume !(~n <= 0); 265716#L26 call #t~ret0 := fact(~n - 1);< 265726#$Ultimate##0 ~n := #in~n; 267117#L25 assume !(~n <= 0); 265464#L26 call #t~ret0 := fact(~n - 1);< 265818#$Ultimate##0 ~n := #in~n; 267029#L25 assume !(~n <= 0); 267024#L26 call #t~ret0 := fact(~n - 1);< 267026#$Ultimate##0 ~n := #in~n; 267033#L25 assume ~n <= 0;#res := 1; 267032#factFINAL assume true; 267023#factEXIT >#66#return; 267022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 267020#factFINAL assume true; 265444#factEXIT >#66#return; 265470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265753#factFINAL assume true; 265714#factEXIT >#66#return; 265719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265745#factFINAL assume true; 265701#factEXIT >#66#return; 265700#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265699#factFINAL assume true; 265668#factEXIT >#68#return; 265676#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 265709#$Ultimate##0 ~n := #in~n; 266730#L25 assume !(~n <= 0); 265529#L26 call #t~ret0 := fact(~n - 1);< 265537#$Ultimate##0 ~n := #in~n; 265565#L25 assume ~n <= 0;#res := 1; 265547#factFINAL assume true; 265528#factEXIT >#66#return; 265534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265708#factFINAL assume true; 265681#factEXIT >#70#return; 265684#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 265697#$Ultimate##0 ~n := #in~n; 265728#L25 assume !(~n <= 0); 265715#L26 call #t~ret0 := fact(~n - 1);< 265726#$Ultimate##0 ~n := #in~n; 267117#L25 assume !(~n <= 0); 265464#L26 call #t~ret0 := fact(~n - 1);< 265818#$Ultimate##0 ~n := #in~n; 267029#L25 assume !(~n <= 0); 267024#L26 call #t~ret0 := fact(~n - 1);< 267026#$Ultimate##0 ~n := #in~n; 267033#L25 assume ~n <= 0;#res := 1; 267032#factFINAL assume true; 267023#factEXIT >#66#return; 267022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 267020#factFINAL assume true; 265444#factEXIT >#66#return; 265470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265753#factFINAL assume true; 265714#factEXIT >#66#return; 265718#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265696#factFINAL assume true; 265690#factEXIT >#72#return; 265692#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 267097#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 267096#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 267095#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 267094#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 265502#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 265503#$Ultimate##0 ~n := #in~n; 266886#L25 assume !(~n <= 0); 265702#L26 call #t~ret0 := fact(~n - 1);< 265707#$Ultimate##0 ~n := #in~n; 267530#L25 assume !(~n <= 0); 265716#L26 call #t~ret0 := fact(~n - 1);< 265726#$Ultimate##0 ~n := #in~n; 267117#L25 assume !(~n <= 0); 265464#L26 call #t~ret0 := fact(~n - 1);< 265818#$Ultimate##0 ~n := #in~n; 267029#L25 assume !(~n <= 0); 267024#L26 call #t~ret0 := fact(~n - 1);< 267026#$Ultimate##0 ~n := #in~n; 267033#L25 assume ~n <= 0;#res := 1; 267032#factFINAL assume true; 267023#factEXIT >#66#return; 267022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 267020#factFINAL assume true; 265444#factEXIT >#66#return; 265470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265753#factFINAL assume true; 265714#factEXIT >#66#return; 265719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265745#factFINAL assume true; 265701#factEXIT >#66#return; 265700#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265699#factFINAL assume true; 265668#factEXIT >#68#return; 265433#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 265415#$Ultimate##0 ~n := #in~n; 265611#L25 assume !(~n <= 0); 265452#L26 call #t~ret0 := fact(~n - 1);< 265666#$Ultimate##0 ~n := #in~n; 267031#L25 assume !(~n <= 0); 265459#L26 call #t~ret0 := fact(~n - 1);< 267025#$Ultimate##0 ~n := #in~n; 267033#L25 assume ~n <= 0;#res := 1; 267032#factFINAL assume true; 267023#factEXIT >#66#return; 267022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 267020#factFINAL assume true; 265444#factEXIT >#66#return; 265471#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265856#factFINAL assume true; 265769#factEXIT >#70#return; 265771#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 265788#$Ultimate##0 ~n := #in~n; 266534#L25 assume !(~n <= 0); 265465#L26 call #t~ret0 := fact(~n - 1);< 265818#$Ultimate##0 ~n := #in~n; 267029#L25 assume !(~n <= 0); 267024#L26 call #t~ret0 := fact(~n - 1);< 267026#$Ultimate##0 ~n := #in~n; 267033#L25 assume ~n <= 0;#res := 1; 267032#factFINAL assume true; 267023#factEXIT >#66#return; 267022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 267020#factFINAL assume true; 265444#factEXIT >#66#return; 265471#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265856#factFINAL assume true; 265769#factEXIT >#72#return; 265773#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 267021#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 265689#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 265680#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 265678#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 265671#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 265490#$Ultimate##0 ~n := #in~n; 267048#L25 assume !(~n <= 0); 265530#L26 call #t~ret0 := fact(~n - 1);< 267046#$Ultimate##0 ~n := #in~n; 267044#L25 assume !(~n <= 0); 265717#L26 call #t~ret0 := fact(~n - 1);< 267043#$Ultimate##0 ~n := #in~n; 267041#L25 assume !(~n <= 0); 265453#L26 call #t~ret0 := fact(~n - 1);< 267027#$Ultimate##0 ~n := #in~n; 267029#L25 assume !(~n <= 0); 267024#L26 call #t~ret0 := fact(~n - 1);< 267026#$Ultimate##0 ~n := #in~n; 267033#L25 assume ~n <= 0;#res := 1; 267032#factFINAL assume true; 267023#factEXIT >#66#return; 267022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 267020#factFINAL assume true; 265444#factEXIT >#66#return; 265470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265753#factFINAL assume true; 265714#factEXIT >#66#return; 265719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265745#factFINAL assume true; 265701#factEXIT >#66#return; 265700#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265699#factFINAL assume true; 265668#factEXIT >#68#return; 265423#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 265415#$Ultimate##0 ~n := #in~n; 265611#L25 assume !(~n <= 0); 265452#L26 call #t~ret0 := fact(~n - 1);< 265666#$Ultimate##0 ~n := #in~n; 267031#L25 assume !(~n <= 0); 265459#L26 call #t~ret0 := fact(~n - 1);< 267025#$Ultimate##0 ~n := #in~n; 267031#L25 assume !(~n <= 0); 265459#L26 call #t~ret0 := fact(~n - 1);< 267025#$Ultimate##0 ~n := #in~n; 267031#L25 assume !(~n <= 0); 265459#L26 call #t~ret0 := fact(~n - 1);< 267025#$Ultimate##0 ~n := #in~n; 267031#L25 assume !(~n <= 0); 265459#L26 call #t~ret0 := fact(~n - 1);< 267025#$Ultimate##0 ~n := #in~n; 267033#L25 assume ~n <= 0;#res := 1; 267032#factFINAL assume true; 267023#factEXIT >#66#return; 267022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 267020#factFINAL assume true; 265444#factEXIT >#66#return; 265470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265753#factFINAL assume true; 265714#factEXIT >#66#return; 265719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265745#factFINAL assume true; 265701#factEXIT >#66#return; 265649#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265660#factFINAL assume true; 265638#factEXIT >#66#return; 265648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 266008#factFINAL assume true; 265926#factEXIT >#70#return; 265350#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 265710#$Ultimate##0 ~n := #in~n; 267030#L25 assume !(~n <= 0); 265450#L26 call #t~ret0 := fact(~n - 1);< 265475#$Ultimate##0 ~n := #in~n; 265565#L25 assume ~n <= 0;#res := 1; 265547#factFINAL assume true; 265528#factEXIT >#66#return; 265534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265708#factFINAL assume true; 265681#factEXIT >#72#return; 265685#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 265817#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 265816#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 265815#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 265759#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 265489#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 265490#$Ultimate##0 ~n := #in~n; 267048#L25 assume !(~n <= 0); 265530#L26 call #t~ret0 := fact(~n - 1);< 267046#$Ultimate##0 ~n := #in~n; 267044#L25 assume !(~n <= 0); 265717#L26 call #t~ret0 := fact(~n - 1);< 267043#$Ultimate##0 ~n := #in~n; 267041#L25 assume !(~n <= 0); 265453#L26 call #t~ret0 := fact(~n - 1);< 267027#$Ultimate##0 ~n := #in~n; 267029#L25 assume !(~n <= 0); 267024#L26 call #t~ret0 := fact(~n - 1);< 267026#$Ultimate##0 ~n := #in~n; 267033#L25 assume ~n <= 0;#res := 1; 267032#factFINAL assume true; 267023#factEXIT >#66#return; 267022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 267020#factFINAL assume true; 265444#factEXIT >#66#return; 265470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265753#factFINAL assume true; 265714#factEXIT >#66#return; 265719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265745#factFINAL assume true; 265701#factEXIT >#66#return; 265700#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265699#factFINAL assume true; 265668#factEXIT >#68#return; 265414#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 265415#$Ultimate##0 ~n := #in~n; 265611#L25 assume !(~n <= 0); 265452#L26 call #t~ret0 := fact(~n - 1);< 265666#$Ultimate##0 ~n := #in~n; 267031#L25 assume !(~n <= 0); 265459#L26 call #t~ret0 := fact(~n - 1);< 267025#$Ultimate##0 ~n := #in~n; 267031#L25 assume !(~n <= 0); 265459#L26 call #t~ret0 := fact(~n - 1);< 267025#$Ultimate##0 ~n := #in~n; 267031#L25 assume !(~n <= 0); 265459#L26 call #t~ret0 := fact(~n - 1);< 267025#$Ultimate##0 ~n := #in~n; 267031#L25 assume !(~n <= 0); 265459#L26 call #t~ret0 := fact(~n - 1);< 267025#$Ultimate##0 ~n := #in~n; 267033#L25 assume ~n <= 0;#res := 1; 267032#factFINAL assume true; 267023#factEXIT >#66#return; 267022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 267020#factFINAL assume true; 265444#factEXIT >#66#return; 265470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265753#factFINAL assume true; 265714#factEXIT >#66#return; 265719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265745#factFINAL assume true; 265701#factEXIT >#66#return; 265649#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265660#factFINAL assume true; 265638#factEXIT >#66#return; 265648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 266008#factFINAL assume true; 265926#factEXIT >#70#return; 265360#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 265710#$Ultimate##0 ~n := #in~n; 267030#L25 assume ~n <= 0;#res := 1; 265346#factFINAL assume true; 265365#factEXIT >#72#return; 265974#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 265993#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 265992#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 265991#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 265985#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 265274#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 265323#$Ultimate##0 ~n := #in~n; 265314#L25 assume !(~n <= 0); 265315#L26 call #t~ret0 := fact(~n - 1);< 265288#$Ultimate##0 ~n := #in~n; 265902#L25 assume !(~n <= 0); 265878#L26 call #t~ret0 := fact(~n - 1);< 265899#$Ultimate##0 ~n := #in~n; 265902#L25 assume !(~n <= 0); 265878#L26 call #t~ret0 := fact(~n - 1);< 265899#$Ultimate##0 ~n := #in~n; 265902#L25 assume !(~n <= 0); 265878#L26 call #t~ret0 := fact(~n - 1);< 265899#$Ultimate##0 ~n := #in~n; 265902#L25 assume !(~n <= 0); 265878#L26 call #t~ret0 := fact(~n - 1);< 265899#$Ultimate##0 ~n := #in~n; 265909#L25 assume ~n <= 0;#res := 1; 265906#factFINAL assume true; 265896#factEXIT >#66#return; 265895#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265888#factFINAL assume true; 265870#factEXIT >#66#return; 265884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265961#factFINAL assume true; 265957#factEXIT >#66#return; 265960#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 266222#factFINAL assume true; 266173#factEXIT >#66#return; 265980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 266170#factFINAL assume true; 265978#factEXIT >#66#return; 265977#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265921#factFINAL assume true; 265914#factEXIT >#74#return; 265268#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 265323#$Ultimate##0 ~n := #in~n; 265314#L25 assume !(~n <= 0); 265315#L26 call #t~ret0 := fact(~n - 1);< 265288#$Ultimate##0 ~n := #in~n; 265902#L25 assume !(~n <= 0); 265878#L26 call #t~ret0 := fact(~n - 1);< 265899#$Ultimate##0 ~n := #in~n; 265902#L25 assume !(~n <= 0); 265878#L26 call #t~ret0 := fact(~n - 1);< 265899#$Ultimate##0 ~n := #in~n; 265902#L25 assume !(~n <= 0); 265878#L26 call #t~ret0 := fact(~n - 1);< 265899#$Ultimate##0 ~n := #in~n; 265909#L25 assume ~n <= 0;#res := 1; 265906#factFINAL assume true; 265896#factEXIT >#66#return; 265895#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265888#factFINAL assume true; 265870#factEXIT >#66#return; 265884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265961#factFINAL assume true; 265957#factEXIT >#66#return; 265960#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 266222#factFINAL assume true; 266173#factEXIT >#66#return; 266176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265264#factFINAL assume true; 265278#factEXIT >#76#return; 265852#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 265854#$Ultimate##0 ~n := #in~n; 265935#L25 assume !(~n <= 0); 265931#L26 call #t~ret0 := fact(~n - 1);< 265933#$Ultimate##0 ~n := #in~n; 265905#L25 assume ~n <= 0;#res := 1; 265942#factFINAL assume true; 265929#factEXIT >#66#return; 265928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 265927#factFINAL assume true; 265851#factEXIT >#78#return; 265850#L30-8 [2023-02-18 08:56:44,728 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:44,728 INFO L85 PathProgramCache]: Analyzing trace with hash 2135700754, now seen corresponding path program 46 times [2023-02-18 08:56:44,728 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:44,728 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [322860843] [2023-02-18 08:56:44,728 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:44,728 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:44,736 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:44,736 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1295514020] [2023-02-18 08:56:44,736 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:56:44,736 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:44,736 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:44,739 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-18 08:56:44,740 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-18 08:56:45,024 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:56:45,024 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:45,025 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:45,108 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:45,140 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:45,140 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:45,140 INFO L85 PathProgramCache]: Analyzing trace with hash 1696178324, now seen corresponding path program 47 times [2023-02-18 08:56:45,140 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:45,141 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1610459057] [2023-02-18 08:56:45,141 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:45,141 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:45,149 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:45,149 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1155227578] [2023-02-18 08:56:45,149 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:56:45,149 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:45,149 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:45,151 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-18 08:56:45,151 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-18 08:56:45,403 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 16 check-sat command(s) [2023-02-18 08:56:45,403 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:45,406 INFO L263 TraceCheckSpWp]: Trace formula consists of 774 conjuncts, 30 conjunts are in the unsatisfiable core [2023-02-18 08:56:45,409 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:45,489 INFO L134 CoverageAnalysis]: Checked inductivity of 13187 backedges. 5290 proven. 474 refuted. 0 times theorem prover too weak. 7423 trivial. 0 not checked. [2023-02-18 08:56:45,489 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:45,754 INFO L134 CoverageAnalysis]: Checked inductivity of 13187 backedges. 142 proven. 3059 refuted. 0 times theorem prover too weak. 9986 trivial. 0 not checked. [2023-02-18 08:56:45,754 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:45,754 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1610459057] [2023-02-18 08:56:45,754 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:45,754 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1155227578] [2023-02-18 08:56:45,754 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1155227578] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:45,754 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:45,754 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 27] total 31 [2023-02-18 08:56:45,755 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2082326392] [2023-02-18 08:56:45,755 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:45,755 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:45,755 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:45,755 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 31 interpolants. [2023-02-18 08:56:45,756 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=126, Invalid=804, Unknown=0, NotChecked=0, Total=930 [2023-02-18 08:56:45,756 INFO L87 Difference]: Start difference. First operand 2334 states and 3328 transitions. cyclomatic complexity: 1023 Second operand has 31 states, 26 states have (on average 2.8846153846153846) internal successors, (75), 29 states have internal predecessors, (75), 18 states have call successors, (33), 2 states have call predecessors, (33), 12 states have return successors, (39), 15 states have call predecessors, (39), 18 states have call successors, (39) [2023-02-18 08:56:46,585 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:46,585 INFO L93 Difference]: Finished difference Result 2543 states and 3599 transitions. [2023-02-18 08:56:46,585 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2543 states and 3599 transitions. [2023-02-18 08:56:46,596 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 286 [2023-02-18 08:56:46,607 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2543 states to 2470 states and 3503 transitions. [2023-02-18 08:56:46,607 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 245 [2023-02-18 08:56:46,607 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 245 [2023-02-18 08:56:46,607 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2470 states and 3503 transitions. [2023-02-18 08:56:46,608 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:46,608 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2470 states and 3503 transitions. [2023-02-18 08:56:46,608 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2470 states and 3503 transitions. [2023-02-18 08:56:46,630 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2470 to 2334. [2023-02-18 08:56:46,632 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2334 states, 1470 states have (on average 1.063265306122449) internal successors, (1563), 1470 states have internal predecessors, (1563), 676 states have call successors, (688), 224 states have call predecessors, (688), 188 states have return successors, (1067), 639 states have call predecessors, (1067), 676 states have call successors, (1067) [2023-02-18 08:56:46,638 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2334 states to 2334 states and 3318 transitions. [2023-02-18 08:56:46,639 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2334 states and 3318 transitions. [2023-02-18 08:56:46,639 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 23 states. [2023-02-18 08:56:46,639 INFO L428 stractBuchiCegarLoop]: Abstraction has 2334 states and 3318 transitions. [2023-02-18 08:56:46,639 INFO L335 stractBuchiCegarLoop]: ======== Iteration 60 ============ [2023-02-18 08:56:46,639 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2334 states and 3318 transitions. [2023-02-18 08:56:46,644 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 256 [2023-02-18 08:56:46,644 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:46,644 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:46,645 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:46,645 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [72, 72, 54, 54, 54, 54, 18, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:46,645 INFO L748 eck$LassoCheckResult]: Stem: 272940#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 272887#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; 272888#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 272908#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; 272897#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 272898#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 273354#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 273350#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 273351#$Ultimate##0 ~n := #in~n; 273355#L25 assume ~n <= 0;#res := 1; 273353#factFINAL assume true; 273349#factEXIT >#68#return; 273345#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 273346#$Ultimate##0 ~n := #in~n; 273352#L25 assume ~n <= 0;#res := 1; 273348#factFINAL assume true; 273344#factEXIT >#70#return; 273341#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 273342#$Ultimate##0 ~n := #in~n; 273347#L25 assume ~n <= 0;#res := 1; 273343#factFINAL assume true; 273340#factEXIT >#72#return; 273338#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 273335#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 273330#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 273326#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 273320#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 273315#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 273316#$Ultimate##0 ~n := #in~n; 273337#L25 assume !(~n <= 0); 273332#L26 call #t~ret0 := fact(~n - 1);< 273333#$Ultimate##0 ~n := #in~n; 273339#L25 assume ~n <= 0;#res := 1; 273336#factFINAL assume true; 273331#factEXIT >#66#return; 273327#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273321#factFINAL assume true; 273314#factEXIT >#74#return; 273312#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 273313#$Ultimate##0 ~n := #in~n; 273325#L25 assume ~n <= 0;#res := 1; 273319#factFINAL assume true; 273311#factEXIT >#76#return; 273309#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 273310#$Ultimate##0 ~n := #in~n; 273329#L25 assume !(~n <= 0); 273323#L26 call #t~ret0 := fact(~n - 1);< 273324#$Ultimate##0 ~n := #in~n; 273334#L25 assume ~n <= 0;#res := 1; 273328#factFINAL assume true; 273322#factEXIT >#66#return; 273318#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273317#factFINAL assume true; 273308#factEXIT >#78#return; 273307#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 273304#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 273299#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 273298#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 273294#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 273286#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 273290#$Ultimate##0 ~n := #in~n; 273303#L25 assume !(~n <= 0); 273278#L26 call #t~ret0 := fact(~n - 1);< 273282#$Ultimate##0 ~n := #in~n; 273301#L25 assume !(~n <= 0); 273277#L26 call #t~ret0 := fact(~n - 1);< 273296#$Ultimate##0 ~n := #in~n; 273305#L25 assume ~n <= 0;#res := 1; 273300#factFINAL assume true; 273295#factEXIT >#66#return; 273291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273285#factFINAL assume true; 273276#factEXIT >#66#return; 273281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273362#factFINAL assume true; 273289#factEXIT >#74#return; 273268#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 273269#$Ultimate##0 ~n := #in~n; 273292#L25 assume ~n <= 0;#res := 1; 273287#factFINAL assume true; 273267#factEXIT >#76#return; 273264#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 273265#$Ultimate##0 ~n := #in~n; 273356#L25 assume !(~n <= 0); 273279#L26 call #t~ret0 := fact(~n - 1);< 273282#$Ultimate##0 ~n := #in~n; 273301#L25 assume !(~n <= 0); 273277#L26 call #t~ret0 := fact(~n - 1);< 273296#$Ultimate##0 ~n := #in~n; 273305#L25 assume ~n <= 0;#res := 1; 273300#factFINAL assume true; 273295#factEXIT >#66#return; 273291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273285#factFINAL assume true; 273276#factEXIT >#66#return; 273275#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273273#factFINAL assume true; 273263#factEXIT >#78#return; 273260#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 273257#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 273252#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 273246#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 273242#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 273231#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 273232#$Ultimate##0 ~n := #in~n; 273256#L25 assume !(~n <= 0); 273250#L26 call #t~ret0 := fact(~n - 1);< 273251#$Ultimate##0 ~n := #in~n; 273274#L25 assume !(~n <= 0); 273249#L26 call #t~ret0 := fact(~n - 1);< 273272#$Ultimate##0 ~n := #in~n; 273274#L25 assume !(~n <= 0); 273249#L26 call #t~ret0 := fact(~n - 1);< 273272#$Ultimate##0 ~n := #in~n; 273306#L25 assume ~n <= 0;#res := 1; 273302#factFINAL assume true; 273297#factEXIT >#66#return; 273293#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273288#factFINAL assume true; 273271#factEXIT >#66#return; 273270#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273255#factFINAL assume true; 273248#factEXIT >#66#return; 273245#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273241#factFINAL assume true; 273230#factEXIT >#74#return; 273226#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 273227#$Ultimate##0 ~n := #in~n; 273239#L25 assume ~n <= 0;#res := 1; 273229#factFINAL assume true; 273225#factEXIT >#76#return; 272916#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 273223#$Ultimate##0 ~n := #in~n; 273259#L25 assume !(~n <= 0); 273236#L26 call #t~ret0 := fact(~n - 1);< 273238#$Ultimate##0 ~n := #in~n; 273262#L25 assume !(~n <= 0); 273234#L26 call #t~ret0 := fact(~n - 1);< 273254#$Ultimate##0 ~n := #in~n; 273262#L25 assume !(~n <= 0); 273234#L26 call #t~ret0 := fact(~n - 1);< 273254#$Ultimate##0 ~n := #in~n; 273284#L25 assume ~n <= 0;#res := 1; 273283#factFINAL assume true; 273266#factEXIT >#66#return; 273261#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273258#factFINAL assume true; 273253#factEXIT >#66#return; 273247#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273244#factFINAL assume true; 273233#factEXIT >#66#return; 272915#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 272917#factFINAL assume true; 273222#factEXIT >#78#return; 273205#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 273202#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 273200#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 273199#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 273198#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 273193#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 273154#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 273153#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 273112#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 273115#$Ultimate##0 ~n := #in~n; 273195#L25 assume !(~n <= 0); 273146#L26 call #t~ret0 := fact(~n - 1);< 273152#$Ultimate##0 ~n := #in~n; 273197#L25 assume ~n <= 0;#res := 1; 273184#factFINAL assume true; 273136#factEXIT >#66#return; 273135#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273134#factFINAL assume true; 273109#factEXIT >#68#return; 273096#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 273104#$Ultimate##0 ~n := #in~n; 273133#L25 assume ~n <= 0;#res := 1; 273108#factFINAL assume true; 273094#factEXIT >#70#return; 273091#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 273092#$Ultimate##0 ~n := #in~n; 273183#L25 assume !(~n <= 0); 273125#L26 call #t~ret0 := fact(~n - 1);< 273132#$Ultimate##0 ~n := #in~n; 273194#L25 assume ~n <= 0;#res := 1; 273155#factFINAL assume true; 273116#factEXIT >#66#return; 273107#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273093#factFINAL assume true; 273090#factEXIT >#72#return; 273089#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 273088#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 273087#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 273086#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 273085#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 273083#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 273084#$Ultimate##0 ~n := #in~n; 273196#L25 assume !(~n <= 0); 273122#L26 call #t~ret0 := fact(~n - 1);< 273132#$Ultimate##0 ~n := #in~n; 273194#L25 assume ~n <= 0;#res := 1; 273155#factFINAL assume true; 273116#factEXIT >#66#return; 273131#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273820#factFINAL assume true; 273818#factEXIT >#68#return; 273005#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 273377#$Ultimate##0 ~n := #in~n; 273382#L25 assume !(~n <= 0); 273121#L26 call #t~ret0 := fact(~n - 1);< 273379#$Ultimate##0 ~n := #in~n; 273194#L25 assume ~n <= 0;#res := 1; 273155#factFINAL assume true; 273116#factEXIT >#66#return; 273129#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273376#factFINAL assume true; 273363#factEXIT >#70#return; 272979#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 273592#$Ultimate##0 ~n := #in~n; 272978#L25 assume ~n <= 0;#res := 1; 272984#factFINAL assume true; 273588#factEXIT >#72#return; 273587#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 273586#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 273583#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 273582#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 273581#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 273016#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 273034#$Ultimate##0 ~n := #in~n; 273689#L25 assume !(~n <= 0); 273049#L26 call #t~ret0 := fact(~n - 1);< 273170#$Ultimate##0 ~n := #in~n; 273733#L25 assume !(~n <= 0); 273052#L26 call #t~ret0 := fact(~n - 1);< 273406#$Ultimate##0 ~n := #in~n; 273410#L25 assume ~n <= 0;#res := 1; 273408#factFINAL assume true; 273403#factEXIT >#66#return; 273402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273399#factFINAL assume true; 273386#factEXIT >#66#return; 273035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273027#factFINAL assume true; 272985#factEXIT >#74#return; 272986#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 273377#$Ultimate##0 ~n := #in~n; 273382#L25 assume !(~n <= 0); 273121#L26 call #t~ret0 := fact(~n - 1);< 273379#$Ultimate##0 ~n := #in~n; 273194#L25 assume ~n <= 0;#res := 1; 273155#factFINAL assume true; 273116#factEXIT >#66#return; 273129#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273376#factFINAL assume true; 273363#factEXIT >#76#return; 273021#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 273378#$Ultimate##0 ~n := #in~n; 273380#L25 assume !(~n <= 0); 273126#L26 call #t~ret0 := fact(~n - 1);< 273175#$Ultimate##0 ~n := #in~n; 273194#L25 assume ~n <= 0;#res := 1; 273155#factFINAL assume true; 273116#factEXIT >#66#return; 273129#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273376#factFINAL assume true; 273363#factEXIT >#78#return; 273371#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 273785#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 273776#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 273770#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 273767#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 273768#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 274544#$Ultimate##0 ~n := #in~n; 274607#L25 assume !(~n <= 0); 274419#L26 call #t~ret0 := fact(~n - 1);< 274522#$Ultimate##0 ~n := #in~n; 274621#L25 assume !(~n <= 0); 272868#L26 call #t~ret0 := fact(~n - 1);< 274617#$Ultimate##0 ~n := #in~n; 274621#L25 assume !(~n <= 0); 272868#L26 call #t~ret0 := fact(~n - 1);< 274617#$Ultimate##0 ~n := #in~n; 272922#L25 assume ~n <= 0;#res := 1; 272923#factFINAL assume true; 272867#factEXIT >#66#return; 272871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 274612#factFINAL assume true; 274601#factEXIT >#66#return; 274603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 274524#factFINAL assume true; 274514#factEXIT >#66#return; 274517#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 274543#factFINAL assume true; 274538#factEXIT >#74#return; 272936#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 272937#$Ultimate##0 ~n := #in~n; 274545#L25 assume !(~n <= 0); 274413#L26 call #t~ret0 := fact(~n - 1);< 274523#$Ultimate##0 ~n := #in~n; 274483#L25 assume ~n <= 0;#res := 1; 274480#factFINAL assume true; 274412#factEXIT >#66#return; 274420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 274627#factFINAL assume true; 274546#factEXIT >#76#return; 274541#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 274544#$Ultimate##0 ~n := #in~n; 274607#L25 assume !(~n <= 0); 274419#L26 call #t~ret0 := fact(~n - 1);< 274522#$Ultimate##0 ~n := #in~n; 274621#L25 assume !(~n <= 0); 272868#L26 call #t~ret0 := fact(~n - 1);< 274617#$Ultimate##0 ~n := #in~n; 272922#L25 assume ~n <= 0;#res := 1; 272923#factFINAL assume true; 272867#factEXIT >#66#return; 272871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 274612#factFINAL assume true; 274601#factEXIT >#66#return; 274600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 274571#factFINAL assume true; 274557#factEXIT >#78#return; 273885#L30-8 [2023-02-18 08:56:46,646 INFO L750 eck$LassoCheckResult]: Loop: 273885#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 273883#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 273881#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 273878#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 273872#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 273835#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 273834#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 273833#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 273600#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 273787#$Ultimate##0 ~n := #in~n; 273870#L25 assume !(~n <= 0); 273045#L26 call #t~ret0 := fact(~n - 1);< 273170#$Ultimate##0 ~n := #in~n; 273733#L25 assume !(~n <= 0); 273052#L26 call #t~ret0 := fact(~n - 1);< 273406#$Ultimate##0 ~n := #in~n; 273733#L25 assume !(~n <= 0); 273052#L26 call #t~ret0 := fact(~n - 1);< 273406#$Ultimate##0 ~n := #in~n; 273733#L25 assume !(~n <= 0); 273052#L26 call #t~ret0 := fact(~n - 1);< 273406#$Ultimate##0 ~n := #in~n; 273410#L25 assume ~n <= 0;#res := 1; 273408#factFINAL assume true; 273403#factEXIT >#66#return; 273402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273399#factFINAL assume true; 273386#factEXIT >#66#return; 273395#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273565#factFINAL assume true; 273556#factEXIT >#66#return; 273561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273596#factFINAL assume true; 273527#factEXIT >#66#return; 273533#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273788#factFINAL assume true; 273786#factEXIT >#68#return; 273779#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 273784#$Ultimate##0 ~n := #in~n; 273798#L25 assume ~n <= 0;#res := 1; 273796#factFINAL assume true; 273777#factEXIT >#70#return; 273772#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 273775#$Ultimate##0 ~n := #in~n; 273800#L25 assume !(~n <= 0); 273054#L26 call #t~ret0 := fact(~n - 1);< 273603#$Ultimate##0 ~n := #in~n; 273602#L25 assume !(~n <= 0); 273047#L26 call #t~ret0 := fact(~n - 1);< 273567#$Ultimate##0 ~n := #in~n; 273826#L25 assume !(~n <= 0); 273044#L26 call #t~ret0 := fact(~n - 1);< 273400#$Ultimate##0 ~n := #in~n; 273733#L25 assume !(~n <= 0); 273052#L26 call #t~ret0 := fact(~n - 1);< 273406#$Ultimate##0 ~n := #in~n; 273410#L25 assume ~n <= 0;#res := 1; 273408#factFINAL assume true; 273403#factEXIT >#66#return; 273402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273399#factFINAL assume true; 273386#factEXIT >#66#return; 273395#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273565#factFINAL assume true; 273556#factEXIT >#66#return; 273561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273596#factFINAL assume true; 273527#factEXIT >#66#return; 273534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273799#factFINAL assume true; 273771#factEXIT >#72#return; 273769#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 273766#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 273765#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 273764#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 273762#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 273476#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 273480#$Ultimate##0 ~n := #in~n; 273537#L25 assume !(~n <= 0); 273528#L26 call #t~ret0 := fact(~n - 1);< 273535#$Ultimate##0 ~n := #in~n; 273795#L25 assume !(~n <= 0); 273557#L26 call #t~ret0 := fact(~n - 1);< 273566#$Ultimate##0 ~n := #in~n; 273666#L25 assume !(~n <= 0); 273392#L26 call #t~ret0 := fact(~n - 1);< 273411#$Ultimate##0 ~n := #in~n; 273409#L25 assume !(~n <= 0); 273404#L26 call #t~ret0 := fact(~n - 1);< 273407#$Ultimate##0 ~n := #in~n; 273410#L25 assume ~n <= 0;#res := 1; 273408#factFINAL assume true; 273403#factEXIT >#66#return; 273402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273399#factFINAL assume true; 273386#factEXIT >#66#return; 273395#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273565#factFINAL assume true; 273556#factEXIT >#66#return; 273561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273596#factFINAL assume true; 273527#factEXIT >#66#return; 273526#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273479#factFINAL assume true; 273473#factEXIT >#68#return; 273171#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 273575#$Ultimate##0 ~n := #in~n; 273595#L25 assume !(~n <= 0); 273124#L26 call #t~ret0 := fact(~n - 1);< 273175#$Ultimate##0 ~n := #in~n; 273194#L25 assume ~n <= 0;#res := 1; 273155#factFINAL assume true; 273116#factEXIT >#66#return; 273128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273573#factFINAL assume true; 273507#factEXIT >#70#return; 273511#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 273672#$Ultimate##0 ~n := #in~n; 273670#L25 assume !(~n <= 0); 273558#L26 call #t~ret0 := fact(~n - 1);< 273566#$Ultimate##0 ~n := #in~n; 273666#L25 assume !(~n <= 0); 273392#L26 call #t~ret0 := fact(~n - 1);< 273411#$Ultimate##0 ~n := #in~n; 273409#L25 assume !(~n <= 0); 273404#L26 call #t~ret0 := fact(~n - 1);< 273407#$Ultimate##0 ~n := #in~n; 273410#L25 assume ~n <= 0;#res := 1; 273408#factFINAL assume true; 273403#factEXIT >#66#return; 273402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273399#factFINAL assume true; 273386#factEXIT >#66#return; 273395#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273565#factFINAL assume true; 273556#factEXIT >#66#return; 273559#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273687#factFINAL assume true; 273576#factEXIT >#72#return; 273577#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 273760#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 273759#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 273758#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 273756#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 273474#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 273480#$Ultimate##0 ~n := #in~n; 273537#L25 assume !(~n <= 0); 273528#L26 call #t~ret0 := fact(~n - 1);< 273535#$Ultimate##0 ~n := #in~n; 273795#L25 assume !(~n <= 0); 273557#L26 call #t~ret0 := fact(~n - 1);< 273566#$Ultimate##0 ~n := #in~n; 273666#L25 assume !(~n <= 0); 273392#L26 call #t~ret0 := fact(~n - 1);< 273411#$Ultimate##0 ~n := #in~n; 273409#L25 assume !(~n <= 0); 273404#L26 call #t~ret0 := fact(~n - 1);< 273407#$Ultimate##0 ~n := #in~n; 273410#L25 assume ~n <= 0;#res := 1; 273408#factFINAL assume true; 273403#factEXIT >#66#return; 273402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273399#factFINAL assume true; 273386#factEXIT >#66#return; 273395#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273565#factFINAL assume true; 273556#factEXIT >#66#return; 273561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273596#factFINAL assume true; 273527#factEXIT >#66#return; 273526#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273479#factFINAL assume true; 273473#factEXIT >#68#return; 273162#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 273453#$Ultimate##0 ~n := #in~n; 273471#L25 assume !(~n <= 0); 273038#L26 call #t~ret0 := fact(~n - 1);< 273170#$Ultimate##0 ~n := #in~n; 273733#L25 assume !(~n <= 0); 273052#L26 call #t~ret0 := fact(~n - 1);< 273406#$Ultimate##0 ~n := #in~n; 273410#L25 assume ~n <= 0;#res := 1; 273408#factFINAL assume true; 273403#factEXIT >#66#return; 273402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273399#factFINAL assume true; 273386#factEXIT >#66#return; 273396#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273761#factFINAL assume true; 273746#factEXIT >#70#return; 273747#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 273750#$Ultimate##0 ~n := #in~n; 273763#L25 assume !(~n <= 0); 273389#L26 call #t~ret0 := fact(~n - 1);< 273411#$Ultimate##0 ~n := #in~n; 273409#L25 assume !(~n <= 0); 273404#L26 call #t~ret0 := fact(~n - 1);< 273407#$Ultimate##0 ~n := #in~n; 273410#L25 assume ~n <= 0;#res := 1; 273408#factFINAL assume true; 273403#factEXIT >#66#return; 273402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273399#factFINAL assume true; 273386#factEXIT >#66#return; 273396#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273761#factFINAL assume true; 273746#factEXIT >#72#return; 273745#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 273744#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 273743#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 273742#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 273740#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 273460#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 273464#$Ultimate##0 ~n := #in~n; 273463#L25 assume !(~n <= 0); 273119#L26 call #t~ret0 := fact(~n - 1);< 273456#$Ultimate##0 ~n := #in~n; 273455#L25 assume !(~n <= 0); 273405#L26 call #t~ret0 := fact(~n - 1);< 273420#$Ultimate##0 ~n := #in~n; 273416#L25 assume !(~n <= 0); 273387#L26 call #t~ret0 := fact(~n - 1);< 273412#$Ultimate##0 ~n := #in~n; 273409#L25 assume !(~n <= 0); 273404#L26 call #t~ret0 := fact(~n - 1);< 273407#$Ultimate##0 ~n := #in~n; 273410#L25 assume ~n <= 0;#res := 1; 273408#factFINAL assume true; 273403#factEXIT >#66#return; 273402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273399#factFINAL assume true; 273386#factEXIT >#66#return; 273395#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273565#factFINAL assume true; 273556#factEXIT >#66#return; 273561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273596#factFINAL assume true; 273527#factEXIT >#66#return; 273526#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273479#factFINAL assume true; 273473#factEXIT >#68#return; 273169#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 273453#$Ultimate##0 ~n := #in~n; 273471#L25 assume !(~n <= 0); 273038#L26 call #t~ret0 := fact(~n - 1);< 273170#$Ultimate##0 ~n := #in~n; 273733#L25 assume !(~n <= 0); 273052#L26 call #t~ret0 := fact(~n - 1);< 273406#$Ultimate##0 ~n := #in~n; 273733#L25 assume !(~n <= 0); 273052#L26 call #t~ret0 := fact(~n - 1);< 273406#$Ultimate##0 ~n := #in~n; 273733#L25 assume !(~n <= 0); 273052#L26 call #t~ret0 := fact(~n - 1);< 273406#$Ultimate##0 ~n := #in~n; 273733#L25 assume !(~n <= 0); 273052#L26 call #t~ret0 := fact(~n - 1);< 273406#$Ultimate##0 ~n := #in~n; 273410#L25 assume ~n <= 0;#res := 1; 273408#factFINAL assume true; 273403#factEXIT >#66#return; 273402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273399#factFINAL assume true; 273386#factEXIT >#66#return; 273395#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273565#factFINAL assume true; 273556#factEXIT >#66#return; 273561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273596#factFINAL assume true; 273527#factEXIT >#66#return; 273057#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 275004#factFINAL assume true; 273036#factEXIT >#66#return; 273056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273809#factFINAL assume true; 273732#factEXIT >#70#return; 272966#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 273418#$Ultimate##0 ~n := #in~n; 273413#L25 assume !(~n <= 0); 273117#L26 call #t~ret0 := fact(~n - 1);< 273132#$Ultimate##0 ~n := #in~n; 273194#L25 assume ~n <= 0;#res := 1; 273155#factFINAL assume true; 273116#factEXIT >#66#return; 273128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273573#factFINAL assume true; 273507#factEXIT >#72#return; 273505#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 273497#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 273495#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 273493#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 273491#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 273461#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 273464#$Ultimate##0 ~n := #in~n; 273463#L25 assume !(~n <= 0); 273119#L26 call #t~ret0 := fact(~n - 1);< 273456#$Ultimate##0 ~n := #in~n; 273455#L25 assume !(~n <= 0); 273405#L26 call #t~ret0 := fact(~n - 1);< 273420#$Ultimate##0 ~n := #in~n; 273416#L25 assume !(~n <= 0); 273387#L26 call #t~ret0 := fact(~n - 1);< 273412#$Ultimate##0 ~n := #in~n; 273409#L25 assume !(~n <= 0); 273404#L26 call #t~ret0 := fact(~n - 1);< 273407#$Ultimate##0 ~n := #in~n; 273410#L25 assume ~n <= 0;#res := 1; 273408#factFINAL assume true; 273403#factEXIT >#66#return; 273402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273399#factFINAL assume true; 273386#factEXIT >#66#return; 273395#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273565#factFINAL assume true; 273556#factEXIT >#66#return; 273561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273596#factFINAL assume true; 273527#factEXIT >#66#return; 273526#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273479#factFINAL assume true; 273473#factEXIT >#68#return; 273160#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 273453#$Ultimate##0 ~n := #in~n; 273471#L25 assume !(~n <= 0); 273038#L26 call #t~ret0 := fact(~n - 1);< 273170#$Ultimate##0 ~n := #in~n; 273733#L25 assume !(~n <= 0); 273052#L26 call #t~ret0 := fact(~n - 1);< 273406#$Ultimate##0 ~n := #in~n; 273733#L25 assume !(~n <= 0); 273052#L26 call #t~ret0 := fact(~n - 1);< 273406#$Ultimate##0 ~n := #in~n; 273733#L25 assume !(~n <= 0); 273052#L26 call #t~ret0 := fact(~n - 1);< 273406#$Ultimate##0 ~n := #in~n; 273733#L25 assume !(~n <= 0); 273052#L26 call #t~ret0 := fact(~n - 1);< 273406#$Ultimate##0 ~n := #in~n; 273410#L25 assume ~n <= 0;#res := 1; 273408#factFINAL assume true; 273403#factEXIT >#66#return; 273402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273399#factFINAL assume true; 273386#factEXIT >#66#return; 273395#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273565#factFINAL assume true; 273556#factEXIT >#66#return; 273561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273596#factFINAL assume true; 273527#factEXIT >#66#return; 273057#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 275004#factFINAL assume true; 273036#factEXIT >#66#return; 273056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 273809#factFINAL assume true; 273732#factEXIT >#70#return; 272960#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 273418#$Ultimate##0 ~n := #in~n; 273413#L25 assume ~n <= 0;#res := 1; 273414#factFINAL assume true; 272948#factEXIT >#72#return; 272967#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 274505#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 274499#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 274498#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 274497#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 273803#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 274410#$Ultimate##0 ~n := #in~n; 274818#L25 assume !(~n <= 0); 274463#L26 call #t~ret0 := fact(~n - 1);< 274496#$Ultimate##0 ~n := #in~n; 274621#L25 assume !(~n <= 0); 272868#L26 call #t~ret0 := fact(~n - 1);< 274617#$Ultimate##0 ~n := #in~n; 274621#L25 assume !(~n <= 0); 272868#L26 call #t~ret0 := fact(~n - 1);< 274617#$Ultimate##0 ~n := #in~n; 274621#L25 assume !(~n <= 0); 272868#L26 call #t~ret0 := fact(~n - 1);< 274617#$Ultimate##0 ~n := #in~n; 274621#L25 assume !(~n <= 0); 272868#L26 call #t~ret0 := fact(~n - 1);< 274617#$Ultimate##0 ~n := #in~n; 272922#L25 assume ~n <= 0;#res := 1; 272923#factFINAL assume true; 272867#factEXIT >#66#return; 272871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 274612#factFINAL assume true; 274601#factEXIT >#66#return; 274603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 274524#factFINAL assume true; 274514#factEXIT >#66#return; 274513#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 274500#factFINAL assume true; 274493#factEXIT >#66#return; 274465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 275160#factFINAL assume true; 274456#factEXIT >#66#return; 274454#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 274451#factFINAL assume true; 274400#factEXIT >#74#return; 274384#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 274410#$Ultimate##0 ~n := #in~n; 274818#L25 assume !(~n <= 0); 274463#L26 call #t~ret0 := fact(~n - 1);< 274496#$Ultimate##0 ~n := #in~n; 274621#L25 assume !(~n <= 0); 272868#L26 call #t~ret0 := fact(~n - 1);< 274617#$Ultimate##0 ~n := #in~n; 274621#L25 assume !(~n <= 0); 272868#L26 call #t~ret0 := fact(~n - 1);< 274617#$Ultimate##0 ~n := #in~n; 274621#L25 assume !(~n <= 0); 272868#L26 call #t~ret0 := fact(~n - 1);< 274617#$Ultimate##0 ~n := #in~n; 274621#L25 assume !(~n <= 0); 272868#L26 call #t~ret0 := fact(~n - 1);< 274617#$Ultimate##0 ~n := #in~n; 272922#L25 assume ~n <= 0;#res := 1; 272923#factFINAL assume true; 272867#factEXIT >#66#return; 272871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 274612#factFINAL assume true; 274601#factEXIT >#66#return; 274603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 274524#factFINAL assume true; 274514#factEXIT >#66#return; 274513#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 274500#factFINAL assume true; 274493#factEXIT >#66#return; 274465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 275160#factFINAL assume true; 274456#factEXIT >#66#return; 274454#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 274451#factFINAL assume true; 274400#factEXIT >#76#return; 274178#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 274388#$Ultimate##0 ~n := #in~n; 274626#L25 assume !(~n <= 0); 274415#L26 call #t~ret0 := fact(~n - 1);< 274421#$Ultimate##0 ~n := #in~n; 274483#L25 assume ~n <= 0;#res := 1; 274480#factFINAL assume true; 274412#factEXIT >#66#return; 274411#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 274404#factFINAL assume true; 274176#factEXIT >#78#return; 273885#L30-8 [2023-02-18 08:56:46,646 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:46,646 INFO L85 PathProgramCache]: Analyzing trace with hash 2135700754, now seen corresponding path program 47 times [2023-02-18 08:56:46,646 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:46,646 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1882500061] [2023-02-18 08:56:46,646 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:46,646 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:46,655 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:46,655 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [954107768] [2023-02-18 08:56:46,655 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:56:46,656 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:46,656 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:46,663 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-18 08:56:46,664 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-18 08:56:46,963 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 17 check-sat command(s) [2023-02-18 08:56:46,963 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:46,963 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:47,044 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:47,078 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:47,078 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:47,078 INFO L85 PathProgramCache]: Analyzing trace with hash 1923982596, now seen corresponding path program 48 times [2023-02-18 08:56:47,078 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:47,078 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [239454234] [2023-02-18 08:56:47,078 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:47,079 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:47,087 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:47,087 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1063541935] [2023-02-18 08:56:47,087 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:56:47,087 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:47,087 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:47,089 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-18 08:56:47,090 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-18 08:56:47,446 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 19 check-sat command(s) [2023-02-18 08:56:47,447 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:47,450 INFO L263 TraceCheckSpWp]: Trace formula consists of 962 conjuncts, 18 conjunts are in the unsatisfiable core [2023-02-18 08:56:47,454 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:47,549 INFO L134 CoverageAnalysis]: Checked inductivity of 13187 backedges. 5588 proven. 73 refuted. 0 times theorem prover too weak. 7526 trivial. 0 not checked. [2023-02-18 08:56:47,550 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:47,673 INFO L134 CoverageAnalysis]: Checked inductivity of 13187 backedges. 1222 proven. 424 refuted. 0 times theorem prover too weak. 11541 trivial. 0 not checked. [2023-02-18 08:56:47,673 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:47,673 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [239454234] [2023-02-18 08:56:47,673 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:47,673 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1063541935] [2023-02-18 08:56:47,674 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1063541935] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:47,674 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:47,674 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 18] total 19 [2023-02-18 08:56:47,674 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1928560026] [2023-02-18 08:56:47,674 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:47,674 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:47,674 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:47,675 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2023-02-18 08:56:47,675 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=75, Invalid=267, Unknown=0, NotChecked=0, Total=342 [2023-02-18 08:56:47,675 INFO L87 Difference]: Start difference. First operand 2334 states and 3318 transitions. cyclomatic complexity: 1013 Second operand has 19 states, 18 states have (on average 3.6666666666666665) internal successors, (66), 19 states have internal predecessors, (66), 13 states have call successors, (30), 2 states have call predecessors, (30), 7 states have return successors, (33), 12 states have call predecessors, (33), 13 states have call successors, (33) [2023-02-18 08:56:48,223 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:48,223 INFO L93 Difference]: Finished difference Result 2614 states and 3737 transitions. [2023-02-18 08:56:48,223 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2614 states and 3737 transitions. [2023-02-18 08:56:48,235 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 320 [2023-02-18 08:56:48,248 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2614 states to 2614 states and 3737 transitions. [2023-02-18 08:56:48,248 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 270 [2023-02-18 08:56:48,248 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 270 [2023-02-18 08:56:48,248 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2614 states and 3737 transitions. [2023-02-18 08:56:48,248 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:48,248 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2614 states and 3737 transitions. [2023-02-18 08:56:48,249 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2614 states and 3737 transitions. [2023-02-18 08:56:48,276 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2614 to 2364. [2023-02-18 08:56:48,278 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2364 states, 1490 states have (on average 1.0624161073825504) internal successors, (1583), 1490 states have internal predecessors, (1583), 686 states have call successors, (698), 224 states have call predecessors, (698), 188 states have return successors, (1079), 649 states have call predecessors, (1079), 686 states have call successors, (1079) [2023-02-18 08:56:48,284 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2364 states to 2364 states and 3360 transitions. [2023-02-18 08:56:48,284 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2364 states and 3360 transitions. [2023-02-18 08:56:48,285 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2023-02-18 08:56:48,285 INFO L428 stractBuchiCegarLoop]: Abstraction has 2364 states and 3360 transitions. [2023-02-18 08:56:48,285 INFO L335 stractBuchiCegarLoop]: ======== Iteration 61 ============ [2023-02-18 08:56:48,285 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2364 states and 3360 transitions. [2023-02-18 08:56:48,291 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 286 [2023-02-18 08:56:48,291 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:48,291 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:48,292 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:48,292 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [70, 70, 52, 52, 52, 52, 18, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:48,293 INFO L748 eck$LassoCheckResult]: Stem: 280622#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 280563#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; 280564#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 280587#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; 280623#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 282036#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 282034#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 280561#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 280562#$Ultimate##0 ~n := #in~n; 282410#L25 assume ~n <= 0;#res := 1; 282408#factFINAL assume true; 282405#factEXIT >#68#return; 280614#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280615#$Ultimate##0 ~n := #in~n; 282573#L25 assume ~n <= 0;#res := 1; 282571#factFINAL assume true; 282566#factEXIT >#70#return; 280544#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 280545#$Ultimate##0 ~n := #in~n; 282722#L25 assume ~n <= 0;#res := 1; 282721#factFINAL assume true; 282719#factEXIT >#72#return; 282716#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 282711#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 282708#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 282706#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 282702#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 282696#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 282697#$Ultimate##0 ~n := #in~n; 282718#L25 assume !(~n <= 0); 282714#L26 call #t~ret0 := fact(~n - 1);< 282715#$Ultimate##0 ~n := #in~n; 282720#L25 assume ~n <= 0;#res := 1; 282717#factFINAL assume true; 282713#factEXIT >#66#return; 282710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282709#factFINAL assume true; 282695#factEXIT >#74#return; 282692#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 282693#$Ultimate##0 ~n := #in~n; 282703#L25 assume ~n <= 0;#res := 1; 282698#factFINAL assume true; 282691#factEXIT >#76#return; 282687#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 282688#$Ultimate##0 ~n := #in~n; 282705#L25 assume !(~n <= 0); 282700#L26 call #t~ret0 := fact(~n - 1);< 282701#$Ultimate##0 ~n := #in~n; 282707#L25 assume ~n <= 0;#res := 1; 282704#factFINAL assume true; 282699#factEXIT >#66#return; 282694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282690#factFINAL assume true; 282686#factEXIT >#78#return; 282684#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 282681#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 282678#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 282675#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 282671#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 282663#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 282664#$Ultimate##0 ~n := #in~n; 282689#L25 assume !(~n <= 0); 282654#L26 call #t~ret0 := fact(~n - 1);< 282658#$Ultimate##0 ~n := #in~n; 282683#L25 assume !(~n <= 0); 282653#L26 call #t~ret0 := fact(~n - 1);< 282680#$Ultimate##0 ~n := #in~n; 282685#L25 assume ~n <= 0;#res := 1; 282682#factFINAL assume true; 282679#factEXIT >#66#return; 282677#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282667#factFINAL assume true; 282652#factEXIT >#66#return; 282657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282712#factFINAL assume true; 282662#factEXIT >#74#return; 282660#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 282661#$Ultimate##0 ~n := #in~n; 282670#L25 assume ~n <= 0;#res := 1; 282668#factFINAL assume true; 282659#factEXIT >#76#return; 282644#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 282645#$Ultimate##0 ~n := #in~n; 282669#L25 assume !(~n <= 0); 282655#L26 call #t~ret0 := fact(~n - 1);< 282658#$Ultimate##0 ~n := #in~n; 282683#L25 assume !(~n <= 0); 282653#L26 call #t~ret0 := fact(~n - 1);< 282680#$Ultimate##0 ~n := #in~n; 282685#L25 assume ~n <= 0;#res := 1; 282682#factFINAL assume true; 282679#factEXIT >#66#return; 282677#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282667#factFINAL assume true; 282652#factEXIT >#66#return; 282650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282648#factFINAL assume true; 282643#factEXIT >#78#return; 282639#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 282636#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 282626#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 282620#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 282616#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 282611#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 282612#$Ultimate##0 ~n := #in~n; 282633#L25 assume !(~n <= 0); 282624#L26 call #t~ret0 := fact(~n - 1);< 282625#$Ultimate##0 ~n := #in~n; 282634#L25 assume !(~n <= 0); 282623#L26 call #t~ret0 := fact(~n - 1);< 282632#$Ultimate##0 ~n := #in~n; 282634#L25 assume !(~n <= 0); 282623#L26 call #t~ret0 := fact(~n - 1);< 282632#$Ultimate##0 ~n := #in~n; 282651#L25 assume ~n <= 0;#res := 1; 282649#factFINAL assume true; 282647#factEXIT >#66#return; 282641#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282638#factFINAL assume true; 282631#factEXIT >#66#return; 282630#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282629#factFINAL assume true; 282622#factEXIT >#66#return; 282619#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282615#factFINAL assume true; 282610#factEXIT >#74#return; 282607#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 282608#$Ultimate##0 ~n := #in~n; 282676#L25 assume ~n <= 0;#res := 1; 282672#factFINAL assume true; 282606#factEXIT >#76#return; 280595#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 282604#$Ultimate##0 ~n := #in~n; 282635#L25 assume !(~n <= 0); 282531#L26 call #t~ret0 := fact(~n - 1);< 282534#$Ultimate##0 ~n := #in~n; 282642#L25 assume !(~n <= 0); 282532#L26 call #t~ret0 := fact(~n - 1);< 282628#$Ultimate##0 ~n := #in~n; 282642#L25 assume !(~n <= 0); 282532#L26 call #t~ret0 := fact(~n - 1);< 282628#$Ultimate##0 ~n := #in~n; 282666#L25 assume ~n <= 0;#res := 1; 282665#factFINAL assume true; 282646#factEXIT >#66#return; 282640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282637#factFINAL assume true; 282627#factEXIT >#66#return; 282621#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282618#factFINAL assume true; 282613#factEXIT >#66#return; 280594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280596#factFINAL assume true; 282603#factEXIT >#78#return; 282600#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 280566#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 282597#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 282595#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 282587#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 282431#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 282296#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 280976#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 280932#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 280935#$Ultimate##0 ~n := #in~n; 280963#L25 assume !(~n <= 0); 280953#L26 call #t~ret0 := fact(~n - 1);< 280961#$Ultimate##0 ~n := #in~n; 280978#L25 assume ~n <= 0;#res := 1; 280969#factFINAL assume true; 280945#factEXIT >#66#return; 280943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280942#factFINAL assume true; 280929#factEXIT >#68#return; 280914#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280915#$Ultimate##0 ~n := #in~n; 280928#L25 assume ~n <= 0;#res := 1; 280927#factFINAL assume true; 280909#factEXIT >#70#return; 280900#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 280907#$Ultimate##0 ~n := #in~n; 280904#L25 assume !(~n <= 0); 280757#L26 call #t~ret0 := fact(~n - 1);< 280879#$Ultimate##0 ~n := #in~n; 280781#L25 assume ~n <= 0;#res := 1; 280859#factFINAL assume true; 280851#factEXIT >#66#return; 280854#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281277#factFINAL assume true; 281274#factEXIT >#72#return; 281273#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 281268#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 281267#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 281266#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 281264#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 280872#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 280923#$Ultimate##0 ~n := #in~n; 280922#L25 assume !(~n <= 0); 280759#L26 call #t~ret0 := fact(~n - 1);< 280879#$Ultimate##0 ~n := #in~n; 280781#L25 assume ~n <= 0;#res := 1; 280859#factFINAL assume true; 280851#factEXIT >#66#return; 280856#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281306#factFINAL assume true; 281304#factEXIT >#68#return; 280892#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280706#$Ultimate##0 ~n := #in~n; 280882#L25 assume !(~n <= 0); 280774#L26 call #t~ret0 := fact(~n - 1);< 280869#$Ultimate##0 ~n := #in~n; 280781#L25 assume ~n <= 0;#res := 1; 280859#factFINAL assume true; 280851#factEXIT >#66#return; 280857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281110#factFINAL assume true; 281102#factEXIT >#70#return; 281077#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 281084#$Ultimate##0 ~n := #in~n; 281160#L25 assume ~n <= 0;#res := 1; 281119#factFINAL assume true; 281070#factEXIT >#72#return; 281082#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 281089#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 281085#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 281069#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 281067#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 281044#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 281058#$Ultimate##0 ~n := #in~n; 281117#L25 assume !(~n <= 0); 280720#L26 call #t~ret0 := fact(~n - 1);< 280802#$Ultimate##0 ~n := #in~n; 280776#L25 assume !(~n <= 0); 280728#L26 call #t~ret0 := fact(~n - 1);< 280765#$Ultimate##0 ~n := #in~n; 280770#L25 assume ~n <= 0;#res := 1; 280768#factFINAL assume true; 280751#factEXIT >#66#return; 280756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281033#factFINAL assume true; 281026#factEXIT >#66#return; 281027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281124#factFINAL assume true; 281086#factEXIT >#74#return; 280898#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280706#$Ultimate##0 ~n := #in~n; 280882#L25 assume !(~n <= 0); 280774#L26 call #t~ret0 := fact(~n - 1);< 280869#$Ultimate##0 ~n := #in~n; 280781#L25 assume ~n <= 0;#res := 1; 280859#factFINAL assume true; 280851#factEXIT >#66#return; 280857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281110#factFINAL assume true; 281102#factEXIT >#76#return; 281088#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 281109#$Ultimate##0 ~n := #in~n; 281120#L25 assume !(~n <= 0); 280852#L26 call #t~ret0 := fact(~n - 1);< 280858#$Ultimate##0 ~n := #in~n; 280781#L25 assume ~n <= 0;#res := 1; 280859#factFINAL assume true; 280851#factEXIT >#66#return; 280857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281110#factFINAL assume true; 281102#factEXIT >#78#return; 281101#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 281100#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 281098#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 281096#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 281093#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 281094#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 282254#$Ultimate##0 ~n := #in~n; 282248#L25 assume !(~n <= 0); 280607#L26 call #t~ret0 := fact(~n - 1);< 282220#$Ultimate##0 ~n := #in~n; 282242#L25 assume !(~n <= 0); 282185#L26 call #t~ret0 := fact(~n - 1);< 282281#$Ultimate##0 ~n := #in~n; 282242#L25 assume !(~n <= 0); 282185#L26 call #t~ret0 := fact(~n - 1);< 282281#$Ultimate##0 ~n := #in~n; 282293#L25 assume ~n <= 0;#res := 1; 282292#factFINAL assume true; 282279#factEXIT >#66#return; 282277#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282243#factFINAL assume true; 282230#factEXIT >#66#return; 282228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282219#factFINAL assume true; 282212#factEXIT >#66#return; 282216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282275#factFINAL assume true; 282276#factEXIT >#74#return; 282257#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 282258#$Ultimate##0 ~n := #in~n; 282388#L25 assume !(~n <= 0); 280606#L26 call #t~ret0 := fact(~n - 1);< 282381#$Ultimate##0 ~n := #in~n; 280603#L25 assume ~n <= 0;#res := 1; 280611#factFINAL assume true; 282379#factEXIT >#66#return; 282378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282376#factFINAL assume true; 282374#factEXIT >#76#return; 282249#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 282254#$Ultimate##0 ~n := #in~n; 282248#L25 assume !(~n <= 0); 280607#L26 call #t~ret0 := fact(~n - 1);< 282220#$Ultimate##0 ~n := #in~n; 282242#L25 assume !(~n <= 0); 282185#L26 call #t~ret0 := fact(~n - 1);< 282281#$Ultimate##0 ~n := #in~n; 282293#L25 assume ~n <= 0;#res := 1; 282292#factFINAL assume true; 282279#factEXIT >#66#return; 282277#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282243#factFINAL assume true; 282230#factEXIT >#66#return; 282233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282306#factFINAL assume true; 282264#factEXIT >#78#return; 280540#L30-8 [2023-02-18 08:56:48,293 INFO L750 eck$LassoCheckResult]: Loop: 280540#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 280588#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 280589#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 280600#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 280579#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 280580#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 281335#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 281270#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 280801#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 281159#$Ultimate##0 ~n := #in~n; 281158#L25 assume !(~n <= 0); 280726#L26 call #t~ret0 := fact(~n - 1);< 280802#$Ultimate##0 ~n := #in~n; 280776#L25 assume !(~n <= 0); 280728#L26 call #t~ret0 := fact(~n - 1);< 280765#$Ultimate##0 ~n := #in~n; 280776#L25 assume !(~n <= 0); 280728#L26 call #t~ret0 := fact(~n - 1);< 280765#$Ultimate##0 ~n := #in~n; 280776#L25 assume !(~n <= 0); 280728#L26 call #t~ret0 := fact(~n - 1);< 280765#$Ultimate##0 ~n := #in~n; 280770#L25 assume ~n <= 0;#res := 1; 280768#factFINAL assume true; 280751#factEXIT >#66#return; 280756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281033#factFINAL assume true; 281026#factEXIT >#66#return; 281024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281016#factFINAL assume true; 281001#factEXIT >#66#return; 281004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280999#factFINAL assume true; 280979#factEXIT >#66#return; 280986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281275#factFINAL assume true; 281269#factEXIT >#68#return; 280827#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280829#$Ultimate##0 ~n := #in~n; 280831#L25 assume ~n <= 0;#res := 1; 280830#factFINAL assume true; 280824#factEXIT >#70#return; 280814#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 280819#$Ultimate##0 ~n := #in~n; 280817#L25 assume !(~n <= 0); 280723#L26 call #t~ret0 := fact(~n - 1);< 280813#$Ultimate##0 ~n := #in~n; 280810#L25 assume !(~n <= 0); 280729#L26 call #t~ret0 := fact(~n - 1);< 280805#$Ultimate##0 ~n := #in~n; 280804#L25 assume !(~n <= 0); 280725#L26 call #t~ret0 := fact(~n - 1);< 280779#$Ultimate##0 ~n := #in~n; 280776#L25 assume !(~n <= 0); 280728#L26 call #t~ret0 := fact(~n - 1);< 280765#$Ultimate##0 ~n := #in~n; 280770#L25 assume ~n <= 0;#res := 1; 280768#factFINAL assume true; 280751#factEXIT >#66#return; 280756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281033#factFINAL assume true; 281026#factEXIT >#66#return; 281024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281016#factFINAL assume true; 281001#factEXIT >#66#return; 281004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280999#factFINAL assume true; 280979#factEXIT >#66#return; 280985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281163#factFINAL assume true; 281149#factEXIT >#72#return; 281150#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 281731#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 281730#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 281726#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 281722#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 280939#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 280988#$Ultimate##0 ~n := #in~n; 280994#L25 assume !(~n <= 0); 280980#L26 call #t~ret0 := fact(~n - 1);< 280991#$Ultimate##0 ~n := #in~n; 281010#L25 assume !(~n <= 0); 280766#L26 call #t~ret0 := fact(~n - 1);< 281006#$Ultimate##0 ~n := #in~n; 281056#L25 assume !(~n <= 0); 280763#L26 call #t~ret0 := fact(~n - 1);< 280750#$Ultimate##0 ~n := #in~n; 280769#L25 assume !(~n <= 0); 280753#L26 call #t~ret0 := fact(~n - 1);< 280764#$Ultimate##0 ~n := #in~n; 280770#L25 assume ~n <= 0;#res := 1; 280768#factFINAL assume true; 280751#factEXIT >#66#return; 280756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281033#factFINAL assume true; 281026#factEXIT >#66#return; 281024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281016#factFINAL assume true; 281001#factEXIT >#66#return; 281004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280999#factFINAL assume true; 280979#factEXIT >#66#return; 280984#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280987#factFINAL assume true; 280937#factEXIT >#68#return; 280834#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280847#$Ultimate##0 ~n := #in~n; 280921#L25 assume !(~n <= 0); 280853#L26 call #t~ret0 := fact(~n - 1);< 280858#$Ultimate##0 ~n := #in~n; 280781#L25 assume ~n <= 0;#res := 1; 280859#factFINAL assume true; 280851#factEXIT >#66#return; 280850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280846#factFINAL assume true; 280832#factEXIT >#70#return; 280840#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 280996#$Ultimate##0 ~n := #in~n; 281032#L25 assume !(~n <= 0); 280767#L26 call #t~ret0 := fact(~n - 1);< 281006#$Ultimate##0 ~n := #in~n; 281056#L25 assume !(~n <= 0); 280763#L26 call #t~ret0 := fact(~n - 1);< 280750#$Ultimate##0 ~n := #in~n; 280769#L25 assume !(~n <= 0); 280753#L26 call #t~ret0 := fact(~n - 1);< 280764#$Ultimate##0 ~n := #in~n; 280770#L25 assume ~n <= 0;#res := 1; 280768#factFINAL assume true; 280751#factEXIT >#66#return; 280756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281033#factFINAL assume true; 281026#factEXIT >#66#return; 281024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281016#factFINAL assume true; 281001#factEXIT >#66#return; 280998#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280995#factFINAL assume true; 280966#factEXIT >#72#return; 280968#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 282110#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 282109#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 282108#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 282107#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 280941#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 280988#$Ultimate##0 ~n := #in~n; 280994#L25 assume !(~n <= 0); 280980#L26 call #t~ret0 := fact(~n - 1);< 280991#$Ultimate##0 ~n := #in~n; 281010#L25 assume !(~n <= 0); 280766#L26 call #t~ret0 := fact(~n - 1);< 281006#$Ultimate##0 ~n := #in~n; 281056#L25 assume !(~n <= 0); 280763#L26 call #t~ret0 := fact(~n - 1);< 280750#$Ultimate##0 ~n := #in~n; 280769#L25 assume !(~n <= 0); 280753#L26 call #t~ret0 := fact(~n - 1);< 280764#$Ultimate##0 ~n := #in~n; 280770#L25 assume ~n <= 0;#res := 1; 280768#factFINAL assume true; 280751#factEXIT >#66#return; 280756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281033#factFINAL assume true; 281026#factEXIT >#66#return; 281024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281016#factFINAL assume true; 281001#factEXIT >#66#return; 281004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280999#factFINAL assume true; 280979#factEXIT >#66#return; 280984#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280987#factFINAL assume true; 280937#factEXIT >#68#return; 280679#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280919#$Ultimate##0 ~n := #in~n; 280880#L25 assume !(~n <= 0); 280733#L26 call #t~ret0 := fact(~n - 1);< 280802#$Ultimate##0 ~n := #in~n; 280776#L25 assume !(~n <= 0); 280728#L26 call #t~ret0 := fact(~n - 1);< 280765#$Ultimate##0 ~n := #in~n; 280770#L25 assume ~n <= 0;#res := 1; 280768#factFINAL assume true; 280751#factEXIT >#66#return; 280756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281033#factFINAL assume true; 281026#factEXIT >#66#return; 281029#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281059#factFINAL assume true; 281011#factEXIT >#70#return; 281012#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 281015#$Ultimate##0 ~n := #in~n; 281116#L25 assume !(~n <= 0); 280761#L26 call #t~ret0 := fact(~n - 1);< 280750#$Ultimate##0 ~n := #in~n; 280769#L25 assume !(~n <= 0); 280753#L26 call #t~ret0 := fact(~n - 1);< 280764#$Ultimate##0 ~n := #in~n; 280770#L25 assume ~n <= 0;#res := 1; 280768#factFINAL assume true; 280751#factEXIT >#66#return; 280756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281033#factFINAL assume true; 281026#factEXIT >#66#return; 281029#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281059#factFINAL assume true; 281011#factEXIT >#72#return; 281014#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 281115#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 281114#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 281113#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 281112#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 280794#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 280799#$Ultimate##0 ~n := #in~n; 280798#L25 assume !(~n <= 0); 280789#L26 call #t~ret0 := fact(~n - 1);< 280793#$Ultimate##0 ~n := #in~n; 280791#L25 assume !(~n <= 0); 280754#L26 call #t~ret0 := fact(~n - 1);< 280782#$Ultimate##0 ~n := #in~n; 280777#L25 assume !(~n <= 0); 280752#L26 call #t~ret0 := fact(~n - 1);< 280771#$Ultimate##0 ~n := #in~n; 280769#L25 assume !(~n <= 0); 280753#L26 call #t~ret0 := fact(~n - 1);< 280764#$Ultimate##0 ~n := #in~n; 280770#L25 assume ~n <= 0;#res := 1; 280768#factFINAL assume true; 280751#factEXIT >#66#return; 280756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281033#factFINAL assume true; 281026#factEXIT >#66#return; 281024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281016#factFINAL assume true; 281001#factEXIT >#66#return; 281004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280999#factFINAL assume true; 280979#factEXIT >#66#return; 280984#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280987#factFINAL assume true; 280937#factEXIT >#68#return; 280688#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280919#$Ultimate##0 ~n := #in~n; 280880#L25 assume !(~n <= 0); 280733#L26 call #t~ret0 := fact(~n - 1);< 280802#$Ultimate##0 ~n := #in~n; 280776#L25 assume !(~n <= 0); 280728#L26 call #t~ret0 := fact(~n - 1);< 280765#$Ultimate##0 ~n := #in~n; 280776#L25 assume !(~n <= 0); 280728#L26 call #t~ret0 := fact(~n - 1);< 280765#$Ultimate##0 ~n := #in~n; 280776#L25 assume !(~n <= 0); 280728#L26 call #t~ret0 := fact(~n - 1);< 280765#$Ultimate##0 ~n := #in~n; 280770#L25 assume ~n <= 0;#res := 1; 280768#factFINAL assume true; 280751#factEXIT >#66#return; 280756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281033#factFINAL assume true; 281026#factEXIT >#66#return; 281024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281016#factFINAL assume true; 281001#factEXIT >#66#return; 281004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280999#factFINAL assume true; 280979#factEXIT >#66#return; 280977#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280936#factFINAL assume true; 280918#factEXIT >#70#return; 280647#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 280849#$Ultimate##0 ~n := #in~n; 280906#L25 assume !(~n <= 0); 280762#L26 call #t~ret0 := fact(~n - 1);< 280879#$Ultimate##0 ~n := #in~n; 280781#L25 assume ~n <= 0;#res := 1; 280859#factFINAL assume true; 280851#factEXIT >#66#return; 280850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280846#factFINAL assume true; 280832#factEXIT >#72#return; 280839#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 280993#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 280992#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 280990#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 280989#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 280797#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 280799#$Ultimate##0 ~n := #in~n; 280798#L25 assume !(~n <= 0); 280789#L26 call #t~ret0 := fact(~n - 1);< 280793#$Ultimate##0 ~n := #in~n; 280791#L25 assume !(~n <= 0); 280754#L26 call #t~ret0 := fact(~n - 1);< 280782#$Ultimate##0 ~n := #in~n; 280777#L25 assume !(~n <= 0); 280752#L26 call #t~ret0 := fact(~n - 1);< 280771#$Ultimate##0 ~n := #in~n; 280769#L25 assume !(~n <= 0); 280753#L26 call #t~ret0 := fact(~n - 1);< 280764#$Ultimate##0 ~n := #in~n; 280770#L25 assume ~n <= 0;#res := 1; 280768#factFINAL assume true; 280751#factEXIT >#66#return; 280756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281033#factFINAL assume true; 281026#factEXIT >#66#return; 281024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281016#factFINAL assume true; 281001#factEXIT >#66#return; 281004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280999#factFINAL assume true; 280979#factEXIT >#66#return; 280984#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280987#factFINAL assume true; 280937#factEXIT >#68#return; 280687#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280919#$Ultimate##0 ~n := #in~n; 280880#L25 assume !(~n <= 0); 280733#L26 call #t~ret0 := fact(~n - 1);< 280802#$Ultimate##0 ~n := #in~n; 280776#L25 assume !(~n <= 0); 280728#L26 call #t~ret0 := fact(~n - 1);< 280765#$Ultimate##0 ~n := #in~n; 280776#L25 assume !(~n <= 0); 280728#L26 call #t~ret0 := fact(~n - 1);< 280765#$Ultimate##0 ~n := #in~n; 280776#L25 assume !(~n <= 0); 280728#L26 call #t~ret0 := fact(~n - 1);< 280765#$Ultimate##0 ~n := #in~n; 280770#L25 assume ~n <= 0;#res := 1; 280768#factFINAL assume true; 280751#factEXIT >#66#return; 280756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281033#factFINAL assume true; 281026#factEXIT >#66#return; 281024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281016#factFINAL assume true; 281001#factEXIT >#66#return; 281004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280999#factFINAL assume true; 280979#factEXIT >#66#return; 280977#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280936#factFINAL assume true; 280918#factEXIT >#70#return; 280628#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 280849#$Ultimate##0 ~n := #in~n; 280906#L25 assume ~n <= 0;#res := 1; 280658#factFINAL assume true; 280627#factEXIT >#72#return; 280652#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 282240#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 282239#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 282237#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 282229#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 282137#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 282142#$Ultimate##0 ~n := #in~n; 282209#L25 assume !(~n <= 0); 282183#L26 call #t~ret0 := fact(~n - 1);< 282198#$Ultimate##0 ~n := #in~n; 282242#L25 assume !(~n <= 0); 282185#L26 call #t~ret0 := fact(~n - 1);< 282281#$Ultimate##0 ~n := #in~n; 282242#L25 assume !(~n <= 0); 282185#L26 call #t~ret0 := fact(~n - 1);< 282281#$Ultimate##0 ~n := #in~n; 282242#L25 assume !(~n <= 0); 282185#L26 call #t~ret0 := fact(~n - 1);< 282281#$Ultimate##0 ~n := #in~n; 282242#L25 assume !(~n <= 0); 282185#L26 call #t~ret0 := fact(~n - 1);< 282281#$Ultimate##0 ~n := #in~n; 282293#L25 assume ~n <= 0;#res := 1; 282292#factFINAL assume true; 282279#factEXIT >#66#return; 282277#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282243#factFINAL assume true; 282230#factEXIT >#66#return; 282228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282219#factFINAL assume true; 282212#factEXIT >#66#return; 282211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282210#factFINAL assume true; 282206#factEXIT >#66#return; 282190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282196#factFINAL assume true; 282181#factEXIT >#66#return; 282179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282163#factFINAL assume true; 282144#factEXIT >#74#return; 282140#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 282142#$Ultimate##0 ~n := #in~n; 282209#L25 assume !(~n <= 0); 282183#L26 call #t~ret0 := fact(~n - 1);< 282198#$Ultimate##0 ~n := #in~n; 282242#L25 assume !(~n <= 0); 282185#L26 call #t~ret0 := fact(~n - 1);< 282281#$Ultimate##0 ~n := #in~n; 282242#L25 assume !(~n <= 0); 282185#L26 call #t~ret0 := fact(~n - 1);< 282281#$Ultimate##0 ~n := #in~n; 282242#L25 assume !(~n <= 0); 282185#L26 call #t~ret0 := fact(~n - 1);< 282281#$Ultimate##0 ~n := #in~n; 282242#L25 assume !(~n <= 0); 282185#L26 call #t~ret0 := fact(~n - 1);< 282281#$Ultimate##0 ~n := #in~n; 282293#L25 assume ~n <= 0;#res := 1; 282292#factFINAL assume true; 282279#factEXIT >#66#return; 282277#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282243#factFINAL assume true; 282230#factEXIT >#66#return; 282228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282219#factFINAL assume true; 282212#factEXIT >#66#return; 282211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282210#factFINAL assume true; 282206#factEXIT >#66#return; 282190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282196#factFINAL assume true; 282181#factEXIT >#66#return; 282179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282163#factFINAL assume true; 282144#factEXIT >#76#return; 280570#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 280624#$Ultimate##0 ~n := #in~n; 282382#L25 assume !(~n <= 0); 280569#L26 call #t~ret0 := fact(~n - 1);< 280572#$Ultimate##0 ~n := #in~n; 280603#L25 assume ~n <= 0;#res := 1; 280611#factFINAL assume true; 282379#factEXIT >#66#return; 282380#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 282423#factFINAL assume true; 282004#factEXIT >#78#return; 280540#L30-8 [2023-02-18 08:56:48,293 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:48,294 INFO L85 PathProgramCache]: Analyzing trace with hash 2135700754, now seen corresponding path program 48 times [2023-02-18 08:56:48,294 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:48,294 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1378917953] [2023-02-18 08:56:48,294 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:48,294 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:48,304 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:48,304 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1453530653] [2023-02-18 08:56:48,304 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:56:48,304 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:48,304 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:48,308 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-18 08:56:48,308 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-18 08:56:48,626 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 17 check-sat command(s) [2023-02-18 08:56:48,626 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:48,626 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:48,727 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:48,762 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:48,763 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:48,763 INFO L85 PathProgramCache]: Analyzing trace with hash -714043564, now seen corresponding path program 49 times [2023-02-18 08:56:48,763 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:48,763 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [311607342] [2023-02-18 08:56:48,763 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:48,763 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:48,771 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:48,772 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [500453405] [2023-02-18 08:56:48,772 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:56:48,772 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:48,772 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:48,774 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-18 08:56:48,774 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-18 08:56:49,057 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:56:49,061 INFO L263 TraceCheckSpWp]: Trace formula consists of 938 conjuncts, 15 conjunts are in the unsatisfiable core [2023-02-18 08:56:49,064 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:49,097 INFO L134 CoverageAnalysis]: Checked inductivity of 12413 backedges. 6689 proven. 43 refuted. 0 times theorem prover too weak. 5681 trivial. 0 not checked. [2023-02-18 08:56:49,098 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:49,171 INFO L134 CoverageAnalysis]: Checked inductivity of 12413 backedges. 765 proven. 536 refuted. 0 times theorem prover too weak. 11112 trivial. 0 not checked. [2023-02-18 08:56:49,172 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:49,172 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [311607342] [2023-02-18 08:56:49,172 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:49,172 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [500453405] [2023-02-18 08:56:49,172 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [500453405] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:49,172 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:49,172 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 16 [2023-02-18 08:56:49,172 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1466101288] [2023-02-18 08:56:49,172 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:49,173 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:49,173 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:49,173 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2023-02-18 08:56:49,173 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=55, Invalid=185, Unknown=0, NotChecked=0, Total=240 [2023-02-18 08:56:49,174 INFO L87 Difference]: Start difference. First operand 2364 states and 3360 transitions. cyclomatic complexity: 1025 Second operand has 16 states, 15 states have (on average 3.8666666666666667) internal successors, (58), 16 states have internal predecessors, (58), 11 states have call successors, (30), 2 states have call predecessors, (30), 6 states have return successors, (32), 10 states have call predecessors, (32), 11 states have call successors, (32) [2023-02-18 08:56:49,619 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:49,619 INFO L93 Difference]: Finished difference Result 2428 states and 3426 transitions. [2023-02-18 08:56:49,619 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2428 states and 3426 transitions. [2023-02-18 08:56:49,631 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 286 [2023-02-18 08:56:49,642 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2428 states to 2428 states and 3426 transitions. [2023-02-18 08:56:49,642 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 243 [2023-02-18 08:56:49,642 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 243 [2023-02-18 08:56:49,642 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2428 states and 3426 transitions. [2023-02-18 08:56:49,643 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:49,643 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2428 states and 3426 transitions. [2023-02-18 08:56:49,643 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2428 states and 3426 transitions. [2023-02-18 08:56:49,664 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2428 to 2364. [2023-02-18 08:56:49,666 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2364 states, 1490 states have (on average 1.0624161073825504) internal successors, (1583), 1490 states have internal predecessors, (1583), 686 states have call successors, (698), 224 states have call predecessors, (698), 188 states have return successors, (1075), 649 states have call predecessors, (1075), 686 states have call successors, (1075) [2023-02-18 08:56:49,672 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2364 states to 2364 states and 3356 transitions. [2023-02-18 08:56:49,672 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2364 states and 3356 transitions. [2023-02-18 08:56:49,672 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2023-02-18 08:56:49,672 INFO L428 stractBuchiCegarLoop]: Abstraction has 2364 states and 3356 transitions. [2023-02-18 08:56:49,673 INFO L335 stractBuchiCegarLoop]: ======== Iteration 62 ============ [2023-02-18 08:56:49,673 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2364 states and 3356 transitions. [2023-02-18 08:56:49,677 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 286 [2023-02-18 08:56:49,677 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:49,677 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:49,678 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:49,678 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [69, 69, 51, 51, 51, 51, 18, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:49,679 INFO L748 eck$LassoCheckResult]: Stem: 288060#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 287999#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; 288000#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 288021#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; 288010#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 288011#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 288285#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 288281#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 288282#$Ultimate##0 ~n := #in~n; 288286#L25 assume ~n <= 0;#res := 1; 288284#factFINAL assume true; 288280#factEXIT >#68#return; 288276#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 288277#$Ultimate##0 ~n := #in~n; 288283#L25 assume ~n <= 0;#res := 1; 288279#factFINAL assume true; 288275#factEXIT >#70#return; 288272#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 288273#$Ultimate##0 ~n := #in~n; 288278#L25 assume ~n <= 0;#res := 1; 288274#factFINAL assume true; 288271#factEXIT >#72#return; 288270#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 288269#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 288268#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 288267#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 288266#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 288244#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 288245#$Ultimate##0 ~n := #in~n; 288263#L25 assume !(~n <= 0); 288255#L26 call #t~ret0 := fact(~n - 1);< 288256#$Ultimate##0 ~n := #in~n; 288262#L25 assume ~n <= 0;#res := 1; 288261#factFINAL assume true; 288254#factEXIT >#66#return; 288251#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288248#factFINAL assume true; 288243#factEXIT >#74#return; 288241#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 288242#$Ultimate##0 ~n := #in~n; 288253#L25 assume ~n <= 0;#res := 1; 288250#factFINAL assume true; 288240#factEXIT >#76#return; 288232#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 288233#$Ultimate##0 ~n := #in~n; 288260#L25 assume !(~n <= 0); 288258#L26 call #t~ret0 := fact(~n - 1);< 288259#$Ultimate##0 ~n := #in~n; 288265#L25 assume ~n <= 0;#res := 1; 288264#factFINAL assume true; 288257#factEXIT >#66#return; 288252#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288249#factFINAL assume true; 288231#factEXIT >#78#return; 288230#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 288227#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 288224#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 288221#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 288218#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 288205#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 288206#$Ultimate##0 ~n := #in~n; 288229#L25 assume !(~n <= 0); 288209#L26 call #t~ret0 := fact(~n - 1);< 288214#$Ultimate##0 ~n := #in~n; 288226#L25 assume !(~n <= 0); 288211#L26 call #t~ret0 := fact(~n - 1);< 288223#$Ultimate##0 ~n := #in~n; 288228#L25 assume ~n <= 0;#res := 1; 288225#factFINAL assume true; 288222#factEXIT >#66#return; 288219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288217#factFINAL assume true; 288208#factEXIT >#66#return; 288212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288290#factFINAL assume true; 288204#factEXIT >#74#return; 288201#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 288202#$Ultimate##0 ~n := #in~n; 288216#L25 assume ~n <= 0;#res := 1; 288215#factFINAL assume true; 288200#factEXIT >#76#return; 288195#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 288196#$Ultimate##0 ~n := #in~n; 288220#L25 assume !(~n <= 0); 288210#L26 call #t~ret0 := fact(~n - 1);< 288214#$Ultimate##0 ~n := #in~n; 288226#L25 assume !(~n <= 0); 288211#L26 call #t~ret0 := fact(~n - 1);< 288223#$Ultimate##0 ~n := #in~n; 288228#L25 assume ~n <= 0;#res := 1; 288225#factFINAL assume true; 288222#factEXIT >#66#return; 288219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288217#factFINAL assume true; 288208#factEXIT >#66#return; 288199#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288198#factFINAL assume true; 288194#factEXIT >#78#return; 288191#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 288187#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 288183#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 288177#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 288173#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 288168#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 288169#$Ultimate##0 ~n := #in~n; 288186#L25 assume !(~n <= 0); 288180#L26 call #t~ret0 := fact(~n - 1);< 288182#$Ultimate##0 ~n := #in~n; 288192#L25 assume !(~n <= 0); 288181#L26 call #t~ret0 := fact(~n - 1);< 288189#$Ultimate##0 ~n := #in~n; 288192#L25 assume !(~n <= 0); 288181#L26 call #t~ret0 := fact(~n - 1);< 288189#$Ultimate##0 ~n := #in~n; 288207#L25 assume ~n <= 0;#res := 1; 288203#factFINAL assume true; 288197#factEXIT >#66#return; 288193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288190#factFINAL assume true; 288188#factEXIT >#66#return; 288185#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288184#factFINAL assume true; 288179#factEXIT >#66#return; 288176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288172#factFINAL assume true; 288167#factEXIT >#74#return; 288163#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 288164#$Ultimate##0 ~n := #in~n; 288171#L25 assume ~n <= 0;#res := 1; 288166#factFINAL assume true; 288162#factEXIT >#76#return; 288149#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 288159#$Ultimate##0 ~n := #in~n; 288157#L25 assume !(~n <= 0); 288142#L26 call #t~ret0 := fact(~n - 1);< 288145#$Ultimate##0 ~n := #in~n; 288151#L25 assume !(~n <= 0); 288140#L26 call #t~ret0 := fact(~n - 1);< 288155#$Ultimate##0 ~n := #in~n; 288151#L25 assume !(~n <= 0); 288140#L26 call #t~ret0 := fact(~n - 1);< 288155#$Ultimate##0 ~n := #in~n; 288178#L25 assume ~n <= 0;#res := 1; 288175#factFINAL assume true; 288170#factEXIT >#66#return; 288165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288161#factFINAL assume true; 288160#factEXIT >#66#return; 288158#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288156#factFINAL assume true; 288153#factEXIT >#66#return; 288144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290319#factFINAL assume true; 290318#factEXIT >#78#return; 287981#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 288002#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 288024#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 290313#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 290312#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 290310#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 290309#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 289032#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 288981#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 288986#$Ultimate##0 ~n := #in~n; 289020#L25 assume !(~n <= 0); 289011#L26 call #t~ret0 := fact(~n - 1);< 289018#$Ultimate##0 ~n := #in~n; 289105#L25 assume ~n <= 0;#res := 1; 289368#factFINAL assume true; 289351#factEXIT >#66#return; 289347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 289344#factFINAL assume true; 289332#factEXIT >#68#return; 288975#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 288977#$Ultimate##0 ~n := #in~n; 289042#L25 assume ~n <= 0;#res := 1; 289041#factFINAL assume true; 288971#factEXIT >#70#return; 288466#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 289768#$Ultimate##0 ~n := #in~n; 289762#L25 assume !(~n <= 0); 288354#L26 call #t~ret0 := fact(~n - 1);< 288383#$Ultimate##0 ~n := #in~n; 288411#L25 assume ~n <= 0;#res := 1; 288551#factFINAL assume true; 288542#factEXIT >#66#return; 288546#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 289858#factFINAL assume true; 289857#factEXIT >#72#return; 289855#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 289852#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 289849#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 289846#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 289843#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 288554#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 288588#$Ultimate##0 ~n := #in~n; 288569#L25 assume !(~n <= 0); 288369#L26 call #t~ret0 := fact(~n - 1);< 288383#$Ultimate##0 ~n := #in~n; 288411#L25 assume ~n <= 0;#res := 1; 288551#factFINAL assume true; 288542#factEXIT >#66#return; 288548#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288957#factFINAL assume true; 288956#factEXIT >#68#return; 288103#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 288125#$Ultimate##0 ~n := #in~n; 288736#L25 assume !(~n <= 0); 288376#L26 call #t~ret0 := fact(~n - 1);< 288562#$Ultimate##0 ~n := #in~n; 288411#L25 assume ~n <= 0;#res := 1; 288551#factFINAL assume true; 288542#factEXIT >#66#return; 288549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288797#factFINAL assume true; 288787#factEXIT >#70#return; 288075#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 288785#$Ultimate##0 ~n := #in~n; 288073#L25 assume ~n <= 0;#res := 1; 288079#factFINAL assume true; 288777#factEXIT >#72#return; 288775#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 288774#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 288773#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 288771#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 288770#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 288108#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 288348#$Ultimate##0 ~n := #in~n; 289733#L25 assume !(~n <= 0); 288367#L26 call #t~ret0 := fact(~n - 1);< 288430#$Ultimate##0 ~n := #in~n; 288405#L25 assume !(~n <= 0); 288362#L26 call #t~ret0 := fact(~n - 1);< 288397#$Ultimate##0 ~n := #in~n; 288401#L25 assume ~n <= 0;#res := 1; 288399#factFINAL assume true; 288392#factEXIT >#66#return; 288391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288384#factFINAL assume true; 288352#factEXIT >#66#return; 288381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288949#factFINAL assume true; 288083#factEXIT >#74#return; 288086#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 288125#$Ultimate##0 ~n := #in~n; 288736#L25 assume !(~n <= 0); 288376#L26 call #t~ret0 := fact(~n - 1);< 288562#$Ultimate##0 ~n := #in~n; 288411#L25 assume ~n <= 0;#res := 1; 288551#factFINAL assume true; 288542#factEXIT >#66#return; 288549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288797#factFINAL assume true; 288787#factEXIT >#76#return; 288119#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 288799#$Ultimate##0 ~n := #in~n; 288929#L25 assume !(~n <= 0); 288545#L26 call #t~ret0 := fact(~n - 1);< 288550#$Ultimate##0 ~n := #in~n; 288411#L25 assume ~n <= 0;#res := 1; 288551#factFINAL assume true; 288542#factEXIT >#66#return; 288549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288797#factFINAL assume true; 288787#factEXIT >#78#return; 288793#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 288959#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 288795#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 288786#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 288776#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 287967#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 287968#$Ultimate##0 ~n := #in~n; 289488#L25 assume !(~n <= 0); 288936#L26 call #t~ret0 := fact(~n - 1);< 289084#$Ultimate##0 ~n := #in~n; 289131#L25 assume !(~n <= 0); 288943#L26 call #t~ret0 := fact(~n - 1);< 289110#$Ultimate##0 ~n := #in~n; 289131#L25 assume !(~n <= 0); 288943#L26 call #t~ret0 := fact(~n - 1);< 289110#$Ultimate##0 ~n := #in~n; 289132#L25 assume ~n <= 0;#res := 1; 289123#factFINAL assume true; 289106#factEXIT >#66#return; 289102#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 289094#factFINAL assume true; 289078#factEXIT >#66#return; 289082#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 289137#factFINAL assume true; 289057#factEXIT >#66#return; 289062#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 289210#factFINAL assume true; 289180#factEXIT >#74#return; 289183#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 289186#$Ultimate##0 ~n := #in~n; 289202#L25 assume !(~n <= 0); 289060#L26 call #t~ret0 := fact(~n - 1);< 289201#$Ultimate##0 ~n := #in~n; 289130#L25 assume ~n <= 0;#res := 1; 289200#factFINAL assume true; 289195#factEXIT >#66#return; 289197#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 289212#factFINAL assume true; 289211#factEXIT >#76#return; 287984#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 287968#$Ultimate##0 ~n := #in~n; 289488#L25 assume !(~n <= 0); 288936#L26 call #t~ret0 := fact(~n - 1);< 289084#$Ultimate##0 ~n := #in~n; 289131#L25 assume !(~n <= 0); 288943#L26 call #t~ret0 := fact(~n - 1);< 289110#$Ultimate##0 ~n := #in~n; 289132#L25 assume ~n <= 0;#res := 1; 289123#factFINAL assume true; 289106#factEXIT >#66#return; 289102#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 289094#factFINAL assume true; 289078#factEXIT >#66#return; 289081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 289225#factFINAL assume true; 289185#factEXIT >#78#return; 287976#L30-8 [2023-02-18 08:56:49,679 INFO L750 eck$LassoCheckResult]: Loop: 287976#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 288022#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 288023#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 288080#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 288018#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 288019#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 288081#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 288082#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 288435#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 288734#$Ultimate##0 ~n := #in~n; 289694#L25 assume !(~n <= 0); 288363#L26 call #t~ret0 := fact(~n - 1);< 288430#$Ultimate##0 ~n := #in~n; 288405#L25 assume !(~n <= 0); 288362#L26 call #t~ret0 := fact(~n - 1);< 288397#$Ultimate##0 ~n := #in~n; 288405#L25 assume !(~n <= 0); 288362#L26 call #t~ret0 := fact(~n - 1);< 288397#$Ultimate##0 ~n := #in~n; 288405#L25 assume !(~n <= 0); 288362#L26 call #t~ret0 := fact(~n - 1);< 288397#$Ultimate##0 ~n := #in~n; 288401#L25 assume ~n <= 0;#res := 1; 288399#factFINAL assume true; 288392#factEXIT >#66#return; 288391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288384#factFINAL assume true; 288352#factEXIT >#66#return; 288378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288656#factFINAL assume true; 288652#factEXIT >#66#return; 288651#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288650#factFINAL assume true; 288642#factEXIT >#66#return; 288647#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288796#factFINAL assume true; 288733#factEXIT >#68#return; 288479#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 288482#$Ultimate##0 ~n := #in~n; 288484#L25 assume ~n <= 0;#res := 1; 288483#factFINAL assume true; 288475#factEXIT >#70#return; 288455#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 288459#$Ultimate##0 ~n := #in~n; 288457#L25 assume !(~n <= 0); 288441#L26 call #t~ret0 := fact(~n - 1);< 288448#$Ultimate##0 ~n := #in~n; 288445#L25 assume !(~n <= 0); 288431#L26 call #t~ret0 := fact(~n - 1);< 288437#$Ultimate##0 ~n := #in~n; 288436#L25 assume !(~n <= 0); 288355#L26 call #t~ret0 := fact(~n - 1);< 288408#$Ultimate##0 ~n := #in~n; 288405#L25 assume !(~n <= 0); 288362#L26 call #t~ret0 := fact(~n - 1);< 288397#$Ultimate##0 ~n := #in~n; 288401#L25 assume ~n <= 0;#res := 1; 288399#factFINAL assume true; 288392#factEXIT >#66#return; 288391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288384#factFINAL assume true; 288352#factEXIT >#66#return; 288378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288656#factFINAL assume true; 288652#factEXIT >#66#return; 288651#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288650#factFINAL assume true; 288642#factEXIT >#66#return; 288649#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288877#factFINAL assume true; 288723#factEXIT >#72#return; 288724#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 288871#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 288870#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 288869#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 288868#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 288387#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 288682#$Ultimate##0 ~n := #in~n; 290047#L25 assume !(~n <= 0); 288385#L26 call #t~ret0 := fact(~n - 1);< 288390#$Ultimate##0 ~n := #in~n; 290048#L25 assume !(~n <= 0); 288395#L26 call #t~ret0 := fact(~n - 1);< 288396#$Ultimate##0 ~n := #in~n; 288470#L25 assume !(~n <= 0); 288365#L26 call #t~ret0 := fact(~n - 1);< 288402#$Ultimate##0 ~n := #in~n; 288400#L25 assume !(~n <= 0); 288393#L26 call #t~ret0 := fact(~n - 1);< 288398#$Ultimate##0 ~n := #in~n; 288401#L25 assume ~n <= 0;#res := 1; 288399#factFINAL assume true; 288392#factEXIT >#66#return; 288391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288384#factFINAL assume true; 288352#factEXIT >#66#return; 288378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288656#factFINAL assume true; 288652#factEXIT >#66#return; 288651#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288650#factFINAL assume true; 288642#factEXIT >#66#return; 288646#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288681#factFINAL assume true; 288589#factEXIT >#68#return; 288498#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 288536#$Ultimate##0 ~n := #in~n; 288567#L25 assume !(~n <= 0); 288543#L26 call #t~ret0 := fact(~n - 1);< 288550#$Ultimate##0 ~n := #in~n; 288411#L25 assume ~n <= 0;#res := 1; 288551#factFINAL assume true; 288542#factEXIT >#66#return; 288541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288537#factFINAL assume true; 288485#factEXIT >#70#return; 288472#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 288474#$Ultimate##0 ~n := #in~n; 288473#L25 assume !(~n <= 0); 288467#L26 call #t~ret0 := fact(~n - 1);< 288396#$Ultimate##0 ~n := #in~n; 288470#L25 assume !(~n <= 0); 288365#L26 call #t~ret0 := fact(~n - 1);< 288402#$Ultimate##0 ~n := #in~n; 288400#L25 assume !(~n <= 0); 288393#L26 call #t~ret0 := fact(~n - 1);< 288398#$Ultimate##0 ~n := #in~n; 288401#L25 assume ~n <= 0;#res := 1; 288399#factFINAL assume true; 288392#factEXIT >#66#return; 288391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288384#factFINAL assume true; 288352#factEXIT >#66#return; 288378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288656#factFINAL assume true; 288652#factEXIT >#66#return; 288653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288602#factFINAL assume true; 288598#factEXIT >#72#return; 288599#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 288708#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 288707#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 288697#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 288696#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 288389#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 288682#$Ultimate##0 ~n := #in~n; 290047#L25 assume !(~n <= 0); 288385#L26 call #t~ret0 := fact(~n - 1);< 288390#$Ultimate##0 ~n := #in~n; 290048#L25 assume !(~n <= 0); 288395#L26 call #t~ret0 := fact(~n - 1);< 288396#$Ultimate##0 ~n := #in~n; 288470#L25 assume !(~n <= 0); 288365#L26 call #t~ret0 := fact(~n - 1);< 288402#$Ultimate##0 ~n := #in~n; 288400#L25 assume !(~n <= 0); 288393#L26 call #t~ret0 := fact(~n - 1);< 288398#$Ultimate##0 ~n := #in~n; 288401#L25 assume ~n <= 0;#res := 1; 288399#factFINAL assume true; 288392#factEXIT >#66#return; 288391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288384#factFINAL assume true; 288352#factEXIT >#66#return; 288378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288656#factFINAL assume true; 288652#factEXIT >#66#return; 288651#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288650#factFINAL assume true; 288642#factEXIT >#66#return; 288646#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288681#factFINAL assume true; 288589#factEXIT >#68#return; 288509#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 288570#$Ultimate##0 ~n := #in~n; 288563#L25 assume !(~n <= 0); 288353#L26 call #t~ret0 := fact(~n - 1);< 288430#$Ultimate##0 ~n := #in~n; 288405#L25 assume !(~n <= 0); 288362#L26 call #t~ret0 := fact(~n - 1);< 288397#$Ultimate##0 ~n := #in~n; 288401#L25 assume ~n <= 0;#res := 1; 288399#factFINAL assume true; 288392#factEXIT >#66#return; 288391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288384#factFINAL assume true; 288352#factEXIT >#66#return; 288377#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288675#factFINAL assume true; 288670#factEXIT >#70#return; 288672#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 288676#$Ultimate##0 ~n := #in~n; 288693#L25 assume !(~n <= 0); 288374#L26 call #t~ret0 := fact(~n - 1);< 288402#$Ultimate##0 ~n := #in~n; 288400#L25 assume !(~n <= 0); 288393#L26 call #t~ret0 := fact(~n - 1);< 288398#$Ultimate##0 ~n := #in~n; 288401#L25 assume ~n <= 0;#res := 1; 288399#factFINAL assume true; 288392#factEXIT >#66#return; 288391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288384#factFINAL assume true; 288352#factEXIT >#66#return; 288377#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288675#factFINAL assume true; 288670#factEXIT >#72#return; 288623#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 288606#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 288604#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 288603#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 288601#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 288424#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 288429#$Ultimate##0 ~n := #in~n; 288428#L25 assume !(~n <= 0); 288413#L26 call #t~ret0 := fact(~n - 1);< 288422#$Ultimate##0 ~n := #in~n; 288420#L25 assume !(~n <= 0); 288394#L26 call #t~ret0 := fact(~n - 1);< 288409#$Ultimate##0 ~n := #in~n; 288406#L25 assume !(~n <= 0); 288370#L26 call #t~ret0 := fact(~n - 1);< 288403#$Ultimate##0 ~n := #in~n; 288400#L25 assume !(~n <= 0); 288393#L26 call #t~ret0 := fact(~n - 1);< 288398#$Ultimate##0 ~n := #in~n; 288401#L25 assume ~n <= 0;#res := 1; 288399#factFINAL assume true; 288392#factEXIT >#66#return; 288391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288384#factFINAL assume true; 288352#factEXIT >#66#return; 288378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288656#factFINAL assume true; 288652#factEXIT >#66#return; 288651#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288650#factFINAL assume true; 288642#factEXIT >#66#return; 288646#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288681#factFINAL assume true; 288589#factEXIT >#68#return; 288527#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 288570#$Ultimate##0 ~n := #in~n; 288563#L25 assume !(~n <= 0); 288353#L26 call #t~ret0 := fact(~n - 1);< 288430#$Ultimate##0 ~n := #in~n; 288405#L25 assume !(~n <= 0); 288362#L26 call #t~ret0 := fact(~n - 1);< 288397#$Ultimate##0 ~n := #in~n; 288405#L25 assume !(~n <= 0); 288362#L26 call #t~ret0 := fact(~n - 1);< 288397#$Ultimate##0 ~n := #in~n; 288401#L25 assume ~n <= 0;#res := 1; 288399#factFINAL assume true; 288392#factEXIT >#66#return; 288391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288384#factFINAL assume true; 288352#factEXIT >#66#return; 288378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288656#factFINAL assume true; 288652#factEXIT >#66#return; 288653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288602#factFINAL assume true; 288598#factEXIT >#70#return; 288501#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 288539#$Ultimate##0 ~n := #in~n; 288568#L25 assume !(~n <= 0); 288372#L26 call #t~ret0 := fact(~n - 1);< 288383#$Ultimate##0 ~n := #in~n; 288411#L25 assume ~n <= 0;#res := 1; 288551#factFINAL assume true; 288542#factEXIT >#66#return; 288541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288537#factFINAL assume true; 288485#factEXIT >#72#return; 288528#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 288595#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 288593#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 288591#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 288590#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 288427#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 288429#$Ultimate##0 ~n := #in~n; 288428#L25 assume !(~n <= 0); 288413#L26 call #t~ret0 := fact(~n - 1);< 288422#$Ultimate##0 ~n := #in~n; 288420#L25 assume !(~n <= 0); 288394#L26 call #t~ret0 := fact(~n - 1);< 288409#$Ultimate##0 ~n := #in~n; 288406#L25 assume !(~n <= 0); 288370#L26 call #t~ret0 := fact(~n - 1);< 288403#$Ultimate##0 ~n := #in~n; 288400#L25 assume !(~n <= 0); 288393#L26 call #t~ret0 := fact(~n - 1);< 288398#$Ultimate##0 ~n := #in~n; 288401#L25 assume ~n <= 0;#res := 1; 288399#factFINAL assume true; 288392#factEXIT >#66#return; 288391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288384#factFINAL assume true; 288352#factEXIT >#66#return; 288378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288656#factFINAL assume true; 288652#factEXIT >#66#return; 288651#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288650#factFINAL assume true; 288642#factEXIT >#66#return; 288646#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288681#factFINAL assume true; 288589#factEXIT >#68#return; 288525#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 288570#$Ultimate##0 ~n := #in~n; 288563#L25 assume !(~n <= 0); 288353#L26 call #t~ret0 := fact(~n - 1);< 288430#$Ultimate##0 ~n := #in~n; 288405#L25 assume !(~n <= 0); 288362#L26 call #t~ret0 := fact(~n - 1);< 288397#$Ultimate##0 ~n := #in~n; 288405#L25 assume !(~n <= 0); 288362#L26 call #t~ret0 := fact(~n - 1);< 288397#$Ultimate##0 ~n := #in~n; 288405#L25 assume !(~n <= 0); 288362#L26 call #t~ret0 := fact(~n - 1);< 288397#$Ultimate##0 ~n := #in~n; 288401#L25 assume ~n <= 0;#res := 1; 288399#factFINAL assume true; 288392#factEXIT >#66#return; 288391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288384#factFINAL assume true; 288352#factEXIT >#66#return; 288378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288656#factFINAL assume true; 288652#factEXIT >#66#return; 288651#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288650#factFINAL assume true; 288642#factEXIT >#66#return; 288643#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288678#factFINAL assume true; 288571#factEXIT >#70#return; 288502#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 288539#$Ultimate##0 ~n := #in~n; 288568#L25 assume ~n <= 0;#res := 1; 288565#factFINAL assume true; 288816#factEXIT >#72#return; 288817#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 289170#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 289168#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 289166#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 289165#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 288037#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 288927#$Ultimate##0 ~n := #in~n; 288034#L25 assume !(~n <= 0); 288040#L26 call #t~ret0 := fact(~n - 1);< 288948#$Ultimate##0 ~n := #in~n; 289131#L25 assume !(~n <= 0); 288943#L26 call #t~ret0 := fact(~n - 1);< 289110#$Ultimate##0 ~n := #in~n; 289131#L25 assume !(~n <= 0); 288943#L26 call #t~ret0 := fact(~n - 1);< 289110#$Ultimate##0 ~n := #in~n; 289131#L25 assume !(~n <= 0); 288943#L26 call #t~ret0 := fact(~n - 1);< 289110#$Ultimate##0 ~n := #in~n; 289131#L25 assume !(~n <= 0); 288943#L26 call #t~ret0 := fact(~n - 1);< 289110#$Ultimate##0 ~n := #in~n; 289132#L25 assume ~n <= 0;#res := 1; 289123#factFINAL assume true; 289106#factEXIT >#66#return; 289102#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 289094#factFINAL assume true; 289078#factEXIT >#66#return; 289082#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 289137#factFINAL assume true; 289057#factEXIT >#66#return; 289053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288950#factFINAL assume true; 288935#factEXIT >#66#return; 288946#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 289097#factFINAL assume true; 289087#factEXIT >#66#return; 289072#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 289068#factFINAL assume true; 288912#factEXIT >#74#return; 288039#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 288927#$Ultimate##0 ~n := #in~n; 288034#L25 assume !(~n <= 0); 288040#L26 call #t~ret0 := fact(~n - 1);< 288948#$Ultimate##0 ~n := #in~n; 289131#L25 assume !(~n <= 0); 288943#L26 call #t~ret0 := fact(~n - 1);< 289110#$Ultimate##0 ~n := #in~n; 289131#L25 assume !(~n <= 0); 288943#L26 call #t~ret0 := fact(~n - 1);< 289110#$Ultimate##0 ~n := #in~n; 289131#L25 assume !(~n <= 0); 288943#L26 call #t~ret0 := fact(~n - 1);< 289110#$Ultimate##0 ~n := #in~n; 289131#L25 assume !(~n <= 0); 288943#L26 call #t~ret0 := fact(~n - 1);< 289110#$Ultimate##0 ~n := #in~n; 289132#L25 assume ~n <= 0;#res := 1; 289123#factFINAL assume true; 289106#factEXIT >#66#return; 289102#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 289094#factFINAL assume true; 289078#factEXIT >#66#return; 289082#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 289137#factFINAL assume true; 289057#factEXIT >#66#return; 289053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 288950#factFINAL assume true; 288935#factEXIT >#66#return; 288946#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 289097#factFINAL assume true; 289087#factEXIT >#66#return; 289072#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 289068#factFINAL assume true; 288912#factEXIT >#76#return; 288768#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 288769#$Ultimate##0 ~n := #in~n; 289199#L25 assume !(~n <= 0); 289196#L26 call #t~ret0 := fact(~n - 1);< 288005#$Ultimate##0 ~n := #in~n; 289130#L25 assume ~n <= 0;#res := 1; 289200#factFINAL assume true; 289195#factEXIT >#66#return; 289193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 289141#factFINAL assume true; 288766#factEXIT >#78#return; 287976#L30-8 [2023-02-18 08:56:49,679 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:49,680 INFO L85 PathProgramCache]: Analyzing trace with hash 2135700754, now seen corresponding path program 49 times [2023-02-18 08:56:49,680 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:49,680 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1004149600] [2023-02-18 08:56:49,680 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:49,680 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:49,689 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:49,689 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1656914258] [2023-02-18 08:56:49,689 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:56:49,689 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:49,689 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:49,691 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-18 08:56:49,692 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-18 08:56:49,980 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:49,980 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:50,057 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:50,088 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:50,088 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:50,088 INFO L85 PathProgramCache]: Analyzing trace with hash 1321919244, now seen corresponding path program 50 times [2023-02-18 08:56:50,088 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:50,089 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [31535512] [2023-02-18 08:56:50,089 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:50,089 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:50,097 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:50,097 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1204255498] [2023-02-18 08:56:50,097 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:56:50,097 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:50,097 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:50,099 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-18 08:56:50,099 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-18 08:56:50,366 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:56:50,366 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:50,369 INFO L263 TraceCheckSpWp]: Trace formula consists of 926 conjuncts, 26 conjunts are in the unsatisfiable core [2023-02-18 08:56:50,371 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:50,447 INFO L134 CoverageAnalysis]: Checked inductivity of 12035 backedges. 1946 proven. 1337 refuted. 0 times theorem prover too weak. 8752 trivial. 0 not checked. [2023-02-18 08:56:50,448 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:50,690 INFO L134 CoverageAnalysis]: Checked inductivity of 12035 backedges. 1314 proven. 1443 refuted. 0 times theorem prover too weak. 9278 trivial. 0 not checked. [2023-02-18 08:56:50,690 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:50,691 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [31535512] [2023-02-18 08:56:50,691 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:50,691 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1204255498] [2023-02-18 08:56:50,691 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1204255498] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:50,691 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:50,691 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 25] total 28 [2023-02-18 08:56:50,691 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1930220304] [2023-02-18 08:56:50,691 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:50,692 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:50,692 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:50,692 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 28 interpolants. [2023-02-18 08:56:50,692 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=115, Invalid=641, Unknown=0, NotChecked=0, Total=756 [2023-02-18 08:56:50,693 INFO L87 Difference]: Start difference. First operand 2364 states and 3356 transitions. cyclomatic complexity: 1021 Second operand has 28 states, 25 states have (on average 2.8) internal successors, (70), 28 states have internal predecessors, (70), 17 states have call successors, (22), 2 states have call predecessors, (22), 12 states have return successors, (28), 13 states have call predecessors, (28), 17 states have call successors, (28) [2023-02-18 08:56:51,558 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:51,559 INFO L93 Difference]: Finished difference Result 2600 states and 3725 transitions. [2023-02-18 08:56:51,559 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2600 states and 3725 transitions. [2023-02-18 08:56:51,569 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 386 [2023-02-18 08:56:51,580 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2600 states to 2598 states and 3717 transitions. [2023-02-18 08:56:51,580 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 296 [2023-02-18 08:56:51,580 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 305 [2023-02-18 08:56:51,580 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2598 states and 3717 transitions. [2023-02-18 08:56:51,580 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:51,580 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2598 states and 3717 transitions. [2023-02-18 08:56:51,581 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2598 states and 3717 transitions. [2023-02-18 08:56:51,602 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2598 to 2425. [2023-02-18 08:56:51,604 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2425 states, 1527 states have (on average 1.065487884741323) internal successors, (1627), 1526 states have internal predecessors, (1627), 710 states have call successors, (722), 234 states have call predecessors, (722), 188 states have return successors, (1100), 664 states have call predecessors, (1100), 710 states have call successors, (1100) [2023-02-18 08:56:51,611 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2425 states to 2425 states and 3449 transitions. [2023-02-18 08:56:51,611 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2425 states and 3449 transitions. [2023-02-18 08:56:51,611 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 28 states. [2023-02-18 08:56:51,612 INFO L428 stractBuchiCegarLoop]: Abstraction has 2425 states and 3449 transitions. [2023-02-18 08:56:51,612 INFO L335 stractBuchiCegarLoop]: ======== Iteration 63 ============ [2023-02-18 08:56:51,612 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2425 states and 3449 transitions. [2023-02-18 08:56:51,616 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 321 [2023-02-18 08:56:51,616 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:51,616 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:51,617 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 8, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:51,617 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [68, 68, 50, 50, 50, 50, 18, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:51,617 INFO L748 eck$LassoCheckResult]: Stem: 295657#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 295602#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; 295603#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 295628#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; 295617#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 295618#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 297853#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 295600#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 295601#$Ultimate##0 ~n := #in~n; 297930#L25 assume ~n <= 0;#res := 1; 297928#factFINAL assume true; 297926#factEXIT >#68#return; 295648#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 295649#$Ultimate##0 ~n := #in~n; 297872#L25 assume ~n <= 0;#res := 1; 297870#factFINAL assume true; 297868#factEXIT >#70#return; 295580#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 295582#$Ultimate##0 ~n := #in~n; 295642#L25 assume ~n <= 0;#res := 1; 295643#factFINAL assume true; 295579#factEXIT >#72#return; 295581#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 297958#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 297919#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 297918#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 297917#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 296781#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 296782#$Ultimate##0 ~n := #in~n; 297112#L25 assume !(~n <= 0); 297110#L26 call #t~ret0 := fact(~n - 1);< 297111#$Ultimate##0 ~n := #in~n; 297115#L25 assume ~n <= 0;#res := 1; 297113#factFINAL assume true; 297109#factEXIT >#66#return; 297108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 297107#factFINAL assume true; 296780#factEXIT >#74#return; 296507#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 296508#$Ultimate##0 ~n := #in~n; 296511#L25 assume ~n <= 0;#res := 1; 296510#factFINAL assume true; 296506#factEXIT >#76#return; 296431#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 296432#$Ultimate##0 ~n := #in~n; 296470#L25 assume !(~n <= 0); 296467#L26 call #t~ret0 := fact(~n - 1);< 296468#$Ultimate##0 ~n := #in~n; 296499#L25 assume ~n <= 0;#res := 1; 296497#factFINAL assume true; 296466#factEXIT >#66#return; 296463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296462#factFINAL assume true; 296430#factEXIT >#78#return; 296428#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 296404#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 296400#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 296397#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 296396#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 296385#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 296386#$Ultimate##0 ~n := #in~n; 296461#L25 assume !(~n <= 0); 296390#L26 call #t~ret0 := fact(~n - 1);< 296394#$Ultimate##0 ~n := #in~n; 296452#L25 assume !(~n <= 0); 296389#L26 call #t~ret0 := fact(~n - 1);< 296427#$Ultimate##0 ~n := #in~n; 296450#L25 assume ~n <= 0;#res := 1; 296449#factFINAL assume true; 296426#factEXIT >#66#return; 296403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296399#factFINAL assume true; 296388#factEXIT >#66#return; 296393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296653#factFINAL assume true; 296384#factEXIT >#74#return; 296379#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 296380#$Ultimate##0 ~n := #in~n; 296395#L25 assume ~n <= 0;#res := 1; 296383#factFINAL assume true; 296378#factEXIT >#76#return; 296373#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 296374#$Ultimate##0 ~n := #in~n; 296401#L25 assume !(~n <= 0); 296391#L26 call #t~ret0 := fact(~n - 1);< 296394#$Ultimate##0 ~n := #in~n; 296452#L25 assume !(~n <= 0); 296389#L26 call #t~ret0 := fact(~n - 1);< 296427#$Ultimate##0 ~n := #in~n; 296450#L25 assume ~n <= 0;#res := 1; 296449#factFINAL assume true; 296426#factEXIT >#66#return; 296403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296399#factFINAL assume true; 296388#factEXIT >#66#return; 296382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296377#factFINAL assume true; 296372#factEXIT >#78#return; 296370#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 296367#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 296364#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 296362#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 296358#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 296255#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 296256#$Ultimate##0 ~n := #in~n; 296271#L25 assume !(~n <= 0); 296269#L26 call #t~ret0 := fact(~n - 1);< 296270#$Ultimate##0 ~n := #in~n; 296282#L25 assume !(~n <= 0); 296268#L26 call #t~ret0 := fact(~n - 1);< 296280#$Ultimate##0 ~n := #in~n; 296282#L25 assume !(~n <= 0); 296268#L26 call #t~ret0 := fact(~n - 1);< 296280#$Ultimate##0 ~n := #in~n; 296368#L25 assume ~n <= 0;#res := 1; 296366#factFINAL assume true; 296363#factEXIT >#66#return; 296361#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296357#factFINAL assume true; 296279#factEXIT >#66#return; 296277#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296275#factFINAL assume true; 296267#factEXIT >#66#return; 296266#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296264#factFINAL assume true; 296254#factEXIT >#74#return; 296251#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 296252#$Ultimate##0 ~n := #in~n; 296349#L25 assume ~n <= 0;#res := 1; 296347#factFINAL assume true; 296250#factEXIT >#76#return; 295636#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 296231#$Ultimate##0 ~n := #in~n; 296356#L25 assume !(~n <= 0); 296299#L26 call #t~ret0 := fact(~n - 1);< 296301#$Ultimate##0 ~n := #in~n; 296309#L25 assume !(~n <= 0); 296297#L26 call #t~ret0 := fact(~n - 1);< 296308#$Ultimate##0 ~n := #in~n; 296309#L25 assume !(~n <= 0); 296297#L26 call #t~ret0 := fact(~n - 1);< 296308#$Ultimate##0 ~n := #in~n; 296332#L25 assume ~n <= 0;#res := 1; 296331#factFINAL assume true; 296313#factEXIT >#66#return; 296311#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296310#factFINAL assume true; 296307#factEXIT >#66#return; 296306#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296302#factFINAL assume true; 296296#factEXIT >#66#return; 295635#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295637#factFINAL assume true; 296230#factEXIT >#78#return; 296221#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 296220#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 296219#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 296218#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 296215#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 296214#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 296213#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 296212#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 296110#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 296111#$Ultimate##0 ~n := #in~n; 296135#L25 assume !(~n <= 0); 296119#L26 call #t~ret0 := fact(~n - 1);< 296134#$Ultimate##0 ~n := #in~n; 296146#L25 assume ~n <= 0;#res := 1; 296136#factFINAL assume true; 296118#factEXIT >#66#return; 296117#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296116#factFINAL assume true; 296105#factEXIT >#68#return; 296092#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 296101#$Ultimate##0 ~n := #in~n; 296208#L25 assume ~n <= 0;#res := 1; 296200#factFINAL assume true; 296091#factEXIT >#70#return; 295849#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 296090#$Ultimate##0 ~n := #in~n; 296089#L25 assume !(~n <= 0); 295808#L26 call #t~ret0 := fact(~n - 1);< 295850#$Ultimate##0 ~n := #in~n; 295829#L25 assume ~n <= 0;#res := 1; 295900#factFINAL assume true; 295891#factEXIT >#66#return; 295897#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296170#factFINAL assume true; 296169#factEXIT >#72#return; 296168#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 296166#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 296164#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 296162#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 296160#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 295905#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 295917#$Ultimate##0 ~n := #in~n; 295915#L25 assume !(~n <= 0); 295806#L26 call #t~ret0 := fact(~n - 1);< 295850#$Ultimate##0 ~n := #in~n; 295829#L25 assume ~n <= 0;#res := 1; 295900#factFINAL assume true; 295891#factEXIT >#66#return; 295896#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296234#factFINAL assume true; 296157#factEXIT >#68#return; 296007#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 296040#$Ultimate##0 ~n := #in~n; 296172#L25 assume !(~n <= 0); 295820#L26 call #t~ret0 := fact(~n - 1);< 295901#$Ultimate##0 ~n := #in~n; 295829#L25 assume ~n <= 0;#res := 1; 295900#factFINAL assume true; 295891#factEXIT >#66#return; 295894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296209#factFINAL assume true; 296147#factEXIT >#70#return; 296058#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 296069#$Ultimate##0 ~n := #in~n; 296156#L25 assume ~n <= 0;#res := 1; 296145#factFINAL assume true; 296055#factEXIT >#72#return; 296053#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 296052#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 296051#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 296050#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 296049#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 296021#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 296039#$Ultimate##0 ~n := #in~n; 296176#L25 assume !(~n <= 0); 295783#L26 call #t~ret0 := fact(~n - 1);< 295899#$Ultimate##0 ~n := #in~n; 295967#L25 assume !(~n <= 0); 295772#L26 call #t~ret0 := fact(~n - 1);< 295947#$Ultimate##0 ~n := #in~n; 295816#L25 assume ~n <= 0;#res := 1; 295815#factFINAL assume true; 295795#factEXIT >#66#return; 295801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295989#factFINAL assume true; 295972#factEXIT >#66#return; 295975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296171#factFINAL assume true; 296158#factEXIT >#74#return; 296020#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 296040#$Ultimate##0 ~n := #in~n; 296172#L25 assume !(~n <= 0); 295820#L26 call #t~ret0 := fact(~n - 1);< 295901#$Ultimate##0 ~n := #in~n; 295829#L25 assume ~n <= 0;#res := 1; 295900#factFINAL assume true; 295891#factEXIT >#66#return; 295894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296209#factFINAL assume true; 296147#factEXIT >#76#return; 296148#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 296211#$Ultimate##0 ~n := #in~n; 296217#L25 assume !(~n <= 0); 295893#L26 call #t~ret0 := fact(~n - 1);< 295898#$Ultimate##0 ~n := #in~n; 295829#L25 assume ~n <= 0;#res := 1; 295900#factFINAL assume true; 295891#factEXIT >#66#return; 295894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296209#factFINAL assume true; 296147#factEXIT >#78#return; 296152#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 297154#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 297153#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 297152#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 297151#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 296822#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 296841#$Ultimate##0 ~n := #in~n; 297150#L25 assume !(~n <= 0); 295587#L26 call #t~ret0 := fact(~n - 1);< 297149#$Ultimate##0 ~n := #in~n; 297845#L25 assume !(~n <= 0); 295574#L26 call #t~ret0 := fact(~n - 1);< 297842#$Ultimate##0 ~n := #in~n; 297845#L25 assume !(~n <= 0); 295574#L26 call #t~ret0 := fact(~n - 1);< 297842#$Ultimate##0 ~n := #in~n; 295650#L25 assume ~n <= 0;#res := 1; 297869#factFINAL assume true; 295572#factEXIT >#66#return; 295578#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 297838#factFINAL assume true; 297141#factEXIT >#66#return; 297144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 297166#factFINAL assume true; 297160#factEXIT >#66#return; 297158#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296848#factFINAL assume true; 296842#factEXIT >#74#return; 296834#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 296839#$Ultimate##0 ~n := #in~n; 297844#L25 assume !(~n <= 0); 297013#L26 call #t~ret0 := fact(~n - 1);< 297148#$Ultimate##0 ~n := #in~n; 297039#L25 assume ~n <= 0;#res := 1; 297021#factFINAL assume true; 297011#factEXIT >#66#return; 297017#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 297175#factFINAL assume true; 296849#factEXIT >#76#return; 296832#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 296841#$Ultimate##0 ~n := #in~n; 297150#L25 assume !(~n <= 0); 295587#L26 call #t~ret0 := fact(~n - 1);< 297149#$Ultimate##0 ~n := #in~n; 297845#L25 assume !(~n <= 0); 295574#L26 call #t~ret0 := fact(~n - 1);< 297842#$Ultimate##0 ~n := #in~n; 295650#L25 assume ~n <= 0;#res := 1; 297869#factFINAL assume true; 295572#factEXIT >#66#return; 295578#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 297838#factFINAL assume true; 297141#factEXIT >#66#return; 297140#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296838#factFINAL assume true; 296818#factEXIT >#78#return; 296783#L30-8 [2023-02-18 08:56:51,617 INFO L750 eck$LassoCheckResult]: Loop: 296783#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 296779#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 296777#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 296776#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 296775#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 296774#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 296504#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 296293#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 296189#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 296190#$Ultimate##0 ~n := #in~n; 296196#L25 assume !(~n <= 0); 295778#L26 call #t~ret0 := fact(~n - 1);< 295899#$Ultimate##0 ~n := #in~n; 295967#L25 assume !(~n <= 0); 295772#L26 call #t~ret0 := fact(~n - 1);< 295947#$Ultimate##0 ~n := #in~n; 295967#L25 assume !(~n <= 0); 295772#L26 call #t~ret0 := fact(~n - 1);< 295947#$Ultimate##0 ~n := #in~n; 295967#L25 assume !(~n <= 0); 295772#L26 call #t~ret0 := fact(~n - 1);< 295947#$Ultimate##0 ~n := #in~n; 295816#L25 assume ~n <= 0;#res := 1; 295815#factFINAL assume true; 295795#factEXIT >#66#return; 295801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295989#factFINAL assume true; 295972#factEXIT >#66#return; 295968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295958#factFINAL assume true; 295953#factEXIT >#66#return; 295950#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295942#factFINAL assume true; 295932#factEXIT >#66#return; 295938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296191#factFINAL assume true; 296187#factEXIT >#68#return; 296181#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 296186#$Ultimate##0 ~n := #in~n; 296273#L25 assume ~n <= 0;#res := 1; 296272#factFINAL assume true; 296179#factEXIT >#70#return; 295980#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 295985#$Ultimate##0 ~n := #in~n; 295984#L25 assume !(~n <= 0); 295770#L26 call #t~ret0 := fact(~n - 1);< 295814#$Ultimate##0 ~n := #in~n; 295978#L25 assume !(~n <= 0); 295777#L26 call #t~ret0 := fact(~n - 1);< 295957#$Ultimate##0 ~n := #in~n; 295979#L25 assume !(~n <= 0); 295774#L26 call #t~ret0 := fact(~n - 1);< 295946#$Ultimate##0 ~n := #in~n; 295967#L25 assume !(~n <= 0); 295772#L26 call #t~ret0 := fact(~n - 1);< 295947#$Ultimate##0 ~n := #in~n; 295816#L25 assume ~n <= 0;#res := 1; 295815#factFINAL assume true; 295795#factEXIT >#66#return; 295801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295989#factFINAL assume true; 295972#factEXIT >#66#return; 295968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295958#factFINAL assume true; 295953#factEXIT >#66#return; 295950#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295942#factFINAL assume true; 295932#factEXIT >#66#return; 295935#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296177#factFINAL assume true; 296086#factEXIT >#72#return; 296085#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 296083#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 296081#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 296079#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 296078#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 295868#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 295872#$Ultimate##0 ~n := #in~n; 295871#L25 assume !(~n <= 0); 295862#L26 call #t~ret0 := fact(~n - 1);< 295865#$Ultimate##0 ~n := #in~n; 295863#L25 assume !(~n <= 0); 295852#L26 call #t~ret0 := fact(~n - 1);< 295858#$Ultimate##0 ~n := #in~n; 295856#L25 assume !(~n <= 0); 295805#L26 call #t~ret0 := fact(~n - 1);< 295818#$Ultimate##0 ~n := #in~n; 295817#L25 assume !(~n <= 0); 295796#L26 call #t~ret0 := fact(~n - 1);< 295802#$Ultimate##0 ~n := #in~n; 295816#L25 assume ~n <= 0;#res := 1; 295815#factFINAL assume true; 295795#factEXIT >#66#return; 295801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295989#factFINAL assume true; 295972#factEXIT >#66#return; 295968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295958#factFINAL assume true; 295953#factEXIT >#66#return; 295950#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295942#factFINAL assume true; 295932#factEXIT >#66#return; 295937#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295929#factFINAL assume true; 295927#factEXIT >#68#return; 295877#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 295885#$Ultimate##0 ~n := #in~n; 296772#L25 assume !(~n <= 0); 295892#L26 call #t~ret0 := fact(~n - 1);< 295898#$Ultimate##0 ~n := #in~n; 295829#L25 assume ~n <= 0;#res := 1; 295900#factFINAL assume true; 295891#factEXIT >#66#return; 295890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295886#factFINAL assume true; 295873#factEXIT >#70#return; 295861#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 295866#$Ultimate##0 ~n := #in~n; 295864#L25 assume !(~n <= 0); 295851#L26 call #t~ret0 := fact(~n - 1);< 295858#$Ultimate##0 ~n := #in~n; 295856#L25 assume !(~n <= 0); 295805#L26 call #t~ret0 := fact(~n - 1);< 295818#$Ultimate##0 ~n := #in~n; 295817#L25 assume !(~n <= 0); 295796#L26 call #t~ret0 := fact(~n - 1);< 295802#$Ultimate##0 ~n := #in~n; 295816#L25 assume ~n <= 0;#res := 1; 295815#factFINAL assume true; 295795#factEXIT >#66#return; 295801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295989#factFINAL assume true; 295972#factEXIT >#66#return; 295968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295958#factFINAL assume true; 295953#factEXIT >#66#return; 295955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295988#factFINAL assume true; 295969#factEXIT >#72#return; 295971#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 296072#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 296071#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 296070#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 296054#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 295870#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 295872#$Ultimate##0 ~n := #in~n; 295871#L25 assume !(~n <= 0); 295862#L26 call #t~ret0 := fact(~n - 1);< 295865#$Ultimate##0 ~n := #in~n; 295863#L25 assume !(~n <= 0); 295852#L26 call #t~ret0 := fact(~n - 1);< 295858#$Ultimate##0 ~n := #in~n; 295856#L25 assume !(~n <= 0); 295805#L26 call #t~ret0 := fact(~n - 1);< 295818#$Ultimate##0 ~n := #in~n; 295817#L25 assume !(~n <= 0); 295796#L26 call #t~ret0 := fact(~n - 1);< 295802#$Ultimate##0 ~n := #in~n; 295816#L25 assume ~n <= 0;#res := 1; 295815#factFINAL assume true; 295795#factEXIT >#66#return; 295801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295989#factFINAL assume true; 295972#factEXIT >#66#return; 295968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295958#factFINAL assume true; 295953#factEXIT >#66#return; 295950#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295942#factFINAL assume true; 295932#factEXIT >#66#return; 295937#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295929#factFINAL assume true; 295927#factEXIT >#68#return; 295921#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 295925#$Ultimate##0 ~n := #in~n; 297131#L25 assume !(~n <= 0); 295811#L26 call #t~ret0 := fact(~n - 1);< 295966#$Ultimate##0 ~n := #in~n; 296794#L25 assume !(~n <= 0); 295799#L26 call #t~ret0 := fact(~n - 1);< 295813#$Ultimate##0 ~n := #in~n; 295816#L25 assume ~n <= 0;#res := 1; 295815#factFINAL assume true; 295795#factEXIT >#66#return; 295801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295989#factFINAL assume true; 295972#factEXIT >#66#return; 295973#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296088#factFINAL assume true; 296044#factEXIT >#70#return; 296045#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 296048#$Ultimate##0 ~n := #in~n; 296104#L25 assume !(~n <= 0); 295803#L26 call #t~ret0 := fact(~n - 1);< 295818#$Ultimate##0 ~n := #in~n; 295817#L25 assume !(~n <= 0); 295796#L26 call #t~ret0 := fact(~n - 1);< 295802#$Ultimate##0 ~n := #in~n; 295816#L25 assume ~n <= 0;#res := 1; 295815#factFINAL assume true; 295795#factEXIT >#66#return; 295801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295989#factFINAL assume true; 295972#factEXIT >#66#return; 295973#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 296088#factFINAL assume true; 296044#factEXIT >#72#return; 296035#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 295998#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 295997#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 295995#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 295993#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 295843#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 295846#$Ultimate##0 ~n := #in~n; 295845#L25 assume !(~n <= 0); 295830#L26 call #t~ret0 := fact(~n - 1);< 295839#$Ultimate##0 ~n := #in~n; 295837#L25 assume !(~n <= 0); 295800#L26 call #t~ret0 := fact(~n - 1);< 295827#$Ultimate##0 ~n := #in~n; 295826#L25 assume !(~n <= 0); 295797#L26 call #t~ret0 := fact(~n - 1);< 295824#$Ultimate##0 ~n := #in~n; 295817#L25 assume !(~n <= 0); 295796#L26 call #t~ret0 := fact(~n - 1);< 295802#$Ultimate##0 ~n := #in~n; 295816#L25 assume ~n <= 0;#res := 1; 295815#factFINAL assume true; 295795#factEXIT >#66#return; 295801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295989#factFINAL assume true; 295972#factEXIT >#66#return; 295968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295958#factFINAL assume true; 295953#factEXIT >#66#return; 295950#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295942#factFINAL assume true; 295932#factEXIT >#66#return; 295937#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295929#factFINAL assume true; 295927#factEXIT >#68#return; 295922#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 295925#$Ultimate##0 ~n := #in~n; 297131#L25 assume !(~n <= 0); 295811#L26 call #t~ret0 := fact(~n - 1);< 295966#$Ultimate##0 ~n := #in~n; 296794#L25 assume !(~n <= 0); 295799#L26 call #t~ret0 := fact(~n - 1);< 295813#$Ultimate##0 ~n := #in~n; 295819#L25 assume !(~n <= 0); 295798#L26 call #t~ret0 := fact(~n - 1);< 295824#$Ultimate##0 ~n := #in~n; 295816#L25 assume ~n <= 0;#res := 1; 295815#factFINAL assume true; 295795#factEXIT >#66#return; 295801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295989#factFINAL assume true; 295972#factEXIT >#66#return; 295968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295958#factFINAL assume true; 295953#factEXIT >#66#return; 295955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295988#factFINAL assume true; 295969#factEXIT >#70#return; 295676#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 295888#$Ultimate##0 ~n := #in~n; 295912#L25 assume !(~n <= 0); 295804#L26 call #t~ret0 := fact(~n - 1);< 295850#$Ultimate##0 ~n := #in~n; 295829#L25 assume ~n <= 0;#res := 1; 295900#factFINAL assume true; 295891#factEXIT >#66#return; 295890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295886#factFINAL assume true; 295873#factEXIT >#72#return; 295882#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 295951#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 295948#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 295940#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 295930#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 295842#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 295846#$Ultimate##0 ~n := #in~n; 295845#L25 assume !(~n <= 0); 295830#L26 call #t~ret0 := fact(~n - 1);< 295839#$Ultimate##0 ~n := #in~n; 295837#L25 assume !(~n <= 0); 295800#L26 call #t~ret0 := fact(~n - 1);< 295827#$Ultimate##0 ~n := #in~n; 295826#L25 assume !(~n <= 0); 295797#L26 call #t~ret0 := fact(~n - 1);< 295824#$Ultimate##0 ~n := #in~n; 295817#L25 assume !(~n <= 0); 295796#L26 call #t~ret0 := fact(~n - 1);< 295802#$Ultimate##0 ~n := #in~n; 295816#L25 assume ~n <= 0;#res := 1; 295815#factFINAL assume true; 295795#factEXIT >#66#return; 295801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295989#factFINAL assume true; 295972#factEXIT >#66#return; 295968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295958#factFINAL assume true; 295953#factEXIT >#66#return; 295950#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295942#factFINAL assume true; 295932#factEXIT >#66#return; 295937#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295929#factFINAL assume true; 295927#factEXIT >#68#return; 295924#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 295925#$Ultimate##0 ~n := #in~n; 297131#L25 assume !(~n <= 0); 295811#L26 call #t~ret0 := fact(~n - 1);< 295966#$Ultimate##0 ~n := #in~n; 296794#L25 assume !(~n <= 0); 295799#L26 call #t~ret0 := fact(~n - 1);< 295813#$Ultimate##0 ~n := #in~n; 295819#L25 assume !(~n <= 0); 295798#L26 call #t~ret0 := fact(~n - 1);< 295824#$Ultimate##0 ~n := #in~n; 295817#L25 assume !(~n <= 0); 295796#L26 call #t~ret0 := fact(~n - 1);< 295802#$Ultimate##0 ~n := #in~n; 295816#L25 assume ~n <= 0;#res := 1; 295815#factFINAL assume true; 295795#factEXIT >#66#return; 295801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295989#factFINAL assume true; 295972#factEXIT >#66#return; 295968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295958#factFINAL assume true; 295953#factEXIT >#66#return; 295950#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295942#factFINAL assume true; 295932#factEXIT >#66#return; 295928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295926#factFINAL assume true; 295918#factEXIT >#70#return; 295675#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 295888#$Ultimate##0 ~n := #in~n; 295912#L25 assume ~n <= 0;#res := 1; 295697#factFINAL assume true; 295663#factEXIT >#72#return; 295691#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 297743#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 297742#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 297741#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 297732#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 296810#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 295569#$Ultimate##0 ~n := #in~n; 297967#L25 assume !(~n <= 0); 295593#L26 call #t~ret0 := fact(~n - 1);< 296965#$Ultimate##0 ~n := #in~n; 297845#L25 assume !(~n <= 0); 295574#L26 call #t~ret0 := fact(~n - 1);< 297842#$Ultimate##0 ~n := #in~n; 297845#L25 assume !(~n <= 0); 295574#L26 call #t~ret0 := fact(~n - 1);< 297842#$Ultimate##0 ~n := #in~n; 297845#L25 assume !(~n <= 0); 295574#L26 call #t~ret0 := fact(~n - 1);< 297842#$Ultimate##0 ~n := #in~n; 297845#L25 assume !(~n <= 0); 295574#L26 call #t~ret0 := fact(~n - 1);< 297842#$Ultimate##0 ~n := #in~n; 295650#L25 assume ~n <= 0;#res := 1; 297869#factFINAL assume true; 295572#factEXIT >#66#return; 295578#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 297838#factFINAL assume true; 297141#factEXIT >#66#return; 297144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 297166#factFINAL assume true; 297160#factEXIT >#66#return; 297162#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 297185#factFINAL assume true; 297181#factEXIT >#66#return; 296962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 295583#factFINAL assume true; 295594#factEXIT >#66#return; 296964#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 297934#factFINAL assume true; 297646#factEXIT >#74#return; 296817#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 297645#$Ultimate##0 ~n := #in~n; 297643#L25 assume !(~n <= 0); 297182#L26 call #t~ret0 := fact(~n - 1);< 297640#$Ultimate##0 ~n := #in~n; 297637#L25 assume !(~n <= 0); 295576#L26 call #t~ret0 := fact(~n - 1);< 297626#$Ultimate##0 ~n := #in~n; 297968#L25 assume !(~n <= 0); 295573#L26 call #t~ret0 := fact(~n - 1);< 297171#$Ultimate##0 ~n := #in~n; 295641#L25 assume !(~n <= 0); 295575#L26 call #t~ret0 := fact(~n - 1);< 295608#$Ultimate##0 ~n := #in~n; 295650#L25 assume ~n <= 0;#res := 1; 297869#factFINAL assume true; 295572#factEXIT >#66#return; 295578#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 297838#factFINAL assume true; 297141#factEXIT >#66#return; 297144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 297166#factFINAL assume true; 297160#factEXIT >#66#return; 297162#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 297185#factFINAL assume true; 297181#factEXIT >#66#return; 297184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 297804#factFINAL assume true; 296809#factEXIT >#76#return; 296788#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 297006#$Ultimate##0 ~n := #in~n; 297019#L25 assume !(~n <= 0); 297016#L26 call #t~ret0 := fact(~n - 1);< 297018#$Ultimate##0 ~n := #in~n; 297039#L25 assume ~n <= 0;#res := 1; 297021#factFINAL assume true; 297011#factEXIT >#66#return; 297010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 297005#factFINAL assume true; 296787#factEXIT >#78#return; 296783#L30-8 [2023-02-18 08:56:51,617 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:51,618 INFO L85 PathProgramCache]: Analyzing trace with hash 2135700754, now seen corresponding path program 50 times [2023-02-18 08:56:51,618 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:51,618 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1312244032] [2023-02-18 08:56:51,618 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:51,618 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:51,626 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:51,626 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [347179462] [2023-02-18 08:56:51,626 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:56:51,626 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:51,626 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:51,629 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-18 08:56:51,630 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-18 08:56:51,928 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:56:51,928 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:51,928 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:52,018 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:52,051 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:52,052 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:52,052 INFO L85 PathProgramCache]: Analyzing trace with hash 1770746004, now seen corresponding path program 51 times [2023-02-18 08:56:52,052 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:52,052 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [974153963] [2023-02-18 08:56:52,052 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:52,052 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:52,070 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:52,070 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [13406925] [2023-02-18 08:56:52,070 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:56:52,070 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:52,070 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:52,072 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-18 08:56:52,072 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-18 08:56:53,090 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 19 check-sat command(s) [2023-02-18 08:56:53,090 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:56:53,090 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:56:53,929 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:56:53,970 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:56:53,970 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:53,970 INFO L85 PathProgramCache]: Analyzing trace with hash -115946909, now seen corresponding path program 51 times [2023-02-18 08:56:53,970 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:53,970 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [766380936] [2023-02-18 08:56:53,971 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:53,971 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:53,983 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:53,983 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [434678431] [2023-02-18 08:56:53,983 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:56:53,983 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:53,983 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:53,985 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-18 08:56:53,986 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-18 08:56:54,310 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 10 check-sat command(s) [2023-02-18 08:56:54,310 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:54,313 INFO L263 TraceCheckSpWp]: Trace formula consists of 796 conjuncts, 17 conjunts are in the unsatisfiable core [2023-02-18 08:56:54,318 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:54,365 INFO L134 CoverageAnalysis]: Checked inductivity of 33810 backedges. 10957 proven. 577 refuted. 0 times theorem prover too weak. 22276 trivial. 0 not checked. [2023-02-18 08:56:54,365 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:54,470 INFO L134 CoverageAnalysis]: Checked inductivity of 33810 backedges. 1697 proven. 979 refuted. 0 times theorem prover too weak. 31134 trivial. 0 not checked. [2023-02-18 08:56:54,471 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:54,471 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [766380936] [2023-02-18 08:56:54,471 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:54,471 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [434678431] [2023-02-18 08:56:54,471 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [434678431] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:54,471 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:54,471 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 16] total 19 [2023-02-18 08:56:54,471 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [219529686] [2023-02-18 08:56:54,471 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:54,608 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:56:54,608 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:56:54,608 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:56:54,608 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:56:54,608 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-18 08:56:54,608 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:54,608 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:56:54,608 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:56:54,609 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration63_Loop [2023-02-18 08:56:54,609 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:56:54,609 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:56:54,611 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-18 08:56:54,612 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-18 08:56:54,615 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-18 08:56:54,615 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-18 08:56:54,615 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-18 08:56:54,616 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-18 08:56:54,616 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-18 08:56:54,620 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:56:54,620 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-18 08:56:54,620 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:54,620 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:54,624 INFO L229 MonitoredProcess]: Starting monitored process 210 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-18 08:56:54,625 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (210)] Waiting until timeout for monitored process [2023-02-18 08:56:54,626 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:56:54,626 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:56:54,645 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:56:54,645 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-18 08:56:54,648 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (210)] Ended with exit code 0 [2023-02-18 08:56:54,648 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:54,648 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:54,650 INFO L229 MonitoredProcess]: Starting monitored process 211 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-18 08:56:54,652 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (211)] Waiting until timeout for monitored process [2023-02-18 08:56:54,653 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:56:54,653 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:56:54,664 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (211)] Ended with exit code 0 [2023-02-18 08:56:54,664 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:54,665 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:54,666 INFO L229 MonitoredProcess]: Starting monitored process 212 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-18 08:56:54,667 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (212)] Waiting until timeout for monitored process [2023-02-18 08:56:54,670 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-18 08:56:54,670 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:56:54,685 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-18 08:56:54,688 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (212)] Forceful destruction successful, exit code 0 [2023-02-18 08:56:54,688 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:56:54,688 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:56:54,688 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:56:54,688 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:56:54,688 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-18 08:56:54,688 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:54,688 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:56:54,688 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:56:54,689 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration63_Loop [2023-02-18 08:56:54,689 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:56:54,689 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:56:54,691 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-18 08:56:54,691 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-18 08:56:54,692 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-18 08:56:54,692 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-18 08:56:54,693 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-18 08:56:54,696 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-18 08:56:54,696 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-18 08:56:54,710 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:56:54,711 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-18 08:56:54,711 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:54,711 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:54,715 INFO L229 MonitoredProcess]: Starting monitored process 213 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-18 08:56:54,718 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (213)] Waiting until timeout for monitored process [2023-02-18 08:56:54,719 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-18 08:56:54,725 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:56:54,725 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:56:54,725 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:56:54,725 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:56:54,725 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:56:54,725 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:56:54,725 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:56:54,737 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:56:54,739 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (213)] Forceful destruction successful, exit code 0 [2023-02-18 08:56:54,740 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:54,740 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:54,741 INFO L229 MonitoredProcess]: Starting monitored process 214 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-18 08:56:54,744 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (214)] Waiting until timeout for monitored process [2023-02-18 08:56:54,745 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-18 08:56:54,751 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:56:54,751 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:56:54,751 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:56:54,751 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:56:54,751 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:56:54,751 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:56:54,751 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:56:54,766 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:56:54,775 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (214)] Forceful destruction successful, exit code 0 [2023-02-18 08:56:54,775 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:54,775 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:54,777 INFO L229 MonitoredProcess]: Starting monitored process 215 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-18 08:56:54,779 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (215)] Waiting until timeout for monitored process [2023-02-18 08:56:54,781 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-18 08:56:54,787 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:56:54,787 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:56:54,787 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:56:54,787 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:56:54,787 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:56:54,787 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:56:54,787 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:56:54,802 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:56:54,805 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (215)] Forceful destruction successful, exit code 0 [2023-02-18 08:56:54,805 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:54,806 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:54,807 INFO L229 MonitoredProcess]: Starting monitored process 216 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-18 08:56:54,809 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (216)] Waiting until timeout for monitored process [2023-02-18 08:56:54,810 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-18 08:56:54,816 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:56:54,816 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:56:54,816 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:56:54,816 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:56:54,816 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:56:54,816 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:56:54,816 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:56:54,832 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:56:54,835 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (216)] Forceful destruction successful, exit code 0 [2023-02-18 08:56:54,835 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:54,835 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:54,837 INFO L229 MonitoredProcess]: Starting monitored process 217 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-18 08:56:54,839 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (217)] Waiting until timeout for monitored process [2023-02-18 08:56:54,840 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-18 08:56:54,846 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:56:54,846 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:56:54,846 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:56:54,846 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:56:54,847 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:56:54,852 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:56:54,852 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:56:54,867 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-18 08:56:54,871 INFO L443 ModelExtractionUtils]: Simplification made 3 calls to the SMT solver. [2023-02-18 08:56:54,871 INFO L444 ModelExtractionUtils]: 9 out of 12 variables were initially zero. Simplification set additionally 0 variables to zero. [2023-02-18 08:56:54,871 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:56:54,871 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:54,874 INFO L229 MonitoredProcess]: Starting monitored process 218 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-18 08:56:54,875 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (218)] Waiting until timeout for monitored process [2023-02-18 08:56:54,876 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-18 08:56:54,876 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-18 08:56:54,877 INFO L513 LassoAnalysis]: Proved termination. [2023-02-18 08:56:54,877 INFO L515 LassoAnalysis]: Termination argument consisting of: Ranking function f(ULTIMATE.start_main_~n~0#1) = -2*ULTIMATE.start_main_~n~0#1 + 7 Supporting invariants [] [2023-02-18 08:56:54,880 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (217)] Forceful destruction successful, exit code 0 [2023-02-18 08:56:54,880 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-18 08:56:54,887 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:55,129 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:56:55,140 INFO L263 TraceCheckSpWp]: Trace formula consists of 2136 conjuncts, 102 conjunts are in the unsatisfiable core [2023-02-18 08:56:55,144 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:55,279 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (218)] Forceful destruction successful, exit code 0 [2023-02-18 08:56:55,599 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:56:55,617 INFO L263 TraceCheckSpWp]: Trace formula consists of 2818 conjuncts, 152 conjunts are in the unsatisfiable core [2023-02-18 08:56:55,622 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:55,907 INFO L134 CoverageAnalysis]: Checked inductivity of 11663 backedges. 21 proven. 1343 refuted. 0 times theorem prover too weak. 10299 trivial. 0 not checked. [2023-02-18 08:56:55,908 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-18 08:56:55,908 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 2425 states and 3449 transitions. cyclomatic complexity: 1053 Second operand has 14 states, 13 states have (on average 3.923076923076923) internal successors, (51), 13 states have internal predecessors, (51), 6 states have call successors, (16), 2 states have call predecessors, (16), 7 states have return successors, (20), 9 states have call predecessors, (20), 6 states have call successors, (20) [2023-02-18 08:56:56,227 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 2425 states and 3449 transitions. cyclomatic complexity: 1053. Second operand has 14 states, 13 states have (on average 3.923076923076923) internal successors, (51), 13 states have internal predecessors, (51), 6 states have call successors, (16), 2 states have call predecessors, (16), 7 states have return successors, (20), 9 states have call predecessors, (20), 6 states have call successors, (20) Result 5018 states and 7189 transitions. Complement of second has 58 states. [2023-02-18 08:56:56,227 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-18 08:56:56,227 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 13 states have (on average 3.923076923076923) internal successors, (51), 13 states have internal predecessors, (51), 6 states have call successors, (16), 2 states have call predecessors, (16), 7 states have return successors, (20), 9 states have call predecessors, (20), 6 states have call successors, (20) [2023-02-18 08:56:56,228 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 141 transitions. [2023-02-18 08:56:56,228 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 13 states and 141 transitions. Stem has 321 letters. Loop has 423 letters. [2023-02-18 08:56:56,229 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:56:56,229 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 13 states and 141 transitions. Stem has 744 letters. Loop has 423 letters. [2023-02-18 08:56:56,230 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:56:56,230 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 13 states and 141 transitions. Stem has 321 letters. Loop has 846 letters. [2023-02-18 08:56:56,232 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:56:56,232 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 5018 states and 7189 transitions. [2023-02-18 08:56:56,254 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 200 [2023-02-18 08:56:56,272 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 5018 states to 3320 states and 4743 transitions. [2023-02-18 08:56:56,272 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 292 [2023-02-18 08:56:56,273 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 292 [2023-02-18 08:56:56,273 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3320 states and 4743 transitions. [2023-02-18 08:56:56,273 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:56,273 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3320 states and 4743 transitions. [2023-02-18 08:56:56,274 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3320 states and 4743 transitions. [2023-02-18 08:56:56,315 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3320 to 3260. [2023-02-18 08:56:56,318 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3260 states, 2053 states have (on average 1.065757428153921) internal successors, (2188), 2051 states have internal predecessors, (2188), 952 states have call successors, (973), 327 states have call predecessors, (973), 255 states have return successors, (1456), 881 states have call predecessors, (1456), 952 states have call successors, (1456) [2023-02-18 08:56:56,326 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3260 states to 3260 states and 4617 transitions. [2023-02-18 08:56:56,327 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3260 states and 4617 transitions. [2023-02-18 08:56:56,327 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:56,327 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2023-02-18 08:56:56,327 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=56, Invalid=286, Unknown=0, NotChecked=0, Total=342 [2023-02-18 08:56:56,327 INFO L87 Difference]: Start difference. First operand 3260 states and 4617 transitions. Second operand has 19 states, 16 states have (on average 4.5625) internal successors, (73), 19 states have internal predecessors, (73), 13 states have call successors, (35), 2 states have call predecessors, (35), 7 states have return successors, (36), 8 states have call predecessors, (36), 13 states have call successors, (36) [2023-02-18 08:56:56,734 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:56,734 INFO L93 Difference]: Finished difference Result 3700 states and 5353 transitions. [2023-02-18 08:56:56,734 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 3700 states and 5353 transitions. [2023-02-18 08:56:56,749 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 200 [2023-02-18 08:56:56,765 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 3700 states to 3466 states and 4975 transitions. [2023-02-18 08:56:56,765 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 308 [2023-02-18 08:56:56,765 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 308 [2023-02-18 08:56:56,765 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3466 states and 4975 transitions. [2023-02-18 08:56:56,766 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:56,766 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3466 states and 4975 transitions. [2023-02-18 08:56:56,767 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3466 states and 4975 transitions. [2023-02-18 08:56:56,799 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3466 to 3114. [2023-02-18 08:56:56,800 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3114 states, 1976 states have (on average 1.0637651821862348) internal successors, (2102), 1965 states have internal predecessors, (2102), 889 states have call successors, (907), 324 states have call predecessors, (907), 249 states have return successors, (1356), 824 states have call predecessors, (1356), 889 states have call successors, (1356) [2023-02-18 08:56:56,808 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3114 states to 3114 states and 4365 transitions. [2023-02-18 08:56:56,808 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3114 states and 4365 transitions. [2023-02-18 08:56:56,809 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2023-02-18 08:56:56,809 INFO L428 stractBuchiCegarLoop]: Abstraction has 3114 states and 4365 transitions. [2023-02-18 08:56:56,809 INFO L335 stractBuchiCegarLoop]: ======== Iteration 64 ============ [2023-02-18 08:56:56,809 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 3114 states and 4365 transitions. [2023-02-18 08:56:56,814 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 200 [2023-02-18 08:56:56,814 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:56,814 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:56,817 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [147, 147, 96, 96, 96, 96, 51, 17, 16, 11, 11, 11, 11, 11, 11, 11, 10, 10, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-18 08:56:56,817 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [75, 75, 57, 57, 57, 57, 18, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:56,817 INFO L748 eck$LassoCheckResult]: Stem: 316896#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 316844#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; 316845#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 316867#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; 316855#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 316856#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 317072#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 317068#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 317069#$Ultimate##0 ~n := #in~n; 317071#L25 assume ~n <= 0;#res := 1; 317070#factFINAL assume true; 317067#factEXIT >#68#return; 317062#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 317063#$Ultimate##0 ~n := #in~n; 317065#L25 assume ~n <= 0;#res := 1; 317064#factFINAL assume true; 317061#factEXIT >#70#return; 317057#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 317058#$Ultimate##0 ~n := #in~n; 317066#L25 assume ~n <= 0;#res := 1; 317059#factFINAL assume true; 317056#factEXIT >#72#return; 317054#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 317053#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 317052#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 317050#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 317047#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 317035#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 317036#$Ultimate##0 ~n := #in~n; 317046#L25 assume !(~n <= 0); 317044#L26 call #t~ret0 := fact(~n - 1);< 317045#$Ultimate##0 ~n := #in~n; 317060#L25 assume ~n <= 0;#res := 1; 317049#factFINAL assume true; 317043#factEXIT >#66#return; 317042#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317041#factFINAL assume true; 317034#factEXIT >#74#return; 317030#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 317031#$Ultimate##0 ~n := #in~n; 317040#L25 assume ~n <= 0;#res := 1; 317033#factFINAL assume true; 317029#factEXIT >#76#return; 317026#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 317027#$Ultimate##0 ~n := #in~n; 317055#L25 assume !(~n <= 0); 317038#L26 call #t~ret0 := fact(~n - 1);< 317039#$Ultimate##0 ~n := #in~n; 317051#L25 assume ~n <= 0;#res := 1; 317048#factFINAL assume true; 317037#factEXIT >#66#return; 317032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317028#factFINAL assume true; 317025#factEXIT >#78#return; 317024#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 317023#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 317017#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 317014#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 317006#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 316999#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 317000#$Ultimate##0 ~n := #in~n; 317016#L25 assume !(~n <= 0); 316992#L26 call #t~ret0 := fact(~n - 1);< 316996#$Ultimate##0 ~n := #in~n; 317007#L25 assume !(~n <= 0); 316991#L26 call #t~ret0 := fact(~n - 1);< 317013#$Ultimate##0 ~n := #in~n; 317018#L25 assume ~n <= 0;#res := 1; 317015#factFINAL assume true; 317012#factEXIT >#66#return; 317004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317003#factFINAL assume true; 316990#factEXIT >#66#return; 316995#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317081#factFINAL assume true; 316998#factEXIT >#74#return; 316984#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 316985#$Ultimate##0 ~n := #in~n; 316997#L25 assume ~n <= 0;#res := 1; 316989#factFINAL assume true; 316983#factEXIT >#76#return; 316978#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 316979#$Ultimate##0 ~n := #in~n; 317005#L25 assume !(~n <= 0); 316993#L26 call #t~ret0 := fact(~n - 1);< 316996#$Ultimate##0 ~n := #in~n; 317007#L25 assume !(~n <= 0); 316991#L26 call #t~ret0 := fact(~n - 1);< 317013#$Ultimate##0 ~n := #in~n; 317018#L25 assume ~n <= 0;#res := 1; 317015#factFINAL assume true; 317012#factEXIT >#66#return; 317004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317003#factFINAL assume true; 316990#factEXIT >#66#return; 316988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 316982#factFINAL assume true; 316977#factEXIT >#78#return; 316974#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 316972#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 316968#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 316962#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 316958#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 316953#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 316954#$Ultimate##0 ~n := #in~n; 316971#L25 assume !(~n <= 0); 316965#L26 call #t~ret0 := fact(~n - 1);< 316967#$Ultimate##0 ~n := #in~n; 316981#L25 assume !(~n <= 0); 316966#L26 call #t~ret0 := fact(~n - 1);< 316976#$Ultimate##0 ~n := #in~n; 316981#L25 assume !(~n <= 0); 316966#L26 call #t~ret0 := fact(~n - 1);< 316976#$Ultimate##0 ~n := #in~n; 317002#L25 assume ~n <= 0;#res := 1; 317001#factFINAL assume true; 316987#factEXIT >#66#return; 316986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 316980#factFINAL assume true; 316975#factEXIT >#66#return; 316973#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 316970#factFINAL assume true; 316964#factEXIT >#66#return; 316961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 316957#factFINAL assume true; 316952#factEXIT >#74#return; 316948#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 316949#$Ultimate##0 ~n := #in~n; 316956#L25 assume ~n <= 0;#res := 1; 316951#factFINAL assume true; 316947#factEXIT >#76#return; 316934#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 316944#$Ultimate##0 ~n := #in~n; 316943#L25 assume !(~n <= 0); 316925#L26 call #t~ret0 := fact(~n - 1);< 316930#$Ultimate##0 ~n := #in~n; 316936#L25 assume !(~n <= 0); 316926#L26 call #t~ret0 := fact(~n - 1);< 316941#$Ultimate##0 ~n := #in~n; 316936#L25 assume !(~n <= 0); 316926#L26 call #t~ret0 := fact(~n - 1);< 316941#$Ultimate##0 ~n := #in~n; 316969#L25 assume ~n <= 0;#res := 1; 316963#factFINAL assume true; 316960#factEXIT >#66#return; 316955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 316950#factFINAL assume true; 316946#factEXIT >#66#return; 316945#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 316942#factFINAL assume true; 316938#factEXIT >#66#return; 316928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318853#factFINAL assume true; 318849#factEXIT >#78#return; 318846#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 316847#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 318835#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 318833#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 318831#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 318829#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 318827#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 318825#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 318773#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 318779#$Ultimate##0 ~n := #in~n; 318822#L25 assume !(~n <= 0); 318800#L26 call #t~ret0 := fact(~n - 1);< 318807#$Ultimate##0 ~n := #in~n; 318861#L25 assume ~n <= 0;#res := 1; 319255#factFINAL assume true; 319179#factEXIT >#66#return; 319185#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 319477#factFINAL assume true; 319474#factEXIT >#68#return; 316889#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 316890#$Ultimate##0 ~n := #in~n; 319406#L25 assume ~n <= 0;#res := 1; 319405#factFINAL assume true; 319404#factEXIT >#70#return; 319256#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 319261#$Ultimate##0 ~n := #in~n; 319535#L25 assume !(~n <= 0); 318787#L26 call #t~ret0 := fact(~n - 1);< 319211#$Ultimate##0 ~n := #in~n; 318861#L25 assume ~n <= 0;#res := 1; 319255#factFINAL assume true; 319179#factEXIT >#66#return; 319183#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 319264#factFINAL assume true; 319260#factEXIT >#72#return; 319258#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 319257#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 319254#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 319253#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 319251#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 319219#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 319228#$Ultimate##0 ~n := #in~n; 319437#L25 assume !(~n <= 0); 318789#L26 call #t~ret0 := fact(~n - 1);< 319211#$Ultimate##0 ~n := #in~n; 318861#L25 assume ~n <= 0;#res := 1; 319255#factFINAL assume true; 319179#factEXIT >#66#return; 319184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 319265#factFINAL assume true; 319249#factEXIT >#68#return; 319085#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 319158#$Ultimate##0 ~n := #in~n; 319259#L25 assume !(~n <= 0); 318788#L26 call #t~ret0 := fact(~n - 1);< 319186#$Ultimate##0 ~n := #in~n; 318861#L25 assume ~n <= 0;#res := 1; 319255#factFINAL assume true; 319179#factEXIT >#66#return; 319178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 319159#factFINAL assume true; 319078#factEXIT >#70#return; 319106#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 319217#$Ultimate##0 ~n := #in~n; 319267#L25 assume ~n <= 0;#res := 1; 319229#factFINAL assume true; 319212#factEXIT >#72#return; 319216#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 319235#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 319234#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 319232#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 319231#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 319127#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 319150#$Ultimate##0 ~n := #in~n; 319290#L25 assume !(~n <= 0); 318797#L26 call #t~ret0 := fact(~n - 1);< 318807#$Ultimate##0 ~n := #in~n; 318969#L25 assume !(~n <= 0); 318796#L26 call #t~ret0 := fact(~n - 1);< 318817#$Ultimate##0 ~n := #in~n; 318969#L25 assume !(~n <= 0); 318796#L26 call #t~ret0 := fact(~n - 1);< 318817#$Ultimate##0 ~n := #in~n; 318821#L25 assume ~n <= 0;#res := 1; 318820#factFINAL assume true; 318815#factEXIT >#66#return; 318814#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318808#factFINAL assume true; 318783#factEXIT >#66#return; 318803#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 319283#factFINAL assume true; 319202#factEXIT >#66#return; 319200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 319173#factFINAL assume true; 319119#factEXIT >#74#return; 319128#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 319137#$Ultimate##0 ~n := #in~n; 319295#L25 assume !(~n <= 0); 318790#L26 call #t~ret0 := fact(~n - 1);< 318859#$Ultimate##0 ~n := #in~n; 318857#L25 assume !(~n <= 0); 318793#L26 call #t~ret0 := fact(~n - 1);< 318847#$Ultimate##0 ~n := #in~n; 318821#L25 assume ~n <= 0;#res := 1; 318820#factFINAL assume true; 318815#factEXIT >#66#return; 318814#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318808#factFINAL assume true; 318783#factEXIT >#66#return; 318804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 319176#factFINAL assume true; 319152#factEXIT >#76#return; 319087#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 319116#$Ultimate##0 ~n := #in~n; 319262#L25 assume !(~n <= 0); 319181#L26 call #t~ret0 := fact(~n - 1);< 319187#$Ultimate##0 ~n := #in~n; 318861#L25 assume ~n <= 0;#res := 1; 319255#factFINAL assume true; 319179#factEXIT >#66#return; 319178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 319159#factFINAL assume true; 319078#factEXIT >#78#return; 319107#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 319147#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 319145#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 319143#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 319141#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 318930#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 318845#$Ultimate##0 ~n := #in~n; 319071#L25 assume !(~n <= 0); 318965#L26 call #t~ret0 := fact(~n - 1);< 319029#$Ultimate##0 ~n := #in~n; 318993#L25 assume !(~n <= 0); 318962#L26 call #t~ret0 := fact(~n - 1);< 318990#$Ultimate##0 ~n := #in~n; 318993#L25 assume !(~n <= 0); 318962#L26 call #t~ret0 := fact(~n - 1);< 318990#$Ultimate##0 ~n := #in~n; 319041#L25 assume ~n <= 0;#res := 1; 319039#factFINAL assume true; 319035#factEXIT >#66#return; 319032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 319024#factFINAL assume true; 319016#factEXIT >#66#return; 319014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 319011#factFINAL assume true; 319003#factEXIT >#66#return; 319009#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 319299#factFINAL assume true; 319043#factEXIT >#74#return; 319047#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 319057#$Ultimate##0 ~n := #in~n; 319349#L25 assume !(~n <= 0); 319006#L26 call #t~ret0 := fact(~n - 1);< 319346#$Ultimate##0 ~n := #in~n; 319042#L25 assume ~n <= 0;#res := 1; 319350#factFINAL assume true; 319342#factEXIT >#66#return; 319341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 319340#factFINAL assume true; 319338#factEXIT >#76#return; 318926#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 318845#$Ultimate##0 ~n := #in~n; 319071#L25 assume !(~n <= 0); 318965#L26 call #t~ret0 := fact(~n - 1);< 319029#$Ultimate##0 ~n := #in~n; 318993#L25 assume !(~n <= 0); 318962#L26 call #t~ret0 := fact(~n - 1);< 318990#$Ultimate##0 ~n := #in~n; 319041#L25 assume ~n <= 0;#res := 1; 319039#factFINAL assume true; 319035#factEXIT >#66#return; 319032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 319024#factFINAL assume true; 319016#factEXIT >#66#return; 319019#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 319329#factFINAL assume true; 319058#factEXIT >#78#return; 319059#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 319369#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 319364#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 319365#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 316865#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 316866#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 319445#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 319446#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 318776#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 318779#$Ultimate##0 ~n := #in~n; 318822#L25 assume !(~n <= 0); 318800#L26 call #t~ret0 := fact(~n - 1);< 318807#$Ultimate##0 ~n := #in~n; 318969#L25 assume !(~n <= 0); 318796#L26 call #t~ret0 := fact(~n - 1);< 318817#$Ultimate##0 ~n := #in~n; 318821#L25 assume ~n <= 0;#res := 1; 318820#factFINAL assume true; 318815#factEXIT >#66#return; 318814#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318808#factFINAL assume true; 318783#factEXIT >#66#return; 318782#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318781#factFINAL assume true; 318771#factEXIT >#68#return; 318764#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 318767#$Ultimate##0 ~n := #in~n; 318780#L25 assume ~n <= 0;#res := 1; 318770#factFINAL assume true; 318762#factEXIT >#70#return; 317843#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 318377#$Ultimate##0 ~n := #in~n; 318375#L25 assume !(~n <= 0); 317831#L26 call #t~ret0 := fact(~n - 1);< 317838#$Ultimate##0 ~n := #in~n; 318112#L25 assume !(~n <= 0); 318106#L26 call #t~ret0 := fact(~n - 1);< 318109#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318761#factFINAL assume true; 318757#factEXIT >#72#return; 318759#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 319712#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 319711#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 319710#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 319709#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 318119#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 318385#$Ultimate##0 ~n := #in~n; 318731#L25 assume !(~n <= 0); 317458#L26 call #t~ret0 := fact(~n - 1);< 318114#$Ultimate##0 ~n := #in~n; 318112#L25 assume !(~n <= 0); 318106#L26 call #t~ret0 := fact(~n - 1);< 318109#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318732#factFINAL assume true; 318729#factEXIT >#68#return; 317812#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 318118#$Ultimate##0 ~n := #in~n; 318116#L25 assume !(~n <= 0); 317449#L26 call #t~ret0 := fact(~n - 1);< 317533#$Ultimate##0 ~n := #in~n; 317689#L25 assume ~n <= 0;#res := 1; 317463#factFINAL assume true; 317446#factEXIT >#66#return; 317461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318747#factFINAL assume true; 318741#factEXIT >#70#return; 317467#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 318357#$Ultimate##0 ~n := #in~n; 318727#L25 assume !(~n <= 0); 317455#L26 call #t~ret0 := fact(~n - 1);< 317462#$Ultimate##0 ~n := #in~n; 317689#L25 assume ~n <= 0;#res := 1; 317463#factFINAL assume true; 317446#factEXIT >#66#return; 317461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318747#factFINAL assume true; 318741#factEXIT >#72#return; 318745#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 319454#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 319452#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 319450#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 319448#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 318125#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 318385#$Ultimate##0 ~n := #in~n; 318731#L25 assume !(~n <= 0); 317458#L26 call #t~ret0 := fact(~n - 1);< 318114#$Ultimate##0 ~n := #in~n; 318112#L25 assume !(~n <= 0); 318106#L26 call #t~ret0 := fact(~n - 1);< 318109#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318732#factFINAL assume true; 318729#factEXIT >#68#return; 317809#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 318118#$Ultimate##0 ~n := #in~n; 318116#L25 assume !(~n <= 0); 317449#L26 call #t~ret0 := fact(~n - 1);< 317533#$Ultimate##0 ~n := #in~n; 318110#L25 assume !(~n <= 0); 317827#L26 call #t~ret0 := fact(~n - 1);< 318108#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317835#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318728#factFINAL assume true; 318723#factEXIT >#70#return; 318718#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 318721#$Ultimate##0 ~n := #in~n; 318726#L25 assume ~n <= 0;#res := 1; 318722#factFINAL assume true; 318715#factEXIT >#72#return; 316859#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 316860#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 316874#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 316884#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 316871#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 316872#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 317249#$Ultimate##0 ~n := #in~n; 317248#L25 assume !(~n <= 0); 317126#L26 call #t~ret0 := fact(~n - 1);< 317139#$Ultimate##0 ~n := #in~n; 317145#L25 assume !(~n <= 0); 317123#L26 call #t~ret0 := fact(~n - 1);< 317146#$Ultimate##0 ~n := #in~n; 317145#L25 assume !(~n <= 0); 317123#L26 call #t~ret0 := fact(~n - 1);< 317146#$Ultimate##0 ~n := #in~n; 317147#L25 assume ~n <= 0;#res := 1; 317241#factFINAL assume true; 317171#factEXIT >#66#return; 317175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317242#factFINAL assume true; 317176#factEXIT >#66#return; 317142#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317118#factFINAL assume true; 317129#factEXIT >#66#return; 317181#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318684#factFINAL assume true; 318685#factEXIT >#74#return; 317219#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 317217#$Ultimate##0 ~n := #in~n; 317220#L25 assume !(~n <= 0); 317128#L26 call #t~ret0 := fact(~n - 1);< 317192#$Ultimate##0 ~n := #in~n; 317189#L25 assume !(~n <= 0); 317172#L26 call #t~ret0 := fact(~n - 1);< 317187#$Ultimate##0 ~n := #in~n; 317250#L25 assume !(~n <= 0); 317174#L26 call #t~ret0 := fact(~n - 1);< 317186#$Ultimate##0 ~n := #in~n; 317147#L25 assume ~n <= 0;#res := 1; 317241#factFINAL assume true; 317171#factEXIT >#66#return; 317175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317242#factFINAL assume true; 317176#factEXIT >#66#return; 317142#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317118#factFINAL assume true; 317129#factEXIT >#66#return; 317181#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318684#factFINAL assume true; 318685#factEXIT >#76#return; 316887#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 316891#$Ultimate##0 ~n := #in~n; 316886#L25 assume !(~n <= 0); 316813#L26 call #t~ret0 := fact(~n - 1);< 317143#$Ultimate##0 ~n := #in~n; 317140#L25 assume ~n <= 0;#res := 1; 317141#factFINAL assume true; 316801#factEXIT >#66#return; 316815#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318987#factFINAL assume true; 318907#factEXIT >#78#return; 316904#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 316868#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 316869#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 316903#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 316863#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 316864#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 316902#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 316900#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 316901#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 317886#$Ultimate##0 ~n := #in~n; 317885#L25 assume !(~n <= 0); 317338#L26 call #t~ret0 := fact(~n - 1);< 317486#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317802#factFINAL assume true; 317515#factEXIT >#66#return; 317522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317696#factFINAL assume true; 317476#factEXIT >#66#return; 317340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317496#factFINAL assume true; 317318#factEXIT >#66#return; 317344#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318076#factFINAL assume true; 318042#factEXIT >#68#return; 318040#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 318041#$Ultimate##0 ~n := #in~n; 318081#L25 assume ~n <= 0;#res := 1; 318079#factFINAL assume true; 318038#factEXIT >#70#return; 317773#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 318037#$Ultimate##0 ~n := #in~n; 318371#L25 assume !(~n <= 0); 317334#L26 call #t~ret0 := fact(~n - 1);< 317771#$Ultimate##0 ~n := #in~n; 317770#L25 assume !(~n <= 0); 317332#L26 call #t~ret0 := fact(~n - 1);< 317699#$Ultimate##0 ~n := #in~n; 318476#L25 assume !(~n <= 0); 317336#L26 call #t~ret0 := fact(~n - 1);< 317654#$Ultimate##0 ~n := #in~n; 318113#L25 assume !(~n <= 0); 317339#L26 call #t~ret0 := fact(~n - 1);< 317347#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317802#factFINAL assume true; 317515#factEXIT >#66#return; 317522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317696#factFINAL assume true; 317476#factEXIT >#66#return; 317340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317496#factFINAL assume true; 317318#factEXIT >#66#return; 317346#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318080#factFINAL assume true; 318035#factEXIT >#72#return; 318036#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 318077#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 318075#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 318074#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 318073#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 317588#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 317596#$Ultimate##0 ~n := #in~n; 317900#L25 assume !(~n <= 0); 317331#L26 call #t~ret0 := fact(~n - 1);< 317771#$Ultimate##0 ~n := #in~n; 317770#L25 assume !(~n <= 0); 317332#L26 call #t~ret0 := fact(~n - 1);< 317699#$Ultimate##0 ~n := #in~n; 318476#L25 assume !(~n <= 0); 317336#L26 call #t~ret0 := fact(~n - 1);< 317654#$Ultimate##0 ~n := #in~n; 318113#L25 assume !(~n <= 0); 317339#L26 call #t~ret0 := fact(~n - 1);< 317347#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317802#factFINAL assume true; 317515#factEXIT >#66#return; 317522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317696#factFINAL assume true; 317476#factEXIT >#66#return; 317340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317496#factFINAL assume true; 317318#factEXIT >#66#return; 317345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317599#factFINAL assume true; 317581#factEXIT >#68#return; 317425#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 317694#$Ultimate##0 ~n := #in~n; 317625#L25 assume !(~n <= 0); 317451#L26 call #t~ret0 := fact(~n - 1);< 317462#$Ultimate##0 ~n := #in~n; 317689#L25 assume ~n <= 0;#res := 1; 317463#factFINAL assume true; 317446#factEXIT >#66#return; 317459#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317893#factFINAL assume true; 317604#factEXIT >#70#return; 317565#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 317764#$Ultimate##0 ~n := #in~n; 317873#L25 assume !(~n <= 0); 317327#L26 call #t~ret0 := fact(~n - 1);< 317654#$Ultimate##0 ~n := #in~n; 318113#L25 assume !(~n <= 0); 317339#L26 call #t~ret0 := fact(~n - 1);< 317347#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317802#factFINAL assume true; 317515#factEXIT >#66#return; 317522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317696#factFINAL assume true; 317476#factEXIT >#66#return; 317481#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317763#factFINAL assume true; 317612#factEXIT >#72#return; 317576#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 318369#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 318368#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 318367#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 318365#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 317587#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 317596#$Ultimate##0 ~n := #in~n; 317900#L25 assume !(~n <= 0); 317331#L26 call #t~ret0 := fact(~n - 1);< 317771#$Ultimate##0 ~n := #in~n; 317770#L25 assume !(~n <= 0); 317332#L26 call #t~ret0 := fact(~n - 1);< 317699#$Ultimate##0 ~n := #in~n; 318476#L25 assume !(~n <= 0); 317336#L26 call #t~ret0 := fact(~n - 1);< 317654#$Ultimate##0 ~n := #in~n; 318113#L25 assume !(~n <= 0); 317339#L26 call #t~ret0 := fact(~n - 1);< 317347#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317802#factFINAL assume true; 317515#factEXIT >#66#return; 317522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317696#factFINAL assume true; 317476#factEXIT >#66#return; 317340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317496#factFINAL assume true; 317318#factEXIT >#66#return; 317345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317599#factFINAL assume true; 317581#factEXIT >#68#return; 317436#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 317440#$Ultimate##0 ~n := #in~n; 317626#L25 assume !(~n <= 0); 317323#L26 call #t~ret0 := fact(~n - 1);< 317486#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317834#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317778#factFINAL assume true; 317769#factEXIT >#70#return; 317560#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 317779#$Ultimate##0 ~n := #in~n; 318064#L25 assume !(~n <= 0); 317320#L26 call #t~ret0 := fact(~n - 1);< 317347#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317802#factFINAL assume true; 317515#factEXIT >#66#return; 317522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317696#factFINAL assume true; 317476#factEXIT >#66#return; 317481#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317763#factFINAL assume true; 317612#factEXIT >#72#return; 317567#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 318649#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 318648#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 318642#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 318640#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 317590#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 317596#$Ultimate##0 ~n := #in~n; 317900#L25 assume !(~n <= 0); 317331#L26 call #t~ret0 := fact(~n - 1);< 317771#$Ultimate##0 ~n := #in~n; 317770#L25 assume !(~n <= 0); 317332#L26 call #t~ret0 := fact(~n - 1);< 317699#$Ultimate##0 ~n := #in~n; 318476#L25 assume !(~n <= 0); 317336#L26 call #t~ret0 := fact(~n - 1);< 317654#$Ultimate##0 ~n := #in~n; 318113#L25 assume !(~n <= 0); 317339#L26 call #t~ret0 := fact(~n - 1);< 317347#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317802#factFINAL assume true; 317515#factEXIT >#66#return; 317522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317696#factFINAL assume true; 317476#factEXIT >#66#return; 317340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317496#factFINAL assume true; 317318#factEXIT >#66#return; 317345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317599#factFINAL assume true; 317581#factEXIT >#68#return; 317435#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 317440#$Ultimate##0 ~n := #in~n; 317626#L25 assume !(~n <= 0); 317323#L26 call #t~ret0 := fact(~n - 1);< 317486#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317802#factFINAL assume true; 317515#factEXIT >#66#return; 317523#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318423#factFINAL assume true; 317622#factEXIT >#70#return; 317416#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 317440#$Ultimate##0 ~n := #in~n; 317626#L25 assume !(~n <= 0); 317323#L26 call #t~ret0 := fact(~n - 1);< 317486#$Ultimate##0 ~n := #in~n; 317689#L25 assume ~n <= 0;#res := 1; 317463#factFINAL assume true; 317446#factEXIT >#66#return; 317459#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317893#factFINAL assume true; 317604#factEXIT >#72#return; 317606#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 318147#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 318144#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 318142#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 318140#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 317593#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 317596#$Ultimate##0 ~n := #in~n; 317900#L25 assume !(~n <= 0); 317331#L26 call #t~ret0 := fact(~n - 1);< 317771#$Ultimate##0 ~n := #in~n; 317770#L25 assume !(~n <= 0); 317332#L26 call #t~ret0 := fact(~n - 1);< 317699#$Ultimate##0 ~n := #in~n; 318476#L25 assume !(~n <= 0); 317336#L26 call #t~ret0 := fact(~n - 1);< 317654#$Ultimate##0 ~n := #in~n; 318113#L25 assume !(~n <= 0); 317339#L26 call #t~ret0 := fact(~n - 1);< 317347#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317802#factFINAL assume true; 317515#factEXIT >#66#return; 317522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317696#factFINAL assume true; 317476#factEXIT >#66#return; 317340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317496#factFINAL assume true; 317318#factEXIT >#66#return; 317345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317599#factFINAL assume true; 317581#factEXIT >#68#return; 317432#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 317440#$Ultimate##0 ~n := #in~n; 317626#L25 assume !(~n <= 0); 317323#L26 call #t~ret0 := fact(~n - 1);< 317486#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317802#factFINAL assume true; 317515#factEXIT >#66#return; 317522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317696#factFINAL assume true; 317476#factEXIT >#66#return; 317481#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317763#factFINAL assume true; 317612#factEXIT >#70#return; 317415#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 317440#$Ultimate##0 ~n := #in~n; 317626#L25 assume ~n <= 0;#res := 1; 317623#factFINAL assume true; 317414#factEXIT >#72#return; 317437#L30-3 [2023-02-18 08:56:56,818 INFO L750 eck$LassoCheckResult]: Loop: 317437#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 317444#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 317441#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 317413#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 317263#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 317155#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 317159#$Ultimate##0 ~n := #in~n; 317157#L25 assume !(~n <= 0); 317133#L26 call #t~ret0 := fact(~n - 1);< 317136#$Ultimate##0 ~n := #in~n; 317132#L25 assume !(~n <= 0); 317130#L26 call #t~ret0 := fact(~n - 1);< 317134#$Ultimate##0 ~n := #in~n; 317135#L25 assume !(~n <= 0); 317127#L26 call #t~ret0 := fact(~n - 1);< 317131#$Ultimate##0 ~n := #in~n; 317158#L25 assume !(~n <= 0); 317124#L26 call #t~ret0 := fact(~n - 1);< 317150#$Ultimate##0 ~n := #in~n; 317145#L25 assume !(~n <= 0); 317123#L26 call #t~ret0 := fact(~n - 1);< 317146#$Ultimate##0 ~n := #in~n; 317147#L25 assume ~n <= 0;#res := 1; 317241#factFINAL assume true; 317171#factEXIT >#66#return; 317175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317242#factFINAL assume true; 317176#factEXIT >#66#return; 317142#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317118#factFINAL assume true; 317129#factEXIT >#66#return; 317184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317381#factFINAL assume true; 317163#factEXIT >#66#return; 317170#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317201#factFINAL assume true; 317202#factEXIT >#66#return; 317256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317252#factFINAL assume true; 317231#factEXIT >#74#return; 317198#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 317224#$Ultimate##0 ~n := #in~n; 317470#L25 assume !(~n <= 0); 317164#L26 call #t~ret0 := fact(~n - 1);< 317193#$Ultimate##0 ~n := #in~n; 317190#L25 assume !(~n <= 0); 317125#L26 call #t~ret0 := fact(~n - 1);< 317188#$Ultimate##0 ~n := #in~n; 317251#L25 assume !(~n <= 0); 317173#L26 call #t~ret0 := fact(~n - 1);< 317187#$Ultimate##0 ~n := #in~n; 317250#L25 assume !(~n <= 0); 317174#L26 call #t~ret0 := fact(~n - 1);< 317186#$Ultimate##0 ~n := #in~n; 317147#L25 assume ~n <= 0;#res := 1; 317241#factFINAL assume true; 317171#factEXIT >#66#return; 317175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317242#factFINAL assume true; 317176#factEXIT >#66#return; 317142#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317118#factFINAL assume true; 317129#factEXIT >#66#return; 317184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317381#factFINAL assume true; 317163#factEXIT >#66#return; 317169#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317473#factFINAL assume true; 317315#factEXIT >#76#return; 317237#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 318316#$Ultimate##0 ~n := #in~n; 318320#L25 assume !(~n <= 0); 316804#L26 call #t~ret0 := fact(~n - 1);< 317143#$Ultimate##0 ~n := #in~n; 317140#L25 assume ~n <= 0;#res := 1; 317141#factFINAL assume true; 316801#factEXIT >#66#return; 316814#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318318#factFINAL assume true; 318315#factEXIT >#78#return; 318301#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 318298#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 318275#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 318274#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 318273#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 318265#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 318263#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 318260#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 316833#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 316834#$Ultimate##0 ~n := #in~n; 318078#L25 assume !(~n <= 0); 317328#L26 call #t~ret0 := fact(~n - 1);< 317771#$Ultimate##0 ~n := #in~n; 317770#L25 assume !(~n <= 0); 317332#L26 call #t~ret0 := fact(~n - 1);< 317699#$Ultimate##0 ~n := #in~n; 318476#L25 assume !(~n <= 0); 317336#L26 call #t~ret0 := fact(~n - 1);< 317654#$Ultimate##0 ~n := #in~n; 318113#L25 assume !(~n <= 0); 317339#L26 call #t~ret0 := fact(~n - 1);< 317347#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317802#factFINAL assume true; 317515#factEXIT >#66#return; 317522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317696#factFINAL assume true; 317476#factEXIT >#66#return; 317340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317496#factFINAL assume true; 317318#factEXIT >#66#return; 317344#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318076#factFINAL assume true; 318042#factEXIT >#68#return; 318040#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 318041#$Ultimate##0 ~n := #in~n; 318081#L25 assume ~n <= 0;#res := 1; 318079#factFINAL assume true; 318038#factEXIT >#70#return; 317773#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 318037#$Ultimate##0 ~n := #in~n; 318371#L25 assume !(~n <= 0); 317334#L26 call #t~ret0 := fact(~n - 1);< 317771#$Ultimate##0 ~n := #in~n; 317770#L25 assume !(~n <= 0); 317332#L26 call #t~ret0 := fact(~n - 1);< 317699#$Ultimate##0 ~n := #in~n; 318476#L25 assume !(~n <= 0); 317336#L26 call #t~ret0 := fact(~n - 1);< 317654#$Ultimate##0 ~n := #in~n; 318113#L25 assume !(~n <= 0); 317339#L26 call #t~ret0 := fact(~n - 1);< 317347#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317802#factFINAL assume true; 317515#factEXIT >#66#return; 317522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317696#factFINAL assume true; 317476#factEXIT >#66#return; 317340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317496#factFINAL assume true; 317318#factEXIT >#66#return; 317346#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318080#factFINAL assume true; 318035#factEXIT >#72#return; 318036#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 318077#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 318075#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 318074#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 318073#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 317588#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 317596#$Ultimate##0 ~n := #in~n; 317900#L25 assume !(~n <= 0); 317331#L26 call #t~ret0 := fact(~n - 1);< 317771#$Ultimate##0 ~n := #in~n; 317770#L25 assume !(~n <= 0); 317332#L26 call #t~ret0 := fact(~n - 1);< 317699#$Ultimate##0 ~n := #in~n; 318476#L25 assume !(~n <= 0); 317336#L26 call #t~ret0 := fact(~n - 1);< 317654#$Ultimate##0 ~n := #in~n; 318113#L25 assume !(~n <= 0); 317339#L26 call #t~ret0 := fact(~n - 1);< 317347#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317802#factFINAL assume true; 317515#factEXIT >#66#return; 317522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317696#factFINAL assume true; 317476#factEXIT >#66#return; 317340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317496#factFINAL assume true; 317318#factEXIT >#66#return; 317345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317599#factFINAL assume true; 317581#factEXIT >#68#return; 317425#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 317694#$Ultimate##0 ~n := #in~n; 317625#L25 assume !(~n <= 0); 317451#L26 call #t~ret0 := fact(~n - 1);< 317462#$Ultimate##0 ~n := #in~n; 317689#L25 assume ~n <= 0;#res := 1; 317463#factFINAL assume true; 317446#factEXIT >#66#return; 317459#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317893#factFINAL assume true; 317604#factEXIT >#70#return; 317565#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 317764#$Ultimate##0 ~n := #in~n; 317873#L25 assume !(~n <= 0); 317327#L26 call #t~ret0 := fact(~n - 1);< 317654#$Ultimate##0 ~n := #in~n; 318113#L25 assume !(~n <= 0); 317339#L26 call #t~ret0 := fact(~n - 1);< 317347#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317802#factFINAL assume true; 317515#factEXIT >#66#return; 317523#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318423#factFINAL assume true; 317622#factEXIT >#72#return; 317576#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 318369#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 318368#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 318367#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 318365#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 317587#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 317596#$Ultimate##0 ~n := #in~n; 317900#L25 assume !(~n <= 0); 317331#L26 call #t~ret0 := fact(~n - 1);< 317771#$Ultimate##0 ~n := #in~n; 317770#L25 assume !(~n <= 0); 317332#L26 call #t~ret0 := fact(~n - 1);< 317699#$Ultimate##0 ~n := #in~n; 318476#L25 assume !(~n <= 0); 317336#L26 call #t~ret0 := fact(~n - 1);< 317654#$Ultimate##0 ~n := #in~n; 318113#L25 assume !(~n <= 0); 317339#L26 call #t~ret0 := fact(~n - 1);< 317347#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317802#factFINAL assume true; 317515#factEXIT >#66#return; 317522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317696#factFINAL assume true; 317476#factEXIT >#66#return; 317340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317496#factFINAL assume true; 317318#factEXIT >#66#return; 317345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317599#factFINAL assume true; 317581#factEXIT >#68#return; 317436#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 317440#$Ultimate##0 ~n := #in~n; 317626#L25 assume !(~n <= 0); 317323#L26 call #t~ret0 := fact(~n - 1);< 317486#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317834#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317778#factFINAL assume true; 317769#factEXIT >#70#return; 317560#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 317779#$Ultimate##0 ~n := #in~n; 318064#L25 assume !(~n <= 0); 317320#L26 call #t~ret0 := fact(~n - 1);< 317347#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317802#factFINAL assume true; 317515#factEXIT >#66#return; 317523#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318423#factFINAL assume true; 317622#factEXIT >#72#return; 317567#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 318649#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 318648#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 318642#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 318640#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 317590#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 317596#$Ultimate##0 ~n := #in~n; 317900#L25 assume !(~n <= 0); 317331#L26 call #t~ret0 := fact(~n - 1);< 317771#$Ultimate##0 ~n := #in~n; 317770#L25 assume !(~n <= 0); 317332#L26 call #t~ret0 := fact(~n - 1);< 317699#$Ultimate##0 ~n := #in~n; 318476#L25 assume !(~n <= 0); 317336#L26 call #t~ret0 := fact(~n - 1);< 317654#$Ultimate##0 ~n := #in~n; 318113#L25 assume !(~n <= 0); 317339#L26 call #t~ret0 := fact(~n - 1);< 317347#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317802#factFINAL assume true; 317515#factEXIT >#66#return; 317522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317696#factFINAL assume true; 317476#factEXIT >#66#return; 317340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317496#factFINAL assume true; 317318#factEXIT >#66#return; 317345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317599#factFINAL assume true; 317581#factEXIT >#68#return; 317435#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 317440#$Ultimate##0 ~n := #in~n; 317626#L25 assume !(~n <= 0); 317323#L26 call #t~ret0 := fact(~n - 1);< 317486#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317802#factFINAL assume true; 317515#factEXIT >#66#return; 317523#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 318423#factFINAL assume true; 317622#factEXIT >#70#return; 317416#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 317440#$Ultimate##0 ~n := #in~n; 317626#L25 assume !(~n <= 0); 317323#L26 call #t~ret0 := fact(~n - 1);< 317486#$Ultimate##0 ~n := #in~n; 317689#L25 assume ~n <= 0;#res := 1; 317463#factFINAL assume true; 317446#factEXIT >#66#return; 317459#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317893#factFINAL assume true; 317604#factEXIT >#72#return; 317606#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 318147#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 318144#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 318142#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 318140#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 317593#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 317596#$Ultimate##0 ~n := #in~n; 317900#L25 assume !(~n <= 0); 317331#L26 call #t~ret0 := fact(~n - 1);< 317771#$Ultimate##0 ~n := #in~n; 317770#L25 assume !(~n <= 0); 317332#L26 call #t~ret0 := fact(~n - 1);< 317699#$Ultimate##0 ~n := #in~n; 318476#L25 assume !(~n <= 0); 317336#L26 call #t~ret0 := fact(~n - 1);< 317654#$Ultimate##0 ~n := #in~n; 318113#L25 assume !(~n <= 0); 317339#L26 call #t~ret0 := fact(~n - 1);< 317347#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317802#factFINAL assume true; 317515#factEXIT >#66#return; 317522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317696#factFINAL assume true; 317476#factEXIT >#66#return; 317340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317496#factFINAL assume true; 317318#factEXIT >#66#return; 317345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317599#factFINAL assume true; 317581#factEXIT >#68#return; 317432#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 317440#$Ultimate##0 ~n := #in~n; 317626#L25 assume !(~n <= 0); 317323#L26 call #t~ret0 := fact(~n - 1);< 317486#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318111#L25 assume !(~n <= 0); 317319#L26 call #t~ret0 := fact(~n - 1);< 318107#$Ultimate##0 ~n := #in~n; 318117#L25 assume ~n <= 0;#res := 1; 318115#factFINAL assume true; 318105#factEXIT >#66#return; 318103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317842#factFINAL assume true; 317825#factEXIT >#66#return; 317832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317802#factFINAL assume true; 317515#factEXIT >#66#return; 317522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317696#factFINAL assume true; 317476#factEXIT >#66#return; 317481#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 317763#factFINAL assume true; 317612#factEXIT >#70#return; 317415#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 317440#$Ultimate##0 ~n := #in~n; 317626#L25 assume ~n <= 0;#res := 1; 317623#factFINAL assume true; 317414#factEXIT >#72#return; 317437#L30-3 [2023-02-18 08:56:56,820 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:56,821 INFO L85 PathProgramCache]: Analyzing trace with hash 130201677, now seen corresponding path program 52 times [2023-02-18 08:56:56,821 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:56,821 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [980841191] [2023-02-18 08:56:56,821 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:56,821 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:56,835 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:56,835 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [541623810] [2023-02-18 08:56:56,835 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:56:56,835 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:56,835 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:56,837 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-18 08:56:56,838 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-18 08:56:57,238 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:56:57,238 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:57,244 INFO L263 TraceCheckSpWp]: Trace formula consists of 2047 conjuncts, 12 conjunts are in the unsatisfiable core [2023-02-18 08:56:57,249 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:57,280 INFO L134 CoverageAnalysis]: Checked inductivity of 52829 backedges. 20349 proven. 17 refuted. 0 times theorem prover too weak. 32463 trivial. 0 not checked. [2023-02-18 08:56:57,280 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:57,341 INFO L134 CoverageAnalysis]: Checked inductivity of 52829 backedges. 855 proven. 1464 refuted. 0 times theorem prover too weak. 50510 trivial. 0 not checked. [2023-02-18 08:56:57,342 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:57,342 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [980841191] [2023-02-18 08:56:57,342 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:57,342 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [541623810] [2023-02-18 08:56:57,342 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [541623810] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:57,342 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:57,342 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 12] total 13 [2023-02-18 08:56:57,342 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1742421276] [2023-02-18 08:56:57,342 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:57,343 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:56:57,343 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:57,343 INFO L85 PathProgramCache]: Analyzing trace with hash 1455478822, now seen corresponding path program 52 times [2023-02-18 08:56:57,343 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:57,343 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [667718315] [2023-02-18 08:56:57,343 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:57,343 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:57,353 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:57,353 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [516874671] [2023-02-18 08:56:57,353 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:56:57,353 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:57,353 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:57,355 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-18 08:56:57,355 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-18 08:56:57,700 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:56:57,700 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:57,703 INFO L263 TraceCheckSpWp]: Trace formula consists of 998 conjuncts, 27 conjunts are in the unsatisfiable core [2023-02-18 08:56:57,706 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:57,831 INFO L134 CoverageAnalysis]: Checked inductivity of 14393 backedges. 7950 proven. 511 refuted. 0 times theorem prover too weak. 5932 trivial. 0 not checked. [2023-02-18 08:56:57,831 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:58,040 INFO L134 CoverageAnalysis]: Checked inductivity of 14393 backedges. 699 proven. 1812 refuted. 0 times theorem prover too weak. 11882 trivial. 0 not checked. [2023-02-18 08:56:58,040 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:58,040 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [667718315] [2023-02-18 08:56:58,040 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:58,040 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [516874671] [2023-02-18 08:56:58,041 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [516874671] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:58,041 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:58,041 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 24] total 30 [2023-02-18 08:56:58,041 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [643304759] [2023-02-18 08:56:58,041 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:58,041 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:56:58,041 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:56:58,041 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 30 interpolants. [2023-02-18 08:56:58,042 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=114, Invalid=756, Unknown=0, NotChecked=0, Total=870 [2023-02-18 08:56:58,042 INFO L87 Difference]: Start difference. First operand 3114 states and 4365 transitions. cyclomatic complexity: 1284 Second operand has 30 states, 26 states have (on average 3.0384615384615383) internal successors, (79), 30 states have internal predecessors, (79), 18 states have call successors, (34), 2 states have call predecessors, (34), 10 states have return successors, (38), 16 states have call predecessors, (38), 18 states have call successors, (38) [2023-02-18 08:56:59,053 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:56:59,053 INFO L93 Difference]: Finished difference Result 3841 states and 5317 transitions. [2023-02-18 08:56:59,053 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 3841 states and 5317 transitions. [2023-02-18 08:56:59,069 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 248 [2023-02-18 08:56:59,083 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 3841 states to 3468 states and 4811 transitions. [2023-02-18 08:56:59,083 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 366 [2023-02-18 08:56:59,083 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 366 [2023-02-18 08:56:59,083 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3468 states and 4811 transitions. [2023-02-18 08:56:59,083 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:56:59,083 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3468 states and 4811 transitions. [2023-02-18 08:56:59,084 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3468 states and 4811 transitions. [2023-02-18 08:56:59,113 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3468 to 2950. [2023-02-18 08:56:59,115 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2950 states, 1874 states have (on average 1.0618996798292422) internal successors, (1990), 1864 states have internal predecessors, (1990), 840 states have call successors, (856), 300 states have call predecessors, (856), 236 states have return successors, (1293), 785 states have call predecessors, (1293), 840 states have call successors, (1293) [2023-02-18 08:56:59,122 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2950 states to 2950 states and 4139 transitions. [2023-02-18 08:56:59,122 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2950 states and 4139 transitions. [2023-02-18 08:56:59,122 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 29 states. [2023-02-18 08:56:59,123 INFO L428 stractBuchiCegarLoop]: Abstraction has 2950 states and 4139 transitions. [2023-02-18 08:56:59,124 INFO L335 stractBuchiCegarLoop]: ======== Iteration 65 ============ [2023-02-18 08:56:59,124 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2950 states and 4139 transitions. [2023-02-18 08:56:59,129 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 200 [2023-02-18 08:56:59,129 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:56:59,129 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:56:59,132 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [149, 149, 98, 98, 98, 98, 51, 17, 16, 11, 11, 11, 11, 11, 11, 11, 10, 10, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-18 08:56:59,132 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [79, 79, 61, 61, 61, 61, 18, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:56:59,133 INFO L748 eck$LassoCheckResult]: Stem: 332260#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 332209#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; 332210#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 332232#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; 332261#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 334526#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 334525#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 332203#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 332204#$Ultimate##0 ~n := #in~n; 334692#L25 assume ~n <= 0;#res := 1; 334691#factFINAL assume true; 334688#factEXIT >#68#return; 332254#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 332255#$Ultimate##0 ~n := #in~n; 334690#L25 assume ~n <= 0;#res := 1; 334687#factFINAL assume true; 334685#factEXIT >#70#return; 332199#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 332200#$Ultimate##0 ~n := #in~n; 334754#L25 assume ~n <= 0;#res := 1; 334753#factFINAL assume true; 334739#factEXIT >#72#return; 334703#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 334699#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 334698#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 334697#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 334696#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 334613#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 334614#$Ultimate##0 ~n := #in~n; 334621#L25 assume !(~n <= 0); 334619#L26 call #t~ret0 := fact(~n - 1);< 334620#$Ultimate##0 ~n := #in~n; 334624#L25 assume ~n <= 0;#res := 1; 334622#factFINAL assume true; 334618#factEXIT >#66#return; 334617#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334616#factFINAL assume true; 334612#factEXIT >#74#return; 334610#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 334611#$Ultimate##0 ~n := #in~n; 334626#L25 assume ~n <= 0;#res := 1; 334625#factFINAL assume true; 334609#factEXIT >#76#return; 334606#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 334607#$Ultimate##0 ~n := #in~n; 334632#L25 assume !(~n <= 0); 334630#L26 call #t~ret0 := fact(~n - 1);< 334631#$Ultimate##0 ~n := #in~n; 334635#L25 assume ~n <= 0;#res := 1; 334633#factFINAL assume true; 334629#factEXIT >#66#return; 334628#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334627#factFINAL assume true; 334605#factEXIT >#78#return; 334598#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 334595#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 334594#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 334591#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 334590#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 334588#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 334589#$Ultimate##0 ~n := #in~n; 334608#L25 assume !(~n <= 0); 334600#L26 call #t~ret0 := fact(~n - 1);< 334604#$Ultimate##0 ~n := #in~n; 334664#L25 assume !(~n <= 0); 334602#L26 call #t~ret0 := fact(~n - 1);< 334663#$Ultimate##0 ~n := #in~n; 334669#L25 assume ~n <= 0;#res := 1; 334667#factFINAL assume true; 334666#factEXIT >#66#return; 334665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334662#factFINAL assume true; 334657#factEXIT >#66#return; 334596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334597#factFINAL assume true; 334587#factEXIT >#74#return; 334585#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 334586#$Ultimate##0 ~n := #in~n; 334650#L25 assume ~n <= 0;#res := 1; 334647#factFINAL assume true; 334584#factEXIT >#76#return; 334582#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 334583#$Ultimate##0 ~n := #in~n; 334660#L25 assume !(~n <= 0); 334601#L26 call #t~ret0 := fact(~n - 1);< 334604#$Ultimate##0 ~n := #in~n; 334664#L25 assume !(~n <= 0); 334602#L26 call #t~ret0 := fact(~n - 1);< 334663#$Ultimate##0 ~n := #in~n; 334669#L25 assume ~n <= 0;#res := 1; 334667#factFINAL assume true; 334666#factEXIT >#66#return; 334665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334662#factFINAL assume true; 334657#factEXIT >#66#return; 334656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334654#factFINAL assume true; 334581#factEXIT >#78#return; 334579#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 334574#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 334572#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 334570#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 334568#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 334566#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 334567#$Ultimate##0 ~n := #in~n; 334580#L25 assume !(~n <= 0); 334577#L26 call #t~ret0 := fact(~n - 1);< 334578#$Ultimate##0 ~n := #in~n; 334673#L25 assume !(~n <= 0); 334576#L26 call #t~ret0 := fact(~n - 1);< 334672#$Ultimate##0 ~n := #in~n; 334673#L25 assume !(~n <= 0); 334576#L26 call #t~ret0 := fact(~n - 1);< 334672#$Ultimate##0 ~n := #in~n; 334682#L25 assume ~n <= 0;#res := 1; 334679#factFINAL assume true; 334678#factEXIT >#66#return; 334676#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334674#factFINAL assume true; 334671#factEXIT >#66#return; 334670#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334668#factFINAL assume true; 334575#factEXIT >#66#return; 334573#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334571#factFINAL assume true; 334565#factEXIT >#74#return; 334563#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 334564#$Ultimate##0 ~n := #in~n; 334677#L25 assume ~n <= 0;#res := 1; 334675#factFINAL assume true; 334562#factEXIT >#76#return; 334560#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 334561#$Ultimate##0 ~n := #in~n; 334680#L25 assume !(~n <= 0); 334640#L26 call #t~ret0 := fact(~n - 1);< 334643#$Ultimate##0 ~n := #in~n; 334651#L25 assume !(~n <= 0); 334638#L26 call #t~ret0 := fact(~n - 1);< 334649#$Ultimate##0 ~n := #in~n; 334651#L25 assume !(~n <= 0); 334638#L26 call #t~ret0 := fact(~n - 1);< 334649#$Ultimate##0 ~n := #in~n; 334661#L25 assume ~n <= 0;#res := 1; 334659#factFINAL assume true; 334655#factEXIT >#66#return; 334653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334652#factFINAL assume true; 334648#factEXIT >#66#return; 334646#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334645#factFINAL assume true; 334637#factEXIT >#66#return; 334642#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334743#factFINAL assume true; 334559#factEXIT >#78#return; 333439#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 333437#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 333436#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 333435#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 333434#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 333432#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 333430#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 333404#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 333351#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333357#$Ultimate##0 ~n := #in~n; 333397#L25 assume !(~n <= 0); 333377#L26 call #t~ret0 := fact(~n - 1);< 333389#$Ultimate##0 ~n := #in~n; 333413#L25 assume ~n <= 0;#res := 1; 333872#factFINAL assume true; 333863#factEXIT >#66#return; 333862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333861#factFINAL assume true; 333859#factEXIT >#68#return; 333857#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 333343#$Ultimate##0 ~n := #in~n; 333871#L25 assume ~n <= 0;#res := 1; 333870#factFINAL assume true; 333856#factEXIT >#70#return; 333850#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 333853#$Ultimate##0 ~n := #in~n; 333852#L25 assume !(~n <= 0); 333379#L26 call #t~ret0 := fact(~n - 1);< 333851#$Ultimate##0 ~n := #in~n; 333413#L25 assume ~n <= 0;#res := 1; 333872#factFINAL assume true; 333863#factEXIT >#66#return; 333868#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333911#factFINAL assume true; 333910#factEXIT >#72#return; 333909#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 333908#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 333906#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 333905#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 333904#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 333875#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333885#$Ultimate##0 ~n := #in~n; 333884#L25 assume !(~n <= 0); 333372#L26 call #t~ret0 := fact(~n - 1);< 333851#$Ultimate##0 ~n := #in~n; 333413#L25 assume ~n <= 0;#res := 1; 333872#factFINAL assume true; 333863#factEXIT >#66#return; 333869#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333907#factFINAL assume true; 333903#factEXIT >#68#return; 333608#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 333673#$Ultimate##0 ~n := #in~n; 333883#L25 assume !(~n <= 0); 333373#L26 call #t~ret0 := fact(~n - 1);< 333454#$Ultimate##0 ~n := #in~n; 333413#L25 assume ~n <= 0;#res := 1; 333872#factFINAL assume true; 333863#factEXIT >#66#return; 333867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333705#factFINAL assume true; 333693#factEXIT >#70#return; 333682#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 333691#$Ultimate##0 ~n := #in~n; 333894#L25 assume ~n <= 0;#res := 1; 333891#factFINAL assume true; 333681#factEXIT >#72#return; 333680#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 333679#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 333678#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 333677#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 333676#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 333617#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333647#$Ultimate##0 ~n := #in~n; 333947#L25 assume !(~n <= 0); 333368#L26 call #t~ret0 := fact(~n - 1);< 333389#$Ultimate##0 ~n := #in~n; 333441#L25 assume !(~n <= 0); 333381#L26 call #t~ret0 := fact(~n - 1);< 333403#$Ultimate##0 ~n := #in~n; 333441#L25 assume !(~n <= 0); 333381#L26 call #t~ret0 := fact(~n - 1);< 333403#$Ultimate##0 ~n := #in~n; 333407#L25 assume ~n <= 0;#res := 1; 333405#factFINAL assume true; 333400#factEXIT >#66#return; 333399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333391#factFINAL assume true; 333365#factEXIT >#66#return; 333386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333757#factFINAL assume true; 333733#factEXIT >#66#return; 333732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333724#factFINAL assume true; 333710#factEXIT >#74#return; 333627#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 333674#$Ultimate##0 ~n := #in~n; 333887#L25 assume !(~n <= 0); 333375#L26 call #t~ret0 := fact(~n - 1);< 333444#$Ultimate##0 ~n := #in~n; 333442#L25 assume !(~n <= 0); 333370#L26 call #t~ret0 := fact(~n - 1);< 333408#$Ultimate##0 ~n := #in~n; 333407#L25 assume ~n <= 0;#res := 1; 333405#factFINAL assume true; 333400#factEXIT >#66#return; 333399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333391#factFINAL assume true; 333365#factEXIT >#66#return; 333384#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333672#factFINAL assume true; 333603#factEXIT >#76#return; 333646#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 333707#$Ultimate##0 ~n := #in~n; 333900#L25 assume !(~n <= 0); 333865#L26 call #t~ret0 := fact(~n - 1);< 333873#$Ultimate##0 ~n := #in~n; 333413#L25 assume ~n <= 0;#res := 1; 333872#factFINAL assume true; 333863#factEXIT >#66#return; 333867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333705#factFINAL assume true; 333693#factEXIT >#78#return; 333698#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 333720#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 333718#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 333717#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 333716#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 333544#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333523#$Ultimate##0 ~n := #in~n; 333982#L25 assume !(~n <= 0); 333937#L26 call #t~ret0 := fact(~n - 1);< 333962#$Ultimate##0 ~n := #in~n; 333958#L25 assume !(~n <= 0); 333935#L26 call #t~ret0 := fact(~n - 1);< 333956#$Ultimate##0 ~n := #in~n; 333958#L25 assume !(~n <= 0); 333935#L26 call #t~ret0 := fact(~n - 1);< 333956#$Ultimate##0 ~n := #in~n; 334719#L25 assume ~n <= 0;#res := 1; 334727#factFINAL assume true; 334713#factEXIT >#66#return; 334712#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333979#factFINAL assume true; 333967#factEXIT >#66#return; 333966#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333960#factFINAL assume true; 333949#factEXIT >#66#return; 333954#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333551#factFINAL assume true; 333562#factEXIT >#74#return; 333557#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 333529#$Ultimate##0 ~n := #in~n; 334067#L25 assume !(~n <= 0); 333950#L26 call #t~ret0 := fact(~n - 1);< 334060#$Ultimate##0 ~n := #in~n; 334071#L25 assume ~n <= 0;#res := 1; 334066#factFINAL assume true; 334056#factEXIT >#66#return; 334047#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334048#factFINAL assume true; 333564#factEXIT >#76#return; 333541#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 333523#$Ultimate##0 ~n := #in~n; 333982#L25 assume !(~n <= 0); 333937#L26 call #t~ret0 := fact(~n - 1);< 333962#$Ultimate##0 ~n := #in~n; 333958#L25 assume !(~n <= 0); 333935#L26 call #t~ret0 := fact(~n - 1);< 333956#$Ultimate##0 ~n := #in~n; 334719#L25 assume ~n <= 0;#res := 1; 334727#factFINAL assume true; 334713#factEXIT >#66#return; 334712#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333979#factFINAL assume true; 333967#factEXIT >#66#return; 333970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334042#factFINAL assume true; 334043#factEXIT >#78#return; 334130#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 334147#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 334146#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 334143#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 334140#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 334137#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 334134#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 334131#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 333354#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333357#$Ultimate##0 ~n := #in~n; 333397#L25 assume !(~n <= 0); 333377#L26 call #t~ret0 := fact(~n - 1);< 333389#$Ultimate##0 ~n := #in~n; 333441#L25 assume !(~n <= 0); 333381#L26 call #t~ret0 := fact(~n - 1);< 333403#$Ultimate##0 ~n := #in~n; 333407#L25 assume ~n <= 0;#res := 1; 333405#factFINAL assume true; 333400#factEXIT >#66#return; 333399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333391#factFINAL assume true; 333365#factEXIT >#66#return; 333363#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333362#factFINAL assume true; 333349#factEXIT >#68#return; 333340#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 333344#$Ultimate##0 ~n := #in~n; 333817#L25 assume ~n <= 0;#res := 1; 333811#factFINAL assume true; 333808#factEXIT >#70#return; 333801#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 333425#$Ultimate##0 ~n := #in~n; 333929#L25 assume !(~n <= 0); 332454#L26 call #t~ret0 := fact(~n - 1);< 332466#$Ultimate##0 ~n := #in~n; 332484#L25 assume !(~n <= 0); 332477#L26 call #t~ret0 := fact(~n - 1);< 332480#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333927#factFINAL assume true; 333800#factEXIT >#72#return; 333804#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 334837#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 334829#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 334830#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 332905#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 332846#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 332853#$Ultimate##0 ~n := #in~n; 332931#L25 assume !(~n <= 0); 332456#L26 call #t~ret0 := fact(~n - 1);< 332470#$Ultimate##0 ~n := #in~n; 332484#L25 assume !(~n <= 0); 332477#L26 call #t~ret0 := fact(~n - 1);< 332480#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332460#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332910#factFINAL assume true; 332844#factEXIT >#68#return; 332317#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 332363#$Ultimate##0 ~n := #in~n; 332665#L25 assume !(~n <= 0); 332428#L26 call #t~ret0 := fact(~n - 1);< 332620#$Ultimate##0 ~n := #in~n; 332488#L25 assume ~n <= 0;#res := 1; 332619#factFINAL assume true; 332609#factEXIT >#66#return; 332616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332918#factFINAL assume true; 332893#factEXIT >#70#return; 332301#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 332309#$Ultimate##0 ~n := #in~n; 332933#L25 assume !(~n <= 0); 332612#L26 call #t~ret0 := fact(~n - 1);< 332617#$Ultimate##0 ~n := #in~n; 332488#L25 assume ~n <= 0;#res := 1; 332619#factFINAL assume true; 332609#factEXIT >#66#return; 332616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332918#factFINAL assume true; 332893#factEXIT >#72#return; 332889#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 332890#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 332872#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 332871#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 332869#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 332845#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 332853#$Ultimate##0 ~n := #in~n; 332931#L25 assume !(~n <= 0); 332456#L26 call #t~ret0 := fact(~n - 1);< 332470#$Ultimate##0 ~n := #in~n; 332484#L25 assume !(~n <= 0); 332477#L26 call #t~ret0 := fact(~n - 1);< 332480#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332460#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332910#factFINAL assume true; 332844#factEXIT >#68#return; 332325#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 332363#$Ultimate##0 ~n := #in~n; 332665#L25 assume !(~n <= 0); 332428#L26 call #t~ret0 := fact(~n - 1);< 332620#$Ultimate##0 ~n := #in~n; 332482#L25 assume !(~n <= 0); 332452#L26 call #t~ret0 := fact(~n - 1);< 332478#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334041#factFINAL assume true; 332310#factEXIT >#70#return; 332304#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 332296#$Ultimate##0 ~n := #in~n; 332306#L25 assume ~n <= 0;#res := 1; 332297#factFINAL assume true; 332305#factEXIT >#72#return; 332908#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 335038#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 335037#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 335036#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 335033#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 333764#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 335006#$Ultimate##0 ~n := #in~n; 335005#L25 assume !(~n <= 0); 334921#L26 call #t~ret0 := fact(~n - 1);< 334954#$Ultimate##0 ~n := #in~n; 335001#L25 assume !(~n <= 0); 334922#L26 call #t~ret0 := fact(~n - 1);< 334991#$Ultimate##0 ~n := #in~n; 335001#L25 assume !(~n <= 0); 334922#L26 call #t~ret0 := fact(~n - 1);< 334991#$Ultimate##0 ~n := #in~n; 335002#L25 assume ~n <= 0;#res := 1; 334999#factFINAL assume true; 334990#factEXIT >#66#return; 334987#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334978#factFINAL assume true; 334965#factEXIT >#66#return; 334957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334932#factFINAL assume true; 334915#factEXIT >#66#return; 334927#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335014#factFINAL assume true; 335015#factEXIT >#74#return; 334979#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 334992#$Ultimate##0 ~n := #in~n; 334988#L25 assume !(~n <= 0); 334919#L26 call #t~ret0 := fact(~n - 1);< 334929#$Ultimate##0 ~n := #in~n; 335000#L25 assume !(~n <= 0); 332215#L26 call #t~ret0 := fact(~n - 1);< 334971#$Ultimate##0 ~n := #in~n; 335040#L25 assume !(~n <= 0); 332214#L26 call #t~ret0 := fact(~n - 1);< 332218#$Ultimate##0 ~n := #in~n; 335002#L25 assume ~n <= 0;#res := 1; 334999#factFINAL assume true; 334990#factEXIT >#66#return; 334987#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334978#factFINAL assume true; 334965#factEXIT >#66#return; 334957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334932#factFINAL assume true; 334915#factEXIT >#66#return; 334927#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335014#factFINAL assume true; 335015#factEXIT >#76#return; 334857#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 334858#$Ultimate##0 ~n := #in~n; 335024#L25 assume !(~n <= 0); 334896#L26 call #t~ret0 := fact(~n - 1);< 334903#$Ultimate##0 ~n := #in~n; 334908#L25 assume ~n <= 0;#res := 1; 334905#factFINAL assume true; 334890#factEXIT >#66#return; 334902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335041#factFINAL assume true; 335025#factEXIT >#78#return; 334856#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 335094#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 335091#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 335088#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 335087#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 335086#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 335085#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 335084#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 333037#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333042#$Ultimate##0 ~n := #in~n; 333039#L25 assume !(~n <= 0); 332400#L26 call #t~ret0 := fact(~n - 1);< 332472#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332444#factFINAL assume true; 332425#factEXIT >#66#return; 332439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332414#factFINAL assume true; 332420#factEXIT >#66#return; 332408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332424#factFINAL assume true; 332379#factEXIT >#66#return; 332406#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333893#factFINAL assume true; 333657#factEXIT >#68#return; 333652#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 333655#$Ultimate##0 ~n := #in~n; 333892#L25 assume ~n <= 0;#res := 1; 333890#factFINAL assume true; 333650#factEXIT >#70#return; 333595#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 333600#$Ultimate##0 ~n := #in~n; 334800#L25 assume !(~n <= 0); 332387#L26 call #t~ret0 := fact(~n - 1);< 332572#$Ultimate##0 ~n := #in~n; 334840#L25 assume !(~n <= 0); 332385#L26 call #t~ret0 := fact(~n - 1);< 332423#$Ultimate##0 ~n := #in~n; 334835#L25 assume !(~n <= 0); 332386#L26 call #t~ret0 := fact(~n - 1);< 332442#$Ultimate##0 ~n := #in~n; 332835#L25 assume !(~n <= 0); 332394#L26 call #t~ret0 := fact(~n - 1);< 332467#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332444#factFINAL assume true; 332425#factEXIT >#66#return; 332439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332414#factFINAL assume true; 332420#factEXIT >#66#return; 332408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332424#factFINAL assume true; 332379#factEXIT >#66#return; 332409#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333648#factFINAL assume true; 333592#factEXIT >#72#return; 333589#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 333590#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 333582#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 333583#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 333578#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 333458#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333471#$Ultimate##0 ~n := #in~n; 333829#L25 assume !(~n <= 0); 332380#L26 call #t~ret0 := fact(~n - 1);< 332572#$Ultimate##0 ~n := #in~n; 334840#L25 assume !(~n <= 0); 332385#L26 call #t~ret0 := fact(~n - 1);< 332423#$Ultimate##0 ~n := #in~n; 334835#L25 assume !(~n <= 0); 332386#L26 call #t~ret0 := fact(~n - 1);< 332442#$Ultimate##0 ~n := #in~n; 332835#L25 assume !(~n <= 0); 332394#L26 call #t~ret0 := fact(~n - 1);< 332467#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332444#factFINAL assume true; 332425#factEXIT >#66#return; 332439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332414#factFINAL assume true; 332420#factEXIT >#66#return; 332408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332424#factFINAL assume true; 332379#factEXIT >#66#return; 332404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333821#factFINAL assume true; 333455#factEXIT >#68#return; 332277#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 332307#$Ultimate##0 ~n := #in~n; 332308#L25 assume !(~n <= 0); 332611#L26 call #t~ret0 := fact(~n - 1);< 332617#$Ultimate##0 ~n := #in~n; 332488#L25 assume ~n <= 0;#res := 1; 332619#factFINAL assume true; 332609#factEXIT >#66#return; 332615#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333826#factFINAL assume true; 333484#factEXIT >#70#return; 332345#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 332373#$Ultimate##0 ~n := #in~n; 334040#L25 assume !(~n <= 0); 332397#L26 call #t~ret0 := fact(~n - 1);< 332442#$Ultimate##0 ~n := #in~n; 332835#L25 assume !(~n <= 0); 332394#L26 call #t~ret0 := fact(~n - 1);< 332467#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332444#factFINAL assume true; 332425#factEXIT >#66#return; 332439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332414#factFINAL assume true; 332420#factEXIT >#66#return; 332408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332424#factFINAL assume true; 332379#factEXIT >#66#return; 332405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332365#factFINAL assume true; 332372#factEXIT >#72#return; 332358#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 335083#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 335082#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 335081#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 335080#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 333468#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333471#$Ultimate##0 ~n := #in~n; 333829#L25 assume !(~n <= 0); 332380#L26 call #t~ret0 := fact(~n - 1);< 332572#$Ultimate##0 ~n := #in~n; 334840#L25 assume !(~n <= 0); 332385#L26 call #t~ret0 := fact(~n - 1);< 332423#$Ultimate##0 ~n := #in~n; 334835#L25 assume !(~n <= 0); 332386#L26 call #t~ret0 := fact(~n - 1);< 332442#$Ultimate##0 ~n := #in~n; 332835#L25 assume !(~n <= 0); 332394#L26 call #t~ret0 := fact(~n - 1);< 332467#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332444#factFINAL assume true; 332425#factEXIT >#66#return; 332439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332414#factFINAL assume true; 332420#factEXIT >#66#return; 332408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332424#factFINAL assume true; 332379#factEXIT >#66#return; 332404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333821#factFINAL assume true; 333455#factEXIT >#68#return; 332268#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 332364#$Ultimate##0 ~n := #in~n; 332508#L25 assume !(~n <= 0); 332396#L26 call #t~ret0 := fact(~n - 1);< 332472#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332462#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335070#factFINAL assume true; 335069#factEXIT >#70#return; 332352#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 332837#$Ultimate##0 ~n := #in~n; 332510#L25 assume !(~n <= 0); 332393#L26 call #t~ret0 := fact(~n - 1);< 332467#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332444#factFINAL assume true; 332425#factEXIT >#66#return; 332439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332414#factFINAL assume true; 332420#factEXIT >#66#return; 332408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332424#factFINAL assume true; 332379#factEXIT >#66#return; 332405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332365#factFINAL assume true; 332372#factEXIT >#72#return; 332360#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 335078#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 335075#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 335071#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 333661#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 333464#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333471#$Ultimate##0 ~n := #in~n; 333829#L25 assume !(~n <= 0); 332380#L26 call #t~ret0 := fact(~n - 1);< 332572#$Ultimate##0 ~n := #in~n; 334840#L25 assume !(~n <= 0); 332385#L26 call #t~ret0 := fact(~n - 1);< 332423#$Ultimate##0 ~n := #in~n; 334835#L25 assume !(~n <= 0); 332386#L26 call #t~ret0 := fact(~n - 1);< 332442#$Ultimate##0 ~n := #in~n; 332835#L25 assume !(~n <= 0); 332394#L26 call #t~ret0 := fact(~n - 1);< 332467#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332444#factFINAL assume true; 332425#factEXIT >#66#return; 332439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332414#factFINAL assume true; 332420#factEXIT >#66#return; 332408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332424#factFINAL assume true; 332379#factEXIT >#66#return; 332404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333821#factFINAL assume true; 333455#factEXIT >#68#return; 332289#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 332364#$Ultimate##0 ~n := #in~n; 332508#L25 assume !(~n <= 0); 332396#L26 call #t~ret0 := fact(~n - 1);< 332472#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332444#factFINAL assume true; 332425#factEXIT >#66#return; 332438#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333662#factFINAL assume true; 333660#factEXIT >#70#return; 332269#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 332364#$Ultimate##0 ~n := #in~n; 332508#L25 assume !(~n <= 0); 332396#L26 call #t~ret0 := fact(~n - 1);< 332472#$Ultimate##0 ~n := #in~n; 332488#L25 assume ~n <= 0;#res := 1; 332619#factFINAL assume true; 332609#factEXIT >#66#return; 332615#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333826#factFINAL assume true; 333484#factEXIT >#72#return; 333485#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 333659#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 333658#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 333656#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 333649#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 333460#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333471#$Ultimate##0 ~n := #in~n; 333829#L25 assume !(~n <= 0); 332380#L26 call #t~ret0 := fact(~n - 1);< 332572#$Ultimate##0 ~n := #in~n; 334840#L25 assume !(~n <= 0); 332385#L26 call #t~ret0 := fact(~n - 1);< 332423#$Ultimate##0 ~n := #in~n; 334835#L25 assume !(~n <= 0); 332386#L26 call #t~ret0 := fact(~n - 1);< 332442#$Ultimate##0 ~n := #in~n; 332835#L25 assume !(~n <= 0); 332394#L26 call #t~ret0 := fact(~n - 1);< 332467#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332444#factFINAL assume true; 332425#factEXIT >#66#return; 332439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332414#factFINAL assume true; 332420#factEXIT >#66#return; 332408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332424#factFINAL assume true; 332379#factEXIT >#66#return; 332404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333821#factFINAL assume true; 333455#factEXIT >#68#return; 332270#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 332364#$Ultimate##0 ~n := #in~n; 332508#L25 assume !(~n <= 0); 332396#L26 call #t~ret0 := fact(~n - 1);< 332472#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332444#factFINAL assume true; 332425#factEXIT >#66#return; 332439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332414#factFINAL assume true; 332420#factEXIT >#66#return; 332377#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332378#factFINAL assume true; 332336#factEXIT >#70#return; 332273#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 332364#$Ultimate##0 ~n := #in~n; 332508#L25 assume ~n <= 0;#res := 1; 332509#factFINAL assume true; 332267#factEXIT >#72#return; 332226#L30-3 [2023-02-18 08:56:59,133 INFO L750 eck$LassoCheckResult]: Loop: 332226#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 332227#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 335067#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 335066#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 335049#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 333427#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 332186#$Ultimate##0 ~n := #in~n; 335017#L25 assume !(~n <= 0); 332220#L26 call #t~ret0 := fact(~n - 1);< 334963#$Ultimate##0 ~n := #in~n; 332253#L25 assume !(~n <= 0); 332219#L26 call #t~ret0 := fact(~n - 1);< 332221#$Ultimate##0 ~n := #in~n; 332257#L25 assume !(~n <= 0); 334917#L26 call #t~ret0 := fact(~n - 1);< 334933#$Ultimate##0 ~n := #in~n; 335004#L25 assume !(~n <= 0); 334916#L26 call #t~ret0 := fact(~n - 1);< 334970#$Ultimate##0 ~n := #in~n; 335001#L25 assume !(~n <= 0); 334922#L26 call #t~ret0 := fact(~n - 1);< 334991#$Ultimate##0 ~n := #in~n; 335002#L25 assume ~n <= 0;#res := 1; 334999#factFINAL assume true; 334990#factEXIT >#66#return; 334987#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334978#factFINAL assume true; 334965#factEXIT >#66#return; 334957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334932#factFINAL assume true; 334915#factEXIT >#66#return; 334926#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334984#factFINAL assume true; 334973#factEXIT >#66#return; 334949#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334959#factFINAL assume true; 334948#factEXIT >#66#return; 334951#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335042#factFINAL assume true; 335039#factEXIT >#74#return; 335020#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 335023#$Ultimate##0 ~n := #in~n; 335022#L25 assume !(~n <= 0); 334942#L26 call #t~ret0 := fact(~n - 1);< 335019#$Ultimate##0 ~n := #in~n; 335018#L25 assume !(~n <= 0); 334920#L26 call #t~ret0 := fact(~n - 1);< 334943#$Ultimate##0 ~n := #in~n; 335007#L25 assume !(~n <= 0); 332217#L26 call #t~ret0 := fact(~n - 1);< 334971#$Ultimate##0 ~n := #in~n; 335040#L25 assume !(~n <= 0); 332214#L26 call #t~ret0 := fact(~n - 1);< 332218#$Ultimate##0 ~n := #in~n; 335002#L25 assume ~n <= 0;#res := 1; 334999#factFINAL assume true; 334990#factEXIT >#66#return; 334987#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334978#factFINAL assume true; 334965#factEXIT >#66#return; 334957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334932#factFINAL assume true; 334915#factEXIT >#66#return; 334926#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334984#factFINAL assume true; 334973#factEXIT >#66#return; 334976#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335053#factFINAL assume true; 335052#factEXIT >#76#return; 332206#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 332262#$Ultimate##0 ~n := #in~n; 335046#L25 assume !(~n <= 0); 334891#L26 call #t~ret0 := fact(~n - 1);< 334903#$Ultimate##0 ~n := #in~n; 334908#L25 assume ~n <= 0;#res := 1; 334905#factFINAL assume true; 334890#factEXIT >#66#return; 334901#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332205#factFINAL assume true; 332207#factEXIT >#78#return; 335103#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 335102#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 335101#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 335100#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 335096#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 335093#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 335090#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 334844#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 332570#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 334181#$Ultimate##0 ~n := #in~n; 334182#L25 assume !(~n <= 0); 332382#L26 call #t~ret0 := fact(~n - 1);< 332572#$Ultimate##0 ~n := #in~n; 334840#L25 assume !(~n <= 0); 332385#L26 call #t~ret0 := fact(~n - 1);< 332423#$Ultimate##0 ~n := #in~n; 334835#L25 assume !(~n <= 0); 332386#L26 call #t~ret0 := fact(~n - 1);< 332442#$Ultimate##0 ~n := #in~n; 332835#L25 assume !(~n <= 0); 332394#L26 call #t~ret0 := fact(~n - 1);< 332467#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332444#factFINAL assume true; 332425#factEXIT >#66#return; 332439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332414#factFINAL assume true; 332420#factEXIT >#66#return; 332408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332424#factFINAL assume true; 332379#factEXIT >#66#return; 332406#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333893#factFINAL assume true; 333657#factEXIT >#68#return; 333651#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 333655#$Ultimate##0 ~n := #in~n; 333892#L25 assume ~n <= 0;#res := 1; 333890#factFINAL assume true; 333650#factEXIT >#70#return; 333594#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 333600#$Ultimate##0 ~n := #in~n; 334800#L25 assume !(~n <= 0); 332387#L26 call #t~ret0 := fact(~n - 1);< 332572#$Ultimate##0 ~n := #in~n; 334840#L25 assume !(~n <= 0); 332385#L26 call #t~ret0 := fact(~n - 1);< 332423#$Ultimate##0 ~n := #in~n; 334835#L25 assume !(~n <= 0); 332386#L26 call #t~ret0 := fact(~n - 1);< 332442#$Ultimate##0 ~n := #in~n; 332835#L25 assume !(~n <= 0); 332394#L26 call #t~ret0 := fact(~n - 1);< 332467#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332444#factFINAL assume true; 332425#factEXIT >#66#return; 332439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332414#factFINAL assume true; 332420#factEXIT >#66#return; 332408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332424#factFINAL assume true; 332379#factEXIT >#66#return; 332409#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333648#factFINAL assume true; 333592#factEXIT >#72#return; 333598#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 334178#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 334170#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 334171#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 334163#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 333470#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333471#$Ultimate##0 ~n := #in~n; 333829#L25 assume !(~n <= 0); 332380#L26 call #t~ret0 := fact(~n - 1);< 332572#$Ultimate##0 ~n := #in~n; 334840#L25 assume !(~n <= 0); 332385#L26 call #t~ret0 := fact(~n - 1);< 332423#$Ultimate##0 ~n := #in~n; 334835#L25 assume !(~n <= 0); 332386#L26 call #t~ret0 := fact(~n - 1);< 332442#$Ultimate##0 ~n := #in~n; 332835#L25 assume !(~n <= 0); 332394#L26 call #t~ret0 := fact(~n - 1);< 332467#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332444#factFINAL assume true; 332425#factEXIT >#66#return; 332439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332414#factFINAL assume true; 332420#factEXIT >#66#return; 332408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332424#factFINAL assume true; 332379#factEXIT >#66#return; 332404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333821#factFINAL assume true; 333455#factEXIT >#68#return; 332283#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 332307#$Ultimate##0 ~n := #in~n; 332308#L25 assume !(~n <= 0); 332611#L26 call #t~ret0 := fact(~n - 1);< 332617#$Ultimate##0 ~n := #in~n; 332488#L25 assume ~n <= 0;#res := 1; 332619#factFINAL assume true; 332609#factEXIT >#66#return; 332615#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333826#factFINAL assume true; 333484#factEXIT >#70#return; 332340#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 332961#$Ultimate##0 ~n := #in~n; 332960#L25 assume !(~n <= 0); 332388#L26 call #t~ret0 := fact(~n - 1);< 332423#$Ultimate##0 ~n := #in~n; 334835#L25 assume !(~n <= 0); 332386#L26 call #t~ret0 := fact(~n - 1);< 332442#$Ultimate##0 ~n := #in~n; 332835#L25 assume !(~n <= 0); 332394#L26 call #t~ret0 := fact(~n - 1);< 332467#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332444#factFINAL assume true; 332425#factEXIT >#66#return; 332439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332414#factFINAL assume true; 332420#factEXIT >#66#return; 332408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332424#factFINAL assume true; 332379#factEXIT >#66#return; 332405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332365#factFINAL assume true; 332372#factEXIT >#72#return; 332358#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 335083#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 335082#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 335081#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 335080#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 333468#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333471#$Ultimate##0 ~n := #in~n; 333829#L25 assume !(~n <= 0); 332380#L26 call #t~ret0 := fact(~n - 1);< 332572#$Ultimate##0 ~n := #in~n; 334840#L25 assume !(~n <= 0); 332385#L26 call #t~ret0 := fact(~n - 1);< 332423#$Ultimate##0 ~n := #in~n; 334835#L25 assume !(~n <= 0); 332386#L26 call #t~ret0 := fact(~n - 1);< 332442#$Ultimate##0 ~n := #in~n; 332835#L25 assume !(~n <= 0); 332394#L26 call #t~ret0 := fact(~n - 1);< 332467#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332444#factFINAL assume true; 332425#factEXIT >#66#return; 332439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332414#factFINAL assume true; 332420#factEXIT >#66#return; 332408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332424#factFINAL assume true; 332379#factEXIT >#66#return; 332404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333821#factFINAL assume true; 333455#factEXIT >#68#return; 332268#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 332364#$Ultimate##0 ~n := #in~n; 332508#L25 assume !(~n <= 0); 332396#L26 call #t~ret0 := fact(~n - 1);< 332472#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332462#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335070#factFINAL assume true; 335069#factEXIT >#70#return; 332352#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 332837#$Ultimate##0 ~n := #in~n; 332510#L25 assume !(~n <= 0); 332393#L26 call #t~ret0 := fact(~n - 1);< 332467#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332444#factFINAL assume true; 332425#factEXIT >#66#return; 332439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332414#factFINAL assume true; 332420#factEXIT >#66#return; 332408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332424#factFINAL assume true; 332379#factEXIT >#66#return; 332405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332365#factFINAL assume true; 332372#factEXIT >#72#return; 332360#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 335078#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 335075#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 335071#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 333661#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 333464#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333471#$Ultimate##0 ~n := #in~n; 333829#L25 assume !(~n <= 0); 332380#L26 call #t~ret0 := fact(~n - 1);< 332572#$Ultimate##0 ~n := #in~n; 334840#L25 assume !(~n <= 0); 332385#L26 call #t~ret0 := fact(~n - 1);< 332423#$Ultimate##0 ~n := #in~n; 334835#L25 assume !(~n <= 0); 332386#L26 call #t~ret0 := fact(~n - 1);< 332442#$Ultimate##0 ~n := #in~n; 332835#L25 assume !(~n <= 0); 332394#L26 call #t~ret0 := fact(~n - 1);< 332467#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332444#factFINAL assume true; 332425#factEXIT >#66#return; 332439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332414#factFINAL assume true; 332420#factEXIT >#66#return; 332408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332424#factFINAL assume true; 332379#factEXIT >#66#return; 332404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333821#factFINAL assume true; 333455#factEXIT >#68#return; 332289#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 332364#$Ultimate##0 ~n := #in~n; 332508#L25 assume !(~n <= 0); 332396#L26 call #t~ret0 := fact(~n - 1);< 332472#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332444#factFINAL assume true; 332425#factEXIT >#66#return; 332438#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333662#factFINAL assume true; 333660#factEXIT >#70#return; 332269#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 332364#$Ultimate##0 ~n := #in~n; 332508#L25 assume !(~n <= 0); 332396#L26 call #t~ret0 := fact(~n - 1);< 332472#$Ultimate##0 ~n := #in~n; 332488#L25 assume ~n <= 0;#res := 1; 332619#factFINAL assume true; 332609#factEXIT >#66#return; 332615#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333826#factFINAL assume true; 333484#factEXIT >#72#return; 333485#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 333659#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 333658#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 333656#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 333649#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 333460#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333471#$Ultimate##0 ~n := #in~n; 333829#L25 assume !(~n <= 0); 332380#L26 call #t~ret0 := fact(~n - 1);< 332572#$Ultimate##0 ~n := #in~n; 334840#L25 assume !(~n <= 0); 332385#L26 call #t~ret0 := fact(~n - 1);< 332423#$Ultimate##0 ~n := #in~n; 334835#L25 assume !(~n <= 0); 332386#L26 call #t~ret0 := fact(~n - 1);< 332442#$Ultimate##0 ~n := #in~n; 332835#L25 assume !(~n <= 0); 332394#L26 call #t~ret0 := fact(~n - 1);< 332467#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332444#factFINAL assume true; 332425#factEXIT >#66#return; 332439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332414#factFINAL assume true; 332420#factEXIT >#66#return; 332408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332424#factFINAL assume true; 332379#factEXIT >#66#return; 332404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333821#factFINAL assume true; 333455#factEXIT >#68#return; 332270#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 332364#$Ultimate##0 ~n := #in~n; 332508#L25 assume !(~n <= 0); 332396#L26 call #t~ret0 := fact(~n - 1);< 332472#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332483#L25 assume !(~n <= 0); 332399#L26 call #t~ret0 := fact(~n - 1);< 332479#$Ultimate##0 ~n := #in~n; 332485#L25 assume ~n <= 0;#res := 1; 332481#factFINAL assume true; 332476#factEXIT >#66#return; 332474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332469#factFINAL assume true; 332450#factEXIT >#66#return; 332449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332444#factFINAL assume true; 332425#factEXIT >#66#return; 332439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332414#factFINAL assume true; 332420#factEXIT >#66#return; 332377#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 332378#factFINAL assume true; 332336#factEXIT >#70#return; 332273#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 332364#$Ultimate##0 ~n := #in~n; 332508#L25 assume ~n <= 0;#res := 1; 332509#factFINAL assume true; 332267#factEXIT >#72#return; 332226#L30-3 [2023-02-18 08:56:59,134 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:59,134 INFO L85 PathProgramCache]: Analyzing trace with hash 454985373, now seen corresponding path program 53 times [2023-02-18 08:56:59,134 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:59,134 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [747625851] [2023-02-18 08:56:59,134 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:59,134 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:59,149 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:59,150 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1642311871] [2023-02-18 08:56:59,150 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:56:59,150 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:59,150 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:59,153 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-18 08:56:59,154 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-18 08:56:59,513 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 16 check-sat command(s) [2023-02-18 08:56:59,513 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:56:59,516 INFO L263 TraceCheckSpWp]: Trace formula consists of 824 conjuncts, 13 conjunts are in the unsatisfiable core [2023-02-18 08:56:59,520 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:56:59,559 INFO L134 CoverageAnalysis]: Checked inductivity of 54395 backedges. 21693 proven. 139 refuted. 0 times theorem prover too weak. 32563 trivial. 0 not checked. [2023-02-18 08:56:59,559 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:56:59,632 INFO L134 CoverageAnalysis]: Checked inductivity of 54395 backedges. 751 proven. 1416 refuted. 0 times theorem prover too weak. 52228 trivial. 0 not checked. [2023-02-18 08:56:59,633 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:56:59,633 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [747625851] [2023-02-18 08:56:59,633 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:56:59,633 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1642311871] [2023-02-18 08:56:59,633 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1642311871] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:56:59,633 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:56:59,633 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 12] total 15 [2023-02-18 08:56:59,633 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1304115730] [2023-02-18 08:56:59,633 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:56:59,634 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:56:59,634 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:56:59,634 INFO L85 PathProgramCache]: Analyzing trace with hash 1432922150, now seen corresponding path program 53 times [2023-02-18 08:56:59,634 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:56:59,634 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [880659955] [2023-02-18 08:56:59,634 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:56:59,634 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:56:59,643 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:56:59,643 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1097445573] [2023-02-18 08:56:59,643 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:56:59,643 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:56:59,643 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:56:59,645 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-18 08:56:59,646 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-18 08:56:59,997 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 17 check-sat command(s) [2023-02-18 08:56:59,997 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:00,000 INFO L263 TraceCheckSpWp]: Trace formula consists of 929 conjuncts, 30 conjunts are in the unsatisfiable core [2023-02-18 08:57:00,003 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:00,094 INFO L134 CoverageAnalysis]: Checked inductivity of 16085 backedges. 9106 proven. 660 refuted. 0 times theorem prover too weak. 6319 trivial. 0 not checked. [2023-02-18 08:57:00,094 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:00,347 INFO L134 CoverageAnalysis]: Checked inductivity of 16085 backedges. 1006 proven. 2583 refuted. 0 times theorem prover too weak. 12496 trivial. 0 not checked. [2023-02-18 08:57:00,347 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:00,347 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [880659955] [2023-02-18 08:57:00,347 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:00,347 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1097445573] [2023-02-18 08:57:00,347 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1097445573] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:00,347 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:00,347 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 27] total 31 [2023-02-18 08:57:00,347 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [36539186] [2023-02-18 08:57:00,347 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:00,348 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:57:00,348 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:57:00,348 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 31 interpolants. [2023-02-18 08:57:00,348 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=124, Invalid=806, Unknown=0, NotChecked=0, Total=930 [2023-02-18 08:57:00,348 INFO L87 Difference]: Start difference. First operand 2950 states and 4139 transitions. cyclomatic complexity: 1220 Second operand has 31 states, 26 states have (on average 3.0) internal successors, (78), 29 states have internal predecessors, (78), 20 states have call successors, (31), 2 states have call predecessors, (31), 12 states have return successors, (38), 18 states have call predecessors, (38), 20 states have call successors, (38) [2023-02-18 08:57:01,840 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:57:01,840 INFO L93 Difference]: Finished difference Result 3964 states and 5603 transitions. [2023-02-18 08:57:01,840 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 3964 states and 5603 transitions. [2023-02-18 08:57:01,860 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 589 [2023-02-18 08:57:01,878 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 3964 states to 3916 states and 5508 transitions. [2023-02-18 08:57:01,879 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 440 [2023-02-18 08:57:01,879 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 443 [2023-02-18 08:57:01,879 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3916 states and 5508 transitions. [2023-02-18 08:57:01,879 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:57:01,879 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3916 states and 5508 transitions. [2023-02-18 08:57:01,880 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3916 states and 5508 transitions. [2023-02-18 08:57:01,919 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3916 to 3186. [2023-02-18 08:57:01,921 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3186 states, 2020 states have (on average 1.0613861386138614) internal successors, (2144), 2010 states have internal predecessors, (2144), 930 states have call successors, (946), 311 states have call predecessors, (946), 236 states have return successors, (1440), 864 states have call predecessors, (1440), 930 states have call successors, (1440) [2023-02-18 08:57:01,929 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3186 states to 3186 states and 4530 transitions. [2023-02-18 08:57:01,930 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3186 states and 4530 transitions. [2023-02-18 08:57:01,930 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 44 states. [2023-02-18 08:57:01,930 INFO L428 stractBuchiCegarLoop]: Abstraction has 3186 states and 4530 transitions. [2023-02-18 08:57:01,930 INFO L335 stractBuchiCegarLoop]: ======== Iteration 66 ============ [2023-02-18 08:57:01,931 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 3186 states and 4530 transitions. [2023-02-18 08:57:01,937 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 399 [2023-02-18 08:57:01,938 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:57:01,938 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:57:01,941 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [145, 145, 94, 94, 94, 94, 51, 17, 16, 11, 11, 11, 11, 11, 11, 11, 10, 10, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-18 08:57:01,941 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [75, 75, 57, 57, 57, 57, 18, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:57:01,950 INFO L748 eck$LassoCheckResult]: Stem: 347872#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 347807#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; 347808#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 347830#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; 347819#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 347820#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 350541#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 347805#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 347806#$Ultimate##0 ~n := #in~n; 350707#L25 assume ~n <= 0;#res := 1; 350706#factFINAL assume true; 350705#factEXIT >#68#return; 347861#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 347862#$Ultimate##0 ~n := #in~n; 350748#L25 assume ~n <= 0;#res := 1; 350747#factFINAL assume true; 350746#factEXIT >#70#return; 347799#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 347800#$Ultimate##0 ~n := #in~n; 350786#L25 assume ~n <= 0;#res := 1; 350785#factFINAL assume true; 350784#factEXIT >#72#return; 347825#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 347826#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 347844#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 350875#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 350873#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 350861#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 350862#$Ultimate##0 ~n := #in~n; 350874#L25 assume !(~n <= 0); 350871#L26 call #t~ret0 := fact(~n - 1);< 350872#$Ultimate##0 ~n := #in~n; 350879#L25 assume ~n <= 0;#res := 1; 350876#factFINAL assume true; 350870#factEXIT >#66#return; 350869#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 350868#factFINAL assume true; 350860#factEXIT >#74#return; 350856#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 350857#$Ultimate##0 ~n := #in~n; 350886#L25 assume ~n <= 0;#res := 1; 350885#factFINAL assume true; 350855#factEXIT >#76#return; 350852#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 350853#$Ultimate##0 ~n := #in~n; 350884#L25 assume !(~n <= 0); 350866#L26 call #t~ret0 := fact(~n - 1);< 350867#$Ultimate##0 ~n := #in~n; 350883#L25 assume ~n <= 0;#res := 1; 350882#factFINAL assume true; 350865#factEXIT >#66#return; 350859#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 350854#factFINAL assume true; 350851#factEXIT >#78#return; 350848#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 350839#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 350838#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 350837#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 350835#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 350832#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 350833#$Ultimate##0 ~n := #in~n; 350880#L25 assume !(~n <= 0); 350841#L26 call #t~ret0 := fact(~n - 1);< 350846#$Ultimate##0 ~n := #in~n; 350878#L25 assume !(~n <= 0); 350843#L26 call #t~ret0 := fact(~n - 1);< 350864#$Ultimate##0 ~n := #in~n; 350881#L25 assume ~n <= 0;#res := 1; 350877#factFINAL assume true; 350863#factEXIT >#66#return; 350858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 350850#factFINAL assume true; 350840#factEXIT >#66#return; 350844#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 350898#factFINAL assume true; 350831#factEXIT >#74#return; 350826#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 350827#$Ultimate##0 ~n := #in~n; 350847#L25 assume ~n <= 0;#res := 1; 350830#factFINAL assume true; 350825#factEXIT >#76#return; 350821#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 350822#$Ultimate##0 ~n := #in~n; 350849#L25 assume !(~n <= 0); 350842#L26 call #t~ret0 := fact(~n - 1);< 350846#$Ultimate##0 ~n := #in~n; 350878#L25 assume !(~n <= 0); 350843#L26 call #t~ret0 := fact(~n - 1);< 350864#$Ultimate##0 ~n := #in~n; 350881#L25 assume ~n <= 0;#res := 1; 350877#factFINAL assume true; 350863#factEXIT >#66#return; 350858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 350850#factFINAL assume true; 350840#factEXIT >#66#return; 350829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 350824#factFINAL assume true; 350820#factEXIT >#78#return; 350817#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 350814#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 350812#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 350809#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 350803#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 350798#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 350799#$Ultimate##0 ~n := #in~n; 350811#L25 assume !(~n <= 0); 350806#L26 call #t~ret0 := fact(~n - 1);< 350808#$Ultimate##0 ~n := #in~n; 350819#L25 assume !(~n <= 0); 350807#L26 call #t~ret0 := fact(~n - 1);< 350816#$Ultimate##0 ~n := #in~n; 350819#L25 assume !(~n <= 0); 350807#L26 call #t~ret0 := fact(~n - 1);< 350816#$Ultimate##0 ~n := #in~n; 350836#L25 assume ~n <= 0;#res := 1; 350834#factFINAL assume true; 350828#factEXIT >#66#return; 350823#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 350818#factFINAL assume true; 350815#factEXIT >#66#return; 350813#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 350810#factFINAL assume true; 350805#factEXIT >#66#return; 350802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 350801#factFINAL assume true; 350797#factEXIT >#74#return; 350788#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 350796#$Ultimate##0 ~n := #in~n; 350800#L25 assume ~n <= 0;#res := 1; 350787#factFINAL assume true; 350789#factEXIT >#76#return; 350779#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 350780#$Ultimate##0 ~n := #in~n; 350923#L25 assume !(~n <= 0); 350893#L26 call #t~ret0 := fact(~n - 1);< 350896#$Ultimate##0 ~n := #in~n; 350922#L25 assume !(~n <= 0); 350891#L26 call #t~ret0 := fact(~n - 1);< 350928#$Ultimate##0 ~n := #in~n; 350922#L25 assume !(~n <= 0); 350891#L26 call #t~ret0 := fact(~n - 1);< 350928#$Ultimate##0 ~n := #in~n; 350936#L25 assume ~n <= 0;#res := 1; 350935#factFINAL assume true; 350934#factEXIT >#66#return; 350933#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 350932#factFINAL assume true; 350931#factEXIT >#66#return; 350930#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 350929#factFINAL assume true; 350926#factEXIT >#66#return; 350895#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 350951#factFINAL assume true; 350950#factEXIT >#78#return; 350772#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 350770#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 350768#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 350764#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 347829#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 347821#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 347822#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 348518#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 348474#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 348476#$Ultimate##0 ~n := #in~n; 348511#L25 assume !(~n <= 0); 348487#L26 call #t~ret0 := fact(~n - 1);< 348506#$Ultimate##0 ~n := #in~n; 348977#L25 assume ~n <= 0;#res := 1; 348957#factFINAL assume true; 348919#factEXIT >#66#return; 348922#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349723#factFINAL assume true; 349718#factEXIT >#68#return; 348999#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 348465#$Ultimate##0 ~n := #in~n; 349010#L25 assume ~n <= 0;#res := 1; 349009#factFINAL assume true; 348998#factEXIT >#70#return; 348995#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 348996#$Ultimate##0 ~n := #in~n; 349028#L25 assume !(~n <= 0); 348497#L26 call #t~ret0 := fact(~n - 1);< 348888#$Ultimate##0 ~n := #in~n; 348977#L25 assume ~n <= 0;#res := 1; 348957#factFINAL assume true; 348919#factEXIT >#66#return; 348925#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349027#factFINAL assume true; 348994#factEXIT >#72#return; 348992#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 348989#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 348986#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 348946#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 348940#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 348935#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 348938#$Ultimate##0 ~n := #in~n; 348953#L25 assume !(~n <= 0); 348495#L26 call #t~ret0 := fact(~n - 1);< 348888#$Ultimate##0 ~n := #in~n; 348977#L25 assume ~n <= 0;#res := 1; 348957#factFINAL assume true; 348919#factEXIT >#66#return; 348924#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348947#factFINAL assume true; 348928#factEXIT >#68#return; 348835#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 348857#$Ultimate##0 ~n := #in~n; 348971#L25 assume !(~n <= 0); 348489#L26 call #t~ret0 := fact(~n - 1);< 348926#$Ultimate##0 ~n := #in~n; 348977#L25 assume ~n <= 0;#res := 1; 348957#factFINAL assume true; 348919#factEXIT >#66#return; 348899#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348894#factFINAL assume true; 348863#factEXIT >#70#return; 348874#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 348918#$Ultimate##0 ~n := #in~n; 348985#L25 assume ~n <= 0;#res := 1; 348955#factFINAL assume true; 348913#factEXIT >#72#return; 348911#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 348898#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 348893#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 348892#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 348891#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 348832#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 348858#$Ultimate##0 ~n := #in~n; 349790#L25 assume !(~n <= 0); 348500#L26 call #t~ret0 := fact(~n - 1);< 348506#$Ultimate##0 ~n := #in~n; 349005#L25 assume !(~n <= 0); 348493#L26 call #t~ret0 := fact(~n - 1);< 349788#$Ultimate##0 ~n := #in~n; 349005#L25 assume !(~n <= 0); 348493#L26 call #t~ret0 := fact(~n - 1);< 349788#$Ultimate##0 ~n := #in~n; 348519#L25 assume ~n <= 0;#res := 1; 348517#factFINAL assume true; 348513#factEXIT >#66#return; 348512#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348507#factFINAL assume true; 348480#factEXIT >#66#return; 348501#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348941#factFINAL assume true; 348901#factEXIT >#66#return; 348897#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348886#factFINAL assume true; 348878#factEXIT >#74#return; 348810#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 348859#$Ultimate##0 ~n := #in~n; 350715#L25 assume !(~n <= 0); 348491#L26 call #t~ret0 := fact(~n - 1);< 348909#$Ultimate##0 ~n := #in~n; 349909#L25 assume !(~n <= 0); 348481#L26 call #t~ret0 := fact(~n - 1);< 348515#$Ultimate##0 ~n := #in~n; 348519#L25 assume ~n <= 0;#res := 1; 348517#factFINAL assume true; 348513#factEXIT >#66#return; 348512#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348507#factFINAL assume true; 348480#factEXIT >#66#return; 348502#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348856#factFINAL assume true; 348805#factEXIT >#76#return; 348846#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 348896#$Ultimate##0 ~n := #in~n; 348939#L25 assume !(~n <= 0); 348921#L26 call #t~ret0 := fact(~n - 1);< 348927#$Ultimate##0 ~n := #in~n; 348977#L25 assume ~n <= 0;#res := 1; 348957#factFINAL assume true; 348919#factEXIT >#66#return; 348899#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348894#factFINAL assume true; 348863#factEXIT >#78#return; 348876#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 348861#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 348860#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 348803#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 348780#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 348680#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 348704#$Ultimate##0 ~n := #in~n; 348802#L25 assume !(~n <= 0); 348744#L26 call #t~ret0 := fact(~n - 1);< 348762#$Ultimate##0 ~n := #in~n; 348791#L25 assume !(~n <= 0); 348739#L26 call #t~ret0 := fact(~n - 1);< 348790#$Ultimate##0 ~n := #in~n; 348791#L25 assume !(~n <= 0); 348739#L26 call #t~ret0 := fact(~n - 1);< 348790#$Ultimate##0 ~n := #in~n; 348885#L25 assume ~n <= 0;#res := 1; 348884#factFINAL assume true; 348851#factEXIT >#66#return; 348804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348795#factFINAL assume true; 348782#factEXIT >#66#return; 348768#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348761#factFINAL assume true; 348735#factEXIT >#66#return; 348733#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348730#factFINAL assume true; 348709#factEXIT >#74#return; 348711#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 348728#$Ultimate##0 ~n := #in~n; 348788#L25 assume !(~n <= 0); 348740#L26 call #t~ret0 := fact(~n - 1);< 348777#$Ultimate##0 ~n := #in~n; 348794#L25 assume ~n <= 0;#res := 1; 348793#factFINAL assume true; 348772#factEXIT >#66#return; 348766#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348759#factFINAL assume true; 348734#factEXIT >#76#return; 348714#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 348732#$Ultimate##0 ~n := #in~n; 348800#L25 assume !(~n <= 0); 348737#L26 call #t~ret0 := fact(~n - 1);< 348798#$Ultimate##0 ~n := #in~n; 348797#L25 assume !(~n <= 0); 348742#L26 call #t~ret0 := fact(~n - 1);< 348787#$Ultimate##0 ~n := #in~n; 348885#L25 assume ~n <= 0;#res := 1; 348884#factFINAL assume true; 348851#factEXIT >#66#return; 348804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348795#factFINAL assume true; 348782#factEXIT >#66#return; 348784#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348854#factFINAL assume true; 348724#factEXIT >#78#return; 348725#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 349592#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 349591#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 349590#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 349589#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 349587#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 349585#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 349580#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 348475#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 348476#$Ultimate##0 ~n := #in~n; 348511#L25 assume !(~n <= 0); 348487#L26 call #t~ret0 := fact(~n - 1);< 348506#$Ultimate##0 ~n := #in~n; 349005#L25 assume !(~n <= 0); 348493#L26 call #t~ret0 := fact(~n - 1);< 349788#$Ultimate##0 ~n := #in~n; 348519#L25 assume ~n <= 0;#res := 1; 348517#factFINAL assume true; 348513#factEXIT >#66#return; 348512#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348507#factFINAL assume true; 348480#factEXIT >#66#return; 348479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348477#factFINAL assume true; 348468#factEXIT >#68#return; 348461#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 348467#$Ultimate##0 ~n := #in~n; 350183#L25 assume ~n <= 0;#res := 1; 350181#factFINAL assume true; 348459#factEXIT >#70#return; 348450#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 348456#$Ultimate##0 ~n := #in~n; 348478#L25 assume !(~n <= 0); 347851#L26 call #t~ret0 := fact(~n - 1);< 347867#$Ultimate##0 ~n := #in~n; 347846#L25 assume !(~n <= 0); 347849#L26 call #t~ret0 := fact(~n - 1);< 348157#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348086#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348458#factFINAL assume true; 348448#factEXIT >#72#return; 348455#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 350048#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 350047#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 350046#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 350045#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 348382#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 348388#$Ultimate##0 ~n := #in~n; 348412#L25 assume !(~n <= 0); 347852#L26 call #t~ret0 := fact(~n - 1);< 348134#$Ultimate##0 ~n := #in~n; 347846#L25 assume !(~n <= 0); 347849#L26 call #t~ret0 := fact(~n - 1);< 348157#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348087#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348396#factFINAL assume true; 348379#factEXIT >#68#return; 348309#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 348372#$Ultimate##0 ~n := #in~n; 348392#L25 assume !(~n <= 0); 348074#L26 call #t~ret0 := fact(~n - 1);< 348260#$Ultimate##0 ~n := #in~n; 348264#L25 assume ~n <= 0;#res := 1; 348258#factFINAL assume true; 348250#factEXIT >#66#return; 348255#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348409#factFINAL assume true; 348399#factEXIT >#70#return; 348361#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 348405#$Ultimate##0 ~n := #in~n; 348414#L25 assume !(~n <= 0); 348252#L26 call #t~ret0 := fact(~n - 1);< 348259#$Ultimate##0 ~n := #in~n; 348264#L25 assume ~n <= 0;#res := 1; 348258#factFINAL assume true; 348250#factEXIT >#66#return; 348255#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348409#factFINAL assume true; 348399#factEXIT >#72#return; 348402#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 350044#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 350043#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 350042#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 350041#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 348380#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 348388#$Ultimate##0 ~n := #in~n; 348412#L25 assume !(~n <= 0); 347852#L26 call #t~ret0 := fact(~n - 1);< 348134#$Ultimate##0 ~n := #in~n; 347846#L25 assume !(~n <= 0); 347849#L26 call #t~ret0 := fact(~n - 1);< 348157#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348087#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348396#factFINAL assume true; 348379#factEXIT >#68#return; 348306#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 348372#$Ultimate##0 ~n := #in~n; 348392#L25 assume !(~n <= 0); 348074#L26 call #t~ret0 := fact(~n - 1);< 348260#$Ultimate##0 ~n := #in~n; 348698#L25 assume !(~n <= 0); 347847#L26 call #t~ret0 := fact(~n - 1);< 348156#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348085#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348377#factFINAL assume true; 348370#factEXIT >#70#return; 348362#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 348367#$Ultimate##0 ~n := #in~n; 348389#L25 assume ~n <= 0;#res := 1; 348376#factFINAL assume true; 348356#factEXIT >#72#return; 348366#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 350040#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 350039#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 350038#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 350036#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 348345#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 349904#$Ultimate##0 ~n := #in~n; 349900#L25 assume !(~n <= 0); 349696#L26 call #t~ret0 := fact(~n - 1);< 349709#$Ultimate##0 ~n := #in~n; 349800#L25 assume !(~n <= 0); 349699#L26 call #t~ret0 := fact(~n - 1);< 349961#$Ultimate##0 ~n := #in~n; 349800#L25 assume !(~n <= 0); 349699#L26 call #t~ret0 := fact(~n - 1);< 349961#$Ultimate##0 ~n := #in~n; 349927#L25 assume ~n <= 0;#res := 1; 349969#factFINAL assume true; 349960#factEXIT >#66#return; 349959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349768#factFINAL assume true; 349771#factEXIT >#66#return; 349795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349892#factFINAL assume true; 349886#factEXIT >#66#return; 349888#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349915#factFINAL assume true; 349905#factEXIT >#74#return; 349894#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 349903#$Ultimate##0 ~n := #in~n; 349897#L25 assume !(~n <= 0); 349769#L26 call #t~ret0 := fact(~n - 1);< 349896#$Ultimate##0 ~n := #in~n; 349910#L25 assume !(~n <= 0); 347816#L26 call #t~ret0 := fact(~n - 1);< 349902#$Ultimate##0 ~n := #in~n; 347845#L25 assume !(~n <= 0); 347812#L26 call #t~ret0 := fact(~n - 1);< 347814#$Ultimate##0 ~n := #in~n; 349927#L25 assume ~n <= 0;#res := 1; 349969#factFINAL assume true; 349960#factEXIT >#66#return; 349959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349768#factFINAL assume true; 349771#factEXIT >#66#return; 349795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349892#factFINAL assume true; 349886#factEXIT >#66#return; 349888#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349915#factFINAL assume true; 349905#factEXIT >#76#return; 349620#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 349621#$Ultimate##0 ~n := #in~n; 350061#L25 assume !(~n <= 0); 349665#L26 call #t~ret0 := fact(~n - 1);< 349677#$Ultimate##0 ~n := #in~n; 349810#L25 assume ~n <= 0;#res := 1; 349801#factFINAL assume true; 349663#factEXIT >#66#return; 349676#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 350031#factFINAL assume true; 349948#factEXIT >#78#return; 349616#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 349615#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 349614#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 349613#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 349611#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 349609#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 349607#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 349605#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 348064#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 348369#$Ultimate##0 ~n := #in~n; 348368#L25 assume !(~n <= 0); 348039#L26 call #t~ret0 := fact(~n - 1);< 348065#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348135#factFINAL assume true; 348109#factEXIT >#66#return; 348108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348102#factFINAL assume true; 348088#factEXIT >#66#return; 348054#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348063#factFINAL assume true; 348028#factEXIT >#66#return; 348056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348644#factFINAL assume true; 348643#factEXIT >#68#return; 348635#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 348638#$Ultimate##0 ~n := #in~n; 348640#L25 assume ~n <= 0;#res := 1; 348639#factFINAL assume true; 348631#factEXIT >#70#return; 348596#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 348615#$Ultimate##0 ~n := #in~n; 348595#L25 assume !(~n <= 0); 348049#L26 call #t~ret0 := fact(~n - 1);< 348060#$Ultimate##0 ~n := #in~n; 348294#L25 assume !(~n <= 0); 348050#L26 call #t~ret0 := fact(~n - 1);< 348161#$Ultimate##0 ~n := #in~n; 348154#L25 assume !(~n <= 0); 348046#L26 call #t~ret0 := fact(~n - 1);< 348119#$Ultimate##0 ~n := #in~n; 348173#L25 assume !(~n <= 0); 348031#L26 call #t~ret0 := fact(~n - 1);< 348107#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348135#factFINAL assume true; 348109#factEXIT >#66#return; 348108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348102#factFINAL assume true; 348088#factEXIT >#66#return; 348054#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348063#factFINAL assume true; 348028#factEXIT >#66#return; 348059#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348628#factFINAL assume true; 348622#factEXIT >#72#return; 348623#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 349604#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 349603#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 349602#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 349601#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 348565#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 348590#$Ultimate##0 ~n := #in~n; 348592#L25 assume !(~n <= 0); 348032#L26 call #t~ret0 := fact(~n - 1);< 348060#$Ultimate##0 ~n := #in~n; 348294#L25 assume !(~n <= 0); 348050#L26 call #t~ret0 := fact(~n - 1);< 348161#$Ultimate##0 ~n := #in~n; 348154#L25 assume !(~n <= 0); 348046#L26 call #t~ret0 := fact(~n - 1);< 348119#$Ultimate##0 ~n := #in~n; 348173#L25 assume !(~n <= 0); 348031#L26 call #t~ret0 := fact(~n - 1);< 348107#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348135#factFINAL assume true; 348109#factEXIT >#66#return; 348108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348102#factFINAL assume true; 348088#factEXIT >#66#return; 348054#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348063#factFINAL assume true; 348028#factEXIT >#66#return; 348055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348591#factFINAL assume true; 348555#factEXIT >#68#return; 347900#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 347945#$Ultimate##0 ~n := #in~n; 348553#L25 assume !(~n <= 0); 348253#L26 call #t~ret0 := fact(~n - 1);< 348259#$Ultimate##0 ~n := #in~n; 348264#L25 assume ~n <= 0;#res := 1; 348258#factFINAL assume true; 348250#factEXIT >#66#return; 348256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348550#factFINAL assume true; 348535#factEXIT >#70#return; 347980#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 348175#$Ultimate##0 ~n := #in~n; 348174#L25 assume !(~n <= 0); 348092#L26 call #t~ret0 := fact(~n - 1);< 348151#$Ultimate##0 ~n := #in~n; 348527#L25 assume !(~n <= 0); 348075#L26 call #t~ret0 := fact(~n - 1);< 348099#$Ultimate##0 ~n := #in~n; 348698#L25 assume !(~n <= 0); 347847#L26 call #t~ret0 := fact(~n - 1);< 348156#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348135#factFINAL assume true; 348109#factEXIT >#66#return; 348115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349517#factFINAL assume true; 349515#factEXIT >#72#return; 347989#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 349600#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 349599#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 349598#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 349597#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 348573#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 348590#$Ultimate##0 ~n := #in~n; 348592#L25 assume !(~n <= 0); 348032#L26 call #t~ret0 := fact(~n - 1);< 348060#$Ultimate##0 ~n := #in~n; 348294#L25 assume !(~n <= 0); 348050#L26 call #t~ret0 := fact(~n - 1);< 348161#$Ultimate##0 ~n := #in~n; 348154#L25 assume !(~n <= 0); 348046#L26 call #t~ret0 := fact(~n - 1);< 348119#$Ultimate##0 ~n := #in~n; 348173#L25 assume !(~n <= 0); 348031#L26 call #t~ret0 := fact(~n - 1);< 348107#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348135#factFINAL assume true; 348109#factEXIT >#66#return; 348108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348102#factFINAL assume true; 348088#factEXIT >#66#return; 348054#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348063#factFINAL assume true; 348028#factEXIT >#66#return; 348055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348591#factFINAL assume true; 348555#factEXIT >#68#return; 347888#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 348010#$Ultimate##0 ~n := #in~n; 348340#L25 assume !(~n <= 0); 348037#L26 call #t~ret0 := fact(~n - 1);< 348065#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348084#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349564#factFINAL assume true; 349527#factEXIT >#70#return; 347971#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 348375#$Ultimate##0 ~n := #in~n; 348328#L25 assume !(~n <= 0); 348071#L26 call #t~ret0 := fact(~n - 1);< 348101#$Ultimate##0 ~n := #in~n; 348652#L25 assume !(~n <= 0); 348068#L26 call #t~ret0 := fact(~n - 1);< 348158#$Ultimate##0 ~n := #in~n; 348698#L25 assume !(~n <= 0); 347847#L26 call #t~ret0 := fact(~n - 1);< 348156#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348135#factFINAL assume true; 348109#factEXIT >#66#return; 348115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349517#factFINAL assume true; 349515#factEXIT >#72#return; 348002#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 349596#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 349595#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 349594#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 349593#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 348568#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 348590#$Ultimate##0 ~n := #in~n; 348592#L25 assume !(~n <= 0); 348032#L26 call #t~ret0 := fact(~n - 1);< 348060#$Ultimate##0 ~n := #in~n; 348294#L25 assume !(~n <= 0); 348050#L26 call #t~ret0 := fact(~n - 1);< 348161#$Ultimate##0 ~n := #in~n; 348154#L25 assume !(~n <= 0); 348046#L26 call #t~ret0 := fact(~n - 1);< 348119#$Ultimate##0 ~n := #in~n; 348173#L25 assume !(~n <= 0); 348031#L26 call #t~ret0 := fact(~n - 1);< 348107#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348135#factFINAL assume true; 348109#factEXIT >#66#return; 348108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348102#factFINAL assume true; 348088#factEXIT >#66#return; 348054#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348063#factFINAL assume true; 348028#factEXIT >#66#return; 348055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348591#factFINAL assume true; 348555#factEXIT >#68#return; 347932#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 348010#$Ultimate##0 ~n := #in~n; 348340#L25 assume !(~n <= 0); 348037#L26 call #t~ret0 := fact(~n - 1);< 348065#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348135#factFINAL assume true; 348109#factEXIT >#66#return; 348115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349517#factFINAL assume true; 349515#factEXIT >#70#return; 347910#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 348330#$Ultimate##0 ~n := #in~n; 348329#L25 assume !(~n <= 0); 348079#L26 call #t~ret0 := fact(~n - 1);< 348129#$Ultimate##0 ~n := #in~n; 348264#L25 assume ~n <= 0;#res := 1; 348258#factFINAL assume true; 348250#factEXIT >#66#return; 348256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348550#factFINAL assume true; 348535#factEXIT >#72#return; 348543#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 349588#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 349586#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 349584#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 349583#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 348577#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 348590#$Ultimate##0 ~n := #in~n; 348592#L25 assume !(~n <= 0); 348032#L26 call #t~ret0 := fact(~n - 1);< 348060#$Ultimate##0 ~n := #in~n; 348294#L25 assume !(~n <= 0); 348050#L26 call #t~ret0 := fact(~n - 1);< 348161#$Ultimate##0 ~n := #in~n; 348154#L25 assume !(~n <= 0); 348046#L26 call #t~ret0 := fact(~n - 1);< 348119#$Ultimate##0 ~n := #in~n; 348173#L25 assume !(~n <= 0); 348031#L26 call #t~ret0 := fact(~n - 1);< 348107#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348135#factFINAL assume true; 348109#factEXIT >#66#return; 348108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348102#factFINAL assume true; 348088#factEXIT >#66#return; 348054#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348063#factFINAL assume true; 348028#factEXIT >#66#return; 348055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348591#factFINAL assume true; 348555#factEXIT >#68#return; 347898#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 348010#$Ultimate##0 ~n := #in~n; 348340#L25 assume !(~n <= 0); 348037#L26 call #t~ret0 := fact(~n - 1);< 348065#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348135#factFINAL assume true; 348109#factEXIT >#66#return; 348108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348102#factFINAL assume true; 348088#factEXIT >#66#return; 348026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348027#factFINAL assume true; 347960#factEXIT >#70#return; 347913#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 348330#$Ultimate##0 ~n := #in~n; 348329#L25 assume ~n <= 0;#res := 1; 347886#factFINAL assume true; 347941#factEXIT >#72#return; 347823#L30-3 [2023-02-18 08:57:01,950 INFO L750 eck$LassoCheckResult]: Loop: 347823#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 347824#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 347843#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 350757#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 347833#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 347834#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 349833#$Ultimate##0 ~n := #in~n; 349882#L25 assume !(~n <= 0); 349701#L26 call #t~ret0 := fact(~n - 1);< 349835#$Ultimate##0 ~n := #in~n; 349899#L25 assume !(~n <= 0); 349697#L26 call #t~ret0 := fact(~n - 1);< 349776#$Ultimate##0 ~n := #in~n; 349901#L25 assume !(~n <= 0); 349700#L26 call #t~ret0 := fact(~n - 1);< 349847#$Ultimate##0 ~n := #in~n; 349848#L25 assume !(~n <= 0); 349704#L26 call #t~ret0 := fact(~n - 1);< 349774#$Ultimate##0 ~n := #in~n; 349800#L25 assume !(~n <= 0); 349699#L26 call #t~ret0 := fact(~n - 1);< 349961#$Ultimate##0 ~n := #in~n; 349927#L25 assume ~n <= 0;#res := 1; 349969#factFINAL assume true; 349960#factEXIT >#66#return; 349959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349768#factFINAL assume true; 349771#factEXIT >#66#return; 349795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349892#factFINAL assume true; 349886#factEXIT >#66#return; 349889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349984#factFINAL assume true; 349731#factEXIT >#66#return; 349706#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349775#factFINAL assume true; 349695#factEXIT >#66#return; 349707#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349832#factFINAL assume true; 349821#factEXIT >#74#return; 349816#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 349831#$Ultimate##0 ~n := #in~n; 349898#L25 assume !(~n <= 0); 349733#L26 call #t~ret0 := fact(~n - 1);< 349737#$Ultimate##0 ~n := #in~n; 349928#L25 assume !(~n <= 0); 349887#L26 call #t~ret0 := fact(~n - 1);< 349925#$Ultimate##0 ~n := #in~n; 349926#L25 assume !(~n <= 0); 347815#L26 call #t~ret0 := fact(~n - 1);< 349902#$Ultimate##0 ~n := #in~n; 347845#L25 assume !(~n <= 0); 347812#L26 call #t~ret0 := fact(~n - 1);< 347814#$Ultimate##0 ~n := #in~n; 349927#L25 assume ~n <= 0;#res := 1; 349969#factFINAL assume true; 349960#factEXIT >#66#return; 349959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349768#factFINAL assume true; 349771#factEXIT >#66#return; 349795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349892#factFINAL assume true; 349886#factEXIT >#66#return; 349889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349984#factFINAL assume true; 349731#factEXIT >#66#return; 349735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349830#factFINAL assume true; 349815#factEXIT >#76#return; 349639#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 347874#$Ultimate##0 ~n := #in~n; 349782#L25 assume !(~n <= 0); 349668#L26 call #t~ret0 := fact(~n - 1);< 349677#$Ultimate##0 ~n := #in~n; 349810#L25 assume ~n <= 0;#res := 1; 349801#factFINAL assume true; 349663#factEXIT >#66#return; 349659#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349660#factFINAL assume true; 349638#factEXIT >#78#return; 349636#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 349634#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 349632#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 349630#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 349628#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 349626#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 349625#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 349624#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 348297#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 347804#$Ultimate##0 ~n := #in~n; 348606#L25 assume !(~n <= 0); 348033#L26 call #t~ret0 := fact(~n - 1);< 348060#$Ultimate##0 ~n := #in~n; 348294#L25 assume !(~n <= 0); 348050#L26 call #t~ret0 := fact(~n - 1);< 348161#$Ultimate##0 ~n := #in~n; 348154#L25 assume !(~n <= 0); 348046#L26 call #t~ret0 := fact(~n - 1);< 348119#$Ultimate##0 ~n := #in~n; 348173#L25 assume !(~n <= 0); 348031#L26 call #t~ret0 := fact(~n - 1);< 348107#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348135#factFINAL assume true; 348109#factEXIT >#66#return; 348108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348102#factFINAL assume true; 348088#factEXIT >#66#return; 348054#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348063#factFINAL assume true; 348028#factEXIT >#66#return; 348056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348644#factFINAL assume true; 348643#factEXIT >#68#return; 348636#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 348638#$Ultimate##0 ~n := #in~n; 348640#L25 assume ~n <= 0;#res := 1; 348639#factFINAL assume true; 348631#factEXIT >#70#return; 348597#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 348615#$Ultimate##0 ~n := #in~n; 348595#L25 assume !(~n <= 0); 348049#L26 call #t~ret0 := fact(~n - 1);< 348060#$Ultimate##0 ~n := #in~n; 348294#L25 assume !(~n <= 0); 348050#L26 call #t~ret0 := fact(~n - 1);< 348161#$Ultimate##0 ~n := #in~n; 348154#L25 assume !(~n <= 0); 348046#L26 call #t~ret0 := fact(~n - 1);< 348119#$Ultimate##0 ~n := #in~n; 348173#L25 assume !(~n <= 0); 348031#L26 call #t~ret0 := fact(~n - 1);< 348107#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348135#factFINAL assume true; 348109#factEXIT >#66#return; 348108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348102#factFINAL assume true; 348088#factEXIT >#66#return; 348054#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348063#factFINAL assume true; 348028#factEXIT >#66#return; 348059#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348628#factFINAL assume true; 348622#factEXIT >#72#return; 348626#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 349612#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 349610#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 349608#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 349606#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 348559#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 348590#$Ultimate##0 ~n := #in~n; 348592#L25 assume !(~n <= 0); 348032#L26 call #t~ret0 := fact(~n - 1);< 348060#$Ultimate##0 ~n := #in~n; 348294#L25 assume !(~n <= 0); 348050#L26 call #t~ret0 := fact(~n - 1);< 348161#$Ultimate##0 ~n := #in~n; 348154#L25 assume !(~n <= 0); 348046#L26 call #t~ret0 := fact(~n - 1);< 348119#$Ultimate##0 ~n := #in~n; 348173#L25 assume !(~n <= 0); 348031#L26 call #t~ret0 := fact(~n - 1);< 348107#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348135#factFINAL assume true; 348109#factEXIT >#66#return; 348108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348102#factFINAL assume true; 348088#factEXIT >#66#return; 348054#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348063#factFINAL assume true; 348028#factEXIT >#66#return; 348055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348591#factFINAL assume true; 348555#factEXIT >#68#return; 347937#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 347945#$Ultimate##0 ~n := #in~n; 348553#L25 assume !(~n <= 0); 348253#L26 call #t~ret0 := fact(~n - 1);< 348259#$Ultimate##0 ~n := #in~n; 348264#L25 assume ~n <= 0;#res := 1; 348258#factFINAL assume true; 348250#factEXIT >#66#return; 348256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348550#factFINAL assume true; 348535#factEXIT >#70#return; 347963#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 348022#$Ultimate##0 ~n := #in~n; 350156#L25 assume !(~n <= 0); 348089#L26 call #t~ret0 := fact(~n - 1);< 348103#$Ultimate##0 ~n := #in~n; 350741#L25 assume !(~n <= 0); 348110#L26 call #t~ret0 := fact(~n - 1);< 348118#$Ultimate##0 ~n := #in~n; 350953#L25 assume !(~n <= 0); 347848#L26 call #t~ret0 := fact(~n - 1);< 347867#$Ultimate##0 ~n := #in~n; 347846#L25 assume !(~n <= 0); 347849#L26 call #t~ret0 := fact(~n - 1);< 348157#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348135#factFINAL assume true; 348109#factEXIT >#66#return; 348108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348102#factFINAL assume true; 348088#factEXIT >#66#return; 348026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348027#factFINAL assume true; 347960#factEXIT >#72#return; 347989#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 349600#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 349599#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 349598#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 349597#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 348573#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 348590#$Ultimate##0 ~n := #in~n; 348592#L25 assume !(~n <= 0); 348032#L26 call #t~ret0 := fact(~n - 1);< 348060#$Ultimate##0 ~n := #in~n; 348294#L25 assume !(~n <= 0); 348050#L26 call #t~ret0 := fact(~n - 1);< 348161#$Ultimate##0 ~n := #in~n; 348154#L25 assume !(~n <= 0); 348046#L26 call #t~ret0 := fact(~n - 1);< 348119#$Ultimate##0 ~n := #in~n; 348173#L25 assume !(~n <= 0); 348031#L26 call #t~ret0 := fact(~n - 1);< 348107#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348135#factFINAL assume true; 348109#factEXIT >#66#return; 348108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348102#factFINAL assume true; 348088#factEXIT >#66#return; 348054#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348063#factFINAL assume true; 348028#factEXIT >#66#return; 348055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348591#factFINAL assume true; 348555#factEXIT >#68#return; 347888#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 348010#$Ultimate##0 ~n := #in~n; 348340#L25 assume !(~n <= 0); 348037#L26 call #t~ret0 := fact(~n - 1);< 348065#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348084#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349564#factFINAL assume true; 349527#factEXIT >#70#return; 347971#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 348375#$Ultimate##0 ~n := #in~n; 348328#L25 assume !(~n <= 0); 348071#L26 call #t~ret0 := fact(~n - 1);< 348101#$Ultimate##0 ~n := #in~n; 348652#L25 assume !(~n <= 0); 348068#L26 call #t~ret0 := fact(~n - 1);< 348158#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348084#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349564#factFINAL assume true; 349527#factEXIT >#72#return; 348002#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 349596#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 349595#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 349594#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 349593#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 348568#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 348590#$Ultimate##0 ~n := #in~n; 348592#L25 assume !(~n <= 0); 348032#L26 call #t~ret0 := fact(~n - 1);< 348060#$Ultimate##0 ~n := #in~n; 348294#L25 assume !(~n <= 0); 348050#L26 call #t~ret0 := fact(~n - 1);< 348161#$Ultimate##0 ~n := #in~n; 348154#L25 assume !(~n <= 0); 348046#L26 call #t~ret0 := fact(~n - 1);< 348119#$Ultimate##0 ~n := #in~n; 348173#L25 assume !(~n <= 0); 348031#L26 call #t~ret0 := fact(~n - 1);< 348107#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348135#factFINAL assume true; 348109#factEXIT >#66#return; 348108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348102#factFINAL assume true; 348088#factEXIT >#66#return; 348054#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348063#factFINAL assume true; 348028#factEXIT >#66#return; 348055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348591#factFINAL assume true; 348555#factEXIT >#68#return; 347932#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 348010#$Ultimate##0 ~n := #in~n; 348340#L25 assume !(~n <= 0); 348037#L26 call #t~ret0 := fact(~n - 1);< 348065#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348135#factFINAL assume true; 348109#factEXIT >#66#return; 348115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 349517#factFINAL assume true; 349515#factEXIT >#70#return; 347910#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 348330#$Ultimate##0 ~n := #in~n; 348329#L25 assume !(~n <= 0); 348079#L26 call #t~ret0 := fact(~n - 1);< 348129#$Ultimate##0 ~n := #in~n; 348264#L25 assume ~n <= 0;#res := 1; 348258#factFINAL assume true; 348250#factEXIT >#66#return; 348256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348550#factFINAL assume true; 348535#factEXIT >#72#return; 348543#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 349588#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 349586#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 349584#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 349583#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 348577#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 348590#$Ultimate##0 ~n := #in~n; 348592#L25 assume !(~n <= 0); 348032#L26 call #t~ret0 := fact(~n - 1);< 348060#$Ultimate##0 ~n := #in~n; 348294#L25 assume !(~n <= 0); 348050#L26 call #t~ret0 := fact(~n - 1);< 348161#$Ultimate##0 ~n := #in~n; 348154#L25 assume !(~n <= 0); 348046#L26 call #t~ret0 := fact(~n - 1);< 348119#$Ultimate##0 ~n := #in~n; 348173#L25 assume !(~n <= 0); 348031#L26 call #t~ret0 := fact(~n - 1);< 348107#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348135#factFINAL assume true; 348109#factEXIT >#66#return; 348108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348102#factFINAL assume true; 348088#factEXIT >#66#return; 348054#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348063#factFINAL assume true; 348028#factEXIT >#66#return; 348055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348591#factFINAL assume true; 348555#factEXIT >#68#return; 347898#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 348010#$Ultimate##0 ~n := #in~n; 348340#L25 assume !(~n <= 0); 348037#L26 call #t~ret0 := fact(~n - 1);< 348065#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348179#L25 assume !(~n <= 0); 348051#L26 call #t~ret0 := fact(~n - 1);< 348159#$Ultimate##0 ~n := #in~n; 348191#L25 assume ~n <= 0;#res := 1; 348172#factFINAL assume true; 348155#factEXIT >#66#return; 348152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348120#factFINAL assume true; 348067#factEXIT >#66#return; 348081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348135#factFINAL assume true; 348109#factEXIT >#66#return; 348108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348102#factFINAL assume true; 348088#factEXIT >#66#return; 348026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 348027#factFINAL assume true; 347960#factEXIT >#70#return; 347913#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 348330#$Ultimate##0 ~n := #in~n; 348329#L25 assume ~n <= 0;#res := 1; 347886#factFINAL assume true; 347941#factEXIT >#72#return; 347823#L30-3 [2023-02-18 08:57:01,950 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:01,950 INFO L85 PathProgramCache]: Analyzing trace with hash 1162603421, now seen corresponding path program 54 times [2023-02-18 08:57:01,951 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:01,951 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [738547860] [2023-02-18 08:57:01,951 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:01,951 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:01,971 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:01,972 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1849235286] [2023-02-18 08:57:01,972 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:57:01,972 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:01,972 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:01,979 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-18 08:57:01,980 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-18 08:57:02,380 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 17 check-sat command(s) [2023-02-18 08:57:02,380 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:02,384 INFO L263 TraceCheckSpWp]: Trace formula consists of 979 conjuncts, 20 conjunts are in the unsatisfiable core [2023-02-18 08:57:02,388 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:02,438 INFO L134 CoverageAnalysis]: Checked inductivity of 51287 backedges. 2127 proven. 343 refuted. 0 times theorem prover too weak. 48817 trivial. 0 not checked. [2023-02-18 08:57:02,438 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:02,541 INFO L134 CoverageAnalysis]: Checked inductivity of 51287 backedges. 2127 proven. 347 refuted. 0 times theorem prover too weak. 48813 trivial. 0 not checked. [2023-02-18 08:57:02,541 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:02,541 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [738547860] [2023-02-18 08:57:02,541 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:02,541 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1849235286] [2023-02-18 08:57:02,541 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1849235286] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:02,541 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:02,541 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 14] total 17 [2023-02-18 08:57:02,542 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1722209140] [2023-02-18 08:57:02,542 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:02,542 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:57:02,542 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:02,542 INFO L85 PathProgramCache]: Analyzing trace with hash -1606106986, now seen corresponding path program 54 times [2023-02-18 08:57:02,542 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:02,542 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [538076427] [2023-02-18 08:57:02,543 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:02,543 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:02,552 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:02,552 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2021828774] [2023-02-18 08:57:02,552 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:57:02,552 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:02,552 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:02,555 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-18 08:57:02,556 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-18 08:57:02,982 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 19 check-sat command(s) [2023-02-18 08:57:02,982 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:02,986 INFO L263 TraceCheckSpWp]: Trace formula consists of 936 conjuncts, 31 conjunts are in the unsatisfiable core [2023-02-18 08:57:02,989 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:03,098 INFO L134 CoverageAnalysis]: Checked inductivity of 14393 backedges. 320 proven. 2094 refuted. 0 times theorem prover too weak. 11979 trivial. 0 not checked. [2023-02-18 08:57:03,099 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:03,369 INFO L134 CoverageAnalysis]: Checked inductivity of 14393 backedges. 311 proven. 2121 refuted. 0 times theorem prover too weak. 11961 trivial. 0 not checked. [2023-02-18 08:57:03,369 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:03,369 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [538076427] [2023-02-18 08:57:03,369 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:03,369 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2021828774] [2023-02-18 08:57:03,369 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2021828774] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:03,369 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:03,369 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 25] total 35 [2023-02-18 08:57:03,370 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1388338802] [2023-02-18 08:57:03,370 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:03,370 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:57:03,370 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:57:03,370 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 36 interpolants. [2023-02-18 08:57:03,371 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=170, Invalid=1090, Unknown=0, NotChecked=0, Total=1260 [2023-02-18 08:57:03,371 INFO L87 Difference]: Start difference. First operand 3186 states and 4530 transitions. cyclomatic complexity: 1375 Second operand has 36 states, 29 states have (on average 3.2758620689655173) internal successors, (95), 33 states have internal predecessors, (95), 23 states have call successors, (45), 1 states have call predecessors, (45), 8 states have return successors, (48), 21 states have call predecessors, (48), 23 states have call successors, (48) [2023-02-18 08:57:04,989 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:57:04,989 INFO L93 Difference]: Finished difference Result 4057 states and 5849 transitions. [2023-02-18 08:57:04,989 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4057 states and 5849 transitions. [2023-02-18 08:57:05,007 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 415 [2023-02-18 08:57:05,027 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4057 states to 3769 states and 5387 transitions. [2023-02-18 08:57:05,027 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 405 [2023-02-18 08:57:05,027 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 405 [2023-02-18 08:57:05,027 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3769 states and 5387 transitions. [2023-02-18 08:57:05,028 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:57:05,028 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3769 states and 5387 transitions. [2023-02-18 08:57:05,029 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3769 states and 5387 transitions. [2023-02-18 08:57:05,064 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3769 to 3270. [2023-02-18 08:57:05,066 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3270 states, 2062 states have (on average 1.061105722599418) internal successors, (2188), 2053 states have internal predecessors, (2188), 972 states have call successors, (988), 312 states have call predecessors, (988), 236 states have return successors, (1503), 904 states have call predecessors, (1503), 972 states have call successors, (1503) [2023-02-18 08:57:05,074 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3270 states to 3270 states and 4679 transitions. [2023-02-18 08:57:05,074 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3270 states and 4679 transitions. [2023-02-18 08:57:05,075 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 33 states. [2023-02-18 08:57:05,075 INFO L428 stractBuchiCegarLoop]: Abstraction has 3270 states and 4679 transitions. [2023-02-18 08:57:05,075 INFO L335 stractBuchiCegarLoop]: ======== Iteration 67 ============ [2023-02-18 08:57:05,075 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 3270 states and 4679 transitions. [2023-02-18 08:57:05,081 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 375 [2023-02-18 08:57:05,081 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:57:05,081 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:57:05,084 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [145, 145, 94, 94, 94, 94, 51, 17, 16, 11, 11, 11, 11, 11, 11, 11, 10, 10, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-18 08:57:05,084 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [93, 93, 72, 72, 72, 72, 21, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:57:05,084 INFO L748 eck$LassoCheckResult]: Stem: 363491#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 363441#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; 363442#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 363462#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; 363492#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 366278#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 366277#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 363439#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 363440#$Ultimate##0 ~n := #in~n; 366109#L25 assume ~n <= 0;#res := 1; 366108#factFINAL assume true; 366099#factEXIT >#68#return; 363485#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 363486#$Ultimate##0 ~n := #in~n; 366571#L25 assume ~n <= 0;#res := 1; 366187#factFINAL assume true; 366181#factEXIT >#70#return; 363413#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 363414#$Ultimate##0 ~n := #in~n; 366167#L25 assume ~n <= 0;#res := 1; 366165#factFINAL assume true; 366162#factEXIT >#72#return; 366160#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 366158#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 366157#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 366156#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 366154#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 366151#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 366152#$Ultimate##0 ~n := #in~n; 366174#L25 assume !(~n <= 0); 366172#L26 call #t~ret0 := fact(~n - 1);< 366173#$Ultimate##0 ~n := #in~n; 366176#L25 assume ~n <= 0;#res := 1; 366175#factFINAL assume true; 366171#factEXIT >#66#return; 366170#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 366169#factFINAL assume true; 366150#factEXIT >#74#return; 365910#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 365911#$Ultimate##0 ~n := #in~n; 365913#L25 assume ~n <= 0;#res := 1; 365912#factFINAL assume true; 365909#factEXIT >#76#return; 365907#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 365908#$Ultimate##0 ~n := #in~n; 365919#L25 assume !(~n <= 0); 365917#L26 call #t~ret0 := fact(~n - 1);< 365918#$Ultimate##0 ~n := #in~n; 365921#L25 assume ~n <= 0;#res := 1; 365920#factFINAL assume true; 365916#factEXIT >#66#return; 365915#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365914#factFINAL assume true; 365906#factEXIT >#78#return; 365904#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 365902#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 365901#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 365900#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 365899#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 365896#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 365897#$Ultimate##0 ~n := #in~n; 365974#L25 assume !(~n <= 0); 365937#L26 call #t~ret0 := fact(~n - 1);< 365942#$Ultimate##0 ~n := #in~n; 365953#L25 assume !(~n <= 0); 365939#L26 call #t~ret0 := fact(~n - 1);< 365952#$Ultimate##0 ~n := #in~n; 365956#L25 assume ~n <= 0;#res := 1; 365955#factFINAL assume true; 365951#factEXIT >#66#return; 365949#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365946#factFINAL assume true; 365936#factEXIT >#66#return; 365941#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365998#factFINAL assume true; 365895#factEXIT >#74#return; 365889#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 365890#$Ultimate##0 ~n := #in~n; 365931#L25 assume ~n <= 0;#res := 1; 365929#factFINAL assume true; 365888#factEXIT >#76#return; 365885#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 365886#$Ultimate##0 ~n := #in~n; 365944#L25 assume !(~n <= 0); 365938#L26 call #t~ret0 := fact(~n - 1);< 365942#$Ultimate##0 ~n := #in~n; 365953#L25 assume !(~n <= 0); 365939#L26 call #t~ret0 := fact(~n - 1);< 365952#$Ultimate##0 ~n := #in~n; 365956#L25 assume ~n <= 0;#res := 1; 365955#factFINAL assume true; 365951#factEXIT >#66#return; 365949#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365946#factFINAL assume true; 365936#factEXIT >#66#return; 365935#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365934#factFINAL assume true; 365884#factEXIT >#78#return; 365882#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 365881#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 365880#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 365879#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 365876#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 365873#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 365874#$Ultimate##0 ~n := #in~n; 365898#L25 assume !(~n <= 0); 365892#L26 call #t~ret0 := fact(~n - 1);< 365894#$Ultimate##0 ~n := #in~n; 365926#L25 assume !(~n <= 0); 365893#L26 call #t~ret0 := fact(~n - 1);< 365925#$Ultimate##0 ~n := #in~n; 365926#L25 assume !(~n <= 0); 365893#L26 call #t~ret0 := fact(~n - 1);< 365925#$Ultimate##0 ~n := #in~n; 365933#L25 assume ~n <= 0;#res := 1; 365932#factFINAL assume true; 365930#factEXIT >#66#return; 365928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365927#factFINAL assume true; 365924#factEXIT >#66#return; 365923#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365922#factFINAL assume true; 365891#factEXIT >#66#return; 365887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365883#factFINAL assume true; 365872#factEXIT >#74#return; 365869#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 365870#$Ultimate##0 ~n := #in~n; 365945#L25 assume ~n <= 0;#res := 1; 365943#factFINAL assume true; 365868#factEXIT >#76#return; 365034#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 365035#$Ultimate##0 ~n := #in~n; 365106#L25 assume !(~n <= 0); 365080#L26 call #t~ret0 := fact(~n - 1);< 365085#$Ultimate##0 ~n := #in~n; 365098#L25 assume !(~n <= 0); 365081#L26 call #t~ret0 := fact(~n - 1);< 365095#$Ultimate##0 ~n := #in~n; 365098#L25 assume !(~n <= 0); 365081#L26 call #t~ret0 := fact(~n - 1);< 365095#$Ultimate##0 ~n := #in~n; 365104#L25 assume ~n <= 0;#res := 1; 365103#factFINAL assume true; 365101#factEXIT >#66#return; 365100#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365099#factFINAL assume true; 365094#factEXIT >#66#return; 365092#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365088#factFINAL assume true; 365079#factEXIT >#66#return; 365083#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 366127#factFINAL assume true; 365033#factEXIT >#78#return; 365024#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 365023#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 365022#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 365021#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 365013#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 365011#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 365009#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 364268#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 364223#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 364229#$Ultimate##0 ~n := #in~n; 364261#L25 assume !(~n <= 0); 364249#L26 call #t~ret0 := fact(~n - 1);< 364260#$Ultimate##0 ~n := #in~n; 364311#L25 assume ~n <= 0;#res := 1; 365472#factFINAL assume true; 365465#factEXIT >#66#return; 365463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365461#factFINAL assume true; 365460#factEXIT >#68#return; 365459#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 364216#$Ultimate##0 ~n := #in~n; 365464#L25 assume ~n <= 0;#res := 1; 365462#factFINAL assume true; 365458#factEXIT >#70#return; 365040#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 365448#$Ultimate##0 ~n := #in~n; 365959#L25 assume !(~n <= 0); 364242#L26 call #t~ret0 := fact(~n - 1);< 365041#$Ultimate##0 ~n := #in~n; 364311#L25 assume ~n <= 0;#res := 1; 365472#factFINAL assume true; 365465#factEXIT >#66#return; 365471#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365950#factFINAL assume true; 365447#factEXIT >#72#return; 365445#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 365443#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 365441#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 365439#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 365437#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 365424#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 365430#$Ultimate##0 ~n := #in~n; 365436#L25 assume !(~n <= 0); 364241#L26 call #t~ret0 := fact(~n - 1);< 365041#$Ultimate##0 ~n := #in~n; 364311#L25 assume ~n <= 0;#res := 1; 365472#factFINAL assume true; 365465#factEXIT >#66#return; 365470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365767#factFINAL assume true; 365764#factEXIT >#68#return; 365361#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 365392#$Ultimate##0 ~n := #in~n; 365723#L25 assume !(~n <= 0); 364243#L26 call #t~ret0 := fact(~n - 1);< 365487#$Ultimate##0 ~n := #in~n; 364311#L25 assume ~n <= 0;#res := 1; 365472#factFINAL assume true; 365465#factEXIT >#66#return; 365468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365393#factFINAL assume true; 365378#factEXIT >#70#return; 365385#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 365419#$Ultimate##0 ~n := #in~n; 365857#L25 assume ~n <= 0;#res := 1; 365855#factFINAL assume true; 365414#factEXIT >#72#return; 365416#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 365790#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 365789#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 365783#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 365782#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 365314#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 365397#$Ultimate##0 ~n := #in~n; 365577#L25 assume !(~n <= 0); 364239#L26 call #t~ret0 := fact(~n - 1);< 364260#$Ultimate##0 ~n := #in~n; 365042#L25 assume !(~n <= 0); 364246#L26 call #t~ret0 := fact(~n - 1);< 364275#$Ultimate##0 ~n := #in~n; 365042#L25 assume !(~n <= 0); 364246#L26 call #t~ret0 := fact(~n - 1);< 364275#$Ultimate##0 ~n := #in~n; 364300#L25 assume ~n <= 0;#res := 1; 364298#factFINAL assume true; 364273#factEXIT >#66#return; 364271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 364262#factFINAL assume true; 364234#factEXIT >#66#return; 364256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365535#factFINAL assume true; 365525#factEXIT >#66#return; 365526#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365810#factFINAL assume true; 365400#factEXIT >#74#return; 364263#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 365398#$Ultimate##0 ~n := #in~n; 366125#L25 assume !(~n <= 0); 364251#L26 call #t~ret0 := fact(~n - 1);< 364266#$Ultimate##0 ~n := #in~n; 364426#L25 assume !(~n <= 0); 364238#L26 call #t~ret0 := fact(~n - 1);< 364302#$Ultimate##0 ~n := #in~n; 364300#L25 assume ~n <= 0;#res := 1; 364298#factFINAL assume true; 364273#factEXIT >#66#return; 364271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 364262#factFINAL assume true; 364234#factEXIT >#66#return; 364257#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365396#factFINAL assume true; 365353#factEXIT >#76#return; 365372#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 365395#$Ultimate##0 ~n := #in~n; 365724#L25 assume !(~n <= 0); 365466#L26 call #t~ret0 := fact(~n - 1);< 365478#$Ultimate##0 ~n := #in~n; 364311#L25 assume ~n <= 0;#res := 1; 365472#factFINAL assume true; 365465#factEXIT >#66#return; 365468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365393#factFINAL assume true; 365378#factEXIT >#78#return; 365384#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 365586#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 365585#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 365584#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 365583#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 365289#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 365187#$Ultimate##0 ~n := #in~n; 365338#L25 assume !(~n <= 0); 365195#L26 call #t~ret0 := fact(~n - 1);< 365265#$Ultimate##0 ~n := #in~n; 365205#L25 assume !(~n <= 0); 365192#L26 call #t~ret0 := fact(~n - 1);< 365203#$Ultimate##0 ~n := #in~n; 365205#L25 assume !(~n <= 0); 365192#L26 call #t~ret0 := fact(~n - 1);< 365203#$Ultimate##0 ~n := #in~n; 365349#L25 assume ~n <= 0;#res := 1; 365344#factFINAL assume true; 365329#factEXIT >#66#return; 365328#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365258#factFINAL assume true; 365252#factEXIT >#66#return; 365251#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365243#factFINAL assume true; 365230#factEXIT >#66#return; 365236#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365340#factFINAL assume true; 365279#factEXIT >#74#return; 365276#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 365277#$Ultimate##0 ~n := #in~n; 365413#L25 assume !(~n <= 0); 365231#L26 call #t~ret0 := fact(~n - 1);< 365405#$Ultimate##0 ~n := #in~n; 365240#L25 assume ~n <= 0;#res := 1; 365833#factFINAL assume true; 365401#factEXIT >#66#return; 365399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365346#factFINAL assume true; 365341#factEXIT >#76#return; 365225#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 365229#$Ultimate##0 ~n := #in~n; 365227#L25 assume !(~n <= 0); 365219#L26 call #t~ret0 := fact(~n - 1);< 365226#$Ultimate##0 ~n := #in~n; 365239#L25 assume !(~n <= 0); 365234#L26 call #t~ret0 := fact(~n - 1);< 365238#$Ultimate##0 ~n := #in~n; 365349#L25 assume ~n <= 0;#res := 1; 365344#factFINAL assume true; 365329#factEXIT >#66#return; 365328#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365258#factFINAL assume true; 365252#factEXIT >#66#return; 365255#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 366094#factFINAL assume true; 365564#factEXIT >#78#return; 365565#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 366590#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 366583#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 366436#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 366432#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 366429#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 366300#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 366129#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 364225#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 364229#$Ultimate##0 ~n := #in~n; 364261#L25 assume !(~n <= 0); 364249#L26 call #t~ret0 := fact(~n - 1);< 364260#$Ultimate##0 ~n := #in~n; 365042#L25 assume !(~n <= 0); 364246#L26 call #t~ret0 := fact(~n - 1);< 364275#$Ultimate##0 ~n := #in~n; 364300#L25 assume ~n <= 0;#res := 1; 364298#factFINAL assume true; 364273#factEXIT >#66#return; 364271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 364262#factFINAL assume true; 364234#factEXIT >#66#return; 364232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 364231#factFINAL assume true; 364221#factEXIT >#68#return; 364212#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 364217#$Ultimate##0 ~n := #in~n; 364417#L25 assume ~n <= 0;#res := 1; 364233#factFINAL assume true; 364211#factEXIT >#70#return; 363837#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 364209#$Ultimate##0 ~n := #in~n; 364654#L25 assume !(~n <= 0); 363810#L26 call #t~ret0 := fact(~n - 1);< 363822#$Ultimate##0 ~n := #in~n; 363882#L25 assume !(~n <= 0); 363852#L26 call #t~ret0 := fact(~n - 1);< 363853#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363819#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 364354#factFINAL assume true; 364205#factEXIT >#72#return; 364206#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 366044#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 366043#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 366042#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 366041#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 364181#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 364189#$Ultimate##0 ~n := #in~n; 364198#L25 assume !(~n <= 0); 363813#L26 call #t~ret0 := fact(~n - 1);< 363894#$Ultimate##0 ~n := #in~n; 363882#L25 assume !(~n <= 0); 363852#L26 call #t~ret0 := fact(~n - 1);< 363853#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363821#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 364192#factFINAL assume true; 364180#factEXIT >#68#return; 363910#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 363938#$Ultimate##0 ~n := #in~n; 364563#L25 assume !(~n <= 0); 363782#L26 call #t~ret0 := fact(~n - 1);< 363887#$Ultimate##0 ~n := #in~n; 363893#L25 assume ~n <= 0;#res := 1; 363886#factFINAL assume true; 363857#factEXIT >#66#return; 363863#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363973#factFINAL assume true; 363909#factEXIT >#70#return; 363911#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 363974#$Ultimate##0 ~n := #in~n; 364105#L25 assume !(~n <= 0); 363858#L26 call #t~ret0 := fact(~n - 1);< 363865#$Ultimate##0 ~n := #in~n; 363893#L25 assume ~n <= 0;#res := 1; 363886#factFINAL assume true; 363857#factEXIT >#66#return; 363863#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363973#factFINAL assume true; 363909#factEXIT >#72#return; 363930#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 366040#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 365153#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 365152#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 365151#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 364187#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 364189#$Ultimate##0 ~n := #in~n; 364198#L25 assume !(~n <= 0); 363813#L26 call #t~ret0 := fact(~n - 1);< 363894#$Ultimate##0 ~n := #in~n; 363882#L25 assume !(~n <= 0); 363852#L26 call #t~ret0 := fact(~n - 1);< 363853#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363821#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 364192#factFINAL assume true; 364180#factEXIT >#68#return; 363924#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 363938#$Ultimate##0 ~n := #in~n; 364563#L25 assume !(~n <= 0); 363782#L26 call #t~ret0 := fact(~n - 1);< 363887#$Ultimate##0 ~n := #in~n; 363884#L25 assume !(~n <= 0); 363809#L26 call #t~ret0 := fact(~n - 1);< 363855#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363817#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 364033#factFINAL assume true; 363992#factEXIT >#70#return; 363995#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 364177#$Ultimate##0 ~n := #in~n; 364332#L25 assume ~n <= 0;#res := 1; 364106#factFINAL assume true; 364173#factEXIT >#72#return; 364176#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 366029#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 366028#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 366024#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 366015#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 364159#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 365850#$Ultimate##0 ~n := #in~n; 366068#L25 assume !(~n <= 0); 365751#L26 call #t~ret0 := fact(~n - 1);< 365788#$Ultimate##0 ~n := #in~n; 365865#L25 assume !(~n <= 0); 365752#L26 call #t~ret0 := fact(~n - 1);< 365863#$Ultimate##0 ~n := #in~n; 365865#L25 assume !(~n <= 0); 365752#L26 call #t~ret0 := fact(~n - 1);< 365863#$Ultimate##0 ~n := #in~n; 365958#L25 assume ~n <= 0;#res := 1; 365957#factFINAL assume true; 365860#factEXIT >#66#return; 365859#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365827#factFINAL assume true; 365794#factEXIT >#66#return; 365792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365784#factFINAL assume true; 365770#factEXIT >#66#return; 365777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365853#factFINAL assume true; 365847#factEXIT >#74#return; 365828#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 366012#$Ultimate##0 ~n := #in~n; 366065#L25 assume !(~n <= 0); 365775#L26 call #t~ret0 := fact(~n - 1);< 365786#$Ultimate##0 ~n := #in~n; 365864#L25 assume !(~n <= 0); 365796#L26 call #t~ret0 := fact(~n - 1);< 365802#$Ultimate##0 ~n := #in~n; 365947#L25 assume !(~n <= 0); 365861#L26 call #t~ret0 := fact(~n - 1);< 365862#$Ultimate##0 ~n := #in~n; 365958#L25 assume ~n <= 0;#res := 1; 365957#factFINAL assume true; 365860#factEXIT >#66#return; 365859#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365827#factFINAL assume true; 365794#factEXIT >#66#return; 365792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365784#factFINAL assume true; 365770#factEXIT >#66#return; 365777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365853#factFINAL assume true; 365847#factEXIT >#76#return; 365841#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 366009#$Ultimate##0 ~n := #in~n; 366026#L25 assume !(~n <= 0); 366017#L26 call #t~ret0 := fact(~n - 1);< 366022#$Ultimate##0 ~n := #in~n; 365948#L25 assume ~n <= 0;#res := 1; 366025#factFINAL assume true; 366016#factEXIT >#66#return; 366014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 366013#factFINAL assume true; 365837#factEXIT >#78#return; 363443#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 363444#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 363463#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 363483#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 363460#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 363452#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 363453#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 364680#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 364421#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 364425#$Ultimate##0 ~n := #in~n; 365105#L25 assume !(~n <= 0); 363678#L26 call #t~ret0 := fact(~n - 1);< 363841#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363774#factFINAL assume true; 363713#factEXIT >#66#return; 363695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363707#factFINAL assume true; 363676#factEXIT >#66#return; 363696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 364462#factFINAL assume true; 364418#factEXIT >#68#return; 364096#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 364102#$Ultimate##0 ~n := #in~n; 364114#L25 assume ~n <= 0;#res := 1; 364113#factFINAL assume true; 364093#factEXIT >#70#return; 364079#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 364092#$Ultimate##0 ~n := #in~n; 364139#L25 assume !(~n <= 0); 363690#L26 call #t~ret0 := fact(~n - 1);< 363703#$Ultimate##0 ~n := #in~n; 366650#L25 assume !(~n <= 0); 363479#L26 call #t~ret0 := fact(~n - 1);< 363487#$Ultimate##0 ~n := #in~n; 363478#L25 assume !(~n <= 0); 363480#L26 call #t~ret0 := fact(~n - 1);< 363795#$Ultimate##0 ~n := #in~n; 366274#L25 assume !(~n <= 0); 363679#L26 call #t~ret0 := fact(~n - 1);< 363801#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363774#factFINAL assume true; 363713#factEXIT >#66#return; 363695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363707#factFINAL assume true; 363676#factEXIT >#66#return; 363701#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 364115#factFINAL assume true; 364076#factEXIT >#72#return; 364031#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 364030#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 364023#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 364011#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 364009#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 363735#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 363773#$Ultimate##0 ~n := #in~n; 364461#L25 assume !(~n <= 0); 363685#L26 call #t~ret0 := fact(~n - 1);< 363703#$Ultimate##0 ~n := #in~n; 366650#L25 assume !(~n <= 0); 363479#L26 call #t~ret0 := fact(~n - 1);< 363487#$Ultimate##0 ~n := #in~n; 363478#L25 assume !(~n <= 0); 363480#L26 call #t~ret0 := fact(~n - 1);< 363795#$Ultimate##0 ~n := #in~n; 366274#L25 assume !(~n <= 0); 363679#L26 call #t~ret0 := fact(~n - 1);< 363801#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363774#factFINAL assume true; 363713#factEXIT >#66#return; 363695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363707#factFINAL assume true; 363676#factEXIT >#66#return; 363699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363775#factFINAL assume true; 363732#factEXIT >#68#return; 363511#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 363843#$Ultimate##0 ~n := #in~n; 363866#L25 assume !(~n <= 0); 363859#L26 call #t~ret0 := fact(~n - 1);< 363865#$Ultimate##0 ~n := #in~n; 363893#L25 assume ~n <= 0;#res := 1; 363886#factFINAL assume true; 363857#factEXIT >#66#return; 363848#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363842#factFINAL assume true; 363823#factEXIT >#70#return; 363622#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 363850#$Ultimate##0 ~n := #in~n; 363877#L25 assume !(~n <= 0); 363723#L26 call #t~ret0 := fact(~n - 1);< 363802#$Ultimate##0 ~n := #in~n; 363874#L25 assume !(~n <= 0); 363786#L26 call #t~ret0 := fact(~n - 1);< 363798#$Ultimate##0 ~n := #in~n; 363884#L25 assume !(~n <= 0); 363809#L26 call #t~ret0 := fact(~n - 1);< 363855#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363849#factFINAL assume true; 363846#factEXIT >#72#return; 363652#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 363972#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 363970#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 363968#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 363907#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 363733#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 363773#$Ultimate##0 ~n := #in~n; 364461#L25 assume !(~n <= 0); 363685#L26 call #t~ret0 := fact(~n - 1);< 363703#$Ultimate##0 ~n := #in~n; 366650#L25 assume !(~n <= 0); 363479#L26 call #t~ret0 := fact(~n - 1);< 363487#$Ultimate##0 ~n := #in~n; 363478#L25 assume !(~n <= 0); 363480#L26 call #t~ret0 := fact(~n - 1);< 363795#$Ultimate##0 ~n := #in~n; 366274#L25 assume !(~n <= 0); 363679#L26 call #t~ret0 := fact(~n - 1);< 363801#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363774#factFINAL assume true; 363713#factEXIT >#66#return; 363695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363707#factFINAL assume true; 363676#factEXIT >#66#return; 363699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363775#factFINAL assume true; 363732#factEXIT >#68#return; 363545#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 363569#$Ultimate##0 ~n := #in~n; 363891#L25 assume !(~n <= 0); 363691#L26 call #t~ret0 := fact(~n - 1);< 363841#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363880#factFINAL assume true; 363875#factEXIT >#70#return; 363595#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 363876#$Ultimate##0 ~n := #in~n; 363878#L25 assume !(~n <= 0); 363717#L26 call #t~ret0 := fact(~n - 1);< 363731#$Ultimate##0 ~n := #in~n; 363885#L25 assume !(~n <= 0); 363785#L26 call #t~ret0 := fact(~n - 1);< 363856#$Ultimate##0 ~n := #in~n; 363884#L25 assume !(~n <= 0); 363809#L26 call #t~ret0 := fact(~n - 1);< 363855#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363849#factFINAL assume true; 363846#factEXIT >#72#return; 363633#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 363873#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 363871#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 363869#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 363868#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 363749#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 363773#$Ultimate##0 ~n := #in~n; 364461#L25 assume !(~n <= 0); 363685#L26 call #t~ret0 := fact(~n - 1);< 363703#$Ultimate##0 ~n := #in~n; 366650#L25 assume !(~n <= 0); 363479#L26 call #t~ret0 := fact(~n - 1);< 363487#$Ultimate##0 ~n := #in~n; 363478#L25 assume !(~n <= 0); 363480#L26 call #t~ret0 := fact(~n - 1);< 363795#$Ultimate##0 ~n := #in~n; 366274#L25 assume !(~n <= 0); 363679#L26 call #t~ret0 := fact(~n - 1);< 363801#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363774#factFINAL assume true; 363713#factEXIT >#66#return; 363695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363707#factFINAL assume true; 363676#factEXIT >#66#return; 363699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363775#factFINAL assume true; 363732#factEXIT >#68#return; 363548#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 363569#$Ultimate##0 ~n := #in~n; 363891#L25 assume !(~n <= 0); 363691#L26 call #t~ret0 := fact(~n - 1);< 363841#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363849#factFINAL assume true; 363846#factEXIT >#70#return; 363550#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 363669#$Ultimate##0 ~n := #in~n; 363888#L25 assume !(~n <= 0); 363722#L26 call #t~ret0 := fact(~n - 1);< 363864#$Ultimate##0 ~n := #in~n; 363893#L25 assume ~n <= 0;#res := 1; 363886#factFINAL assume true; 363857#factEXIT >#66#return; 363848#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363842#factFINAL assume true; 363823#factEXIT >#72#return; 363805#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 363803#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 363796#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 363778#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 363776#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 363763#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 363773#$Ultimate##0 ~n := #in~n; 364461#L25 assume !(~n <= 0); 363685#L26 call #t~ret0 := fact(~n - 1);< 363703#$Ultimate##0 ~n := #in~n; 366650#L25 assume !(~n <= 0); 363479#L26 call #t~ret0 := fact(~n - 1);< 363487#$Ultimate##0 ~n := #in~n; 363478#L25 assume !(~n <= 0); 363480#L26 call #t~ret0 := fact(~n - 1);< 363795#$Ultimate##0 ~n := #in~n; 366274#L25 assume !(~n <= 0); 363679#L26 call #t~ret0 := fact(~n - 1);< 363801#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363774#factFINAL assume true; 363713#factEXIT >#66#return; 363695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363707#factFINAL assume true; 363676#factEXIT >#66#return; 363699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363775#factFINAL assume true; 363732#factEXIT >#68#return; 363497#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 363569#$Ultimate##0 ~n := #in~n; 363891#L25 assume !(~n <= 0); 363691#L26 call #t~ret0 := fact(~n - 1);< 363841#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363774#factFINAL assume true; 363713#factEXIT >#66#return; 363674#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363675#factFINAL assume true; 363591#factEXIT >#70#return; 363522#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 363669#$Ultimate##0 ~n := #in~n; 363888#L25 assume ~n <= 0;#res := 1; 363562#factFINAL assume true; 363496#factEXIT >#72#return; 363456#L30-3 [2023-02-18 08:57:05,084 INFO L750 eck$LassoCheckResult]: Loop: 363456#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 363457#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 366071#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 366070#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 366069#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 365677#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 365689#$Ultimate##0 ~n := #in~n; 365808#L25 assume !(~n <= 0); 365762#L26 call #t~ret0 := fact(~n - 1);< 363449#$Ultimate##0 ~n := #in~n; 366073#L25 assume !(~n <= 0); 365744#L26 call #t~ret0 := fact(~n - 1);< 365761#$Ultimate##0 ~n := #in~n; 366072#L25 assume !(~n <= 0); 365739#L26 call #t~ret0 := fact(~n - 1);< 365779#$Ultimate##0 ~n := #in~n; 366078#L25 assume !(~n <= 0); 365749#L26 call #t~ret0 := fact(~n - 1);< 365803#$Ultimate##0 ~n := #in~n; 365865#L25 assume !(~n <= 0); 365752#L26 call #t~ret0 := fact(~n - 1);< 365863#$Ultimate##0 ~n := #in~n; 365958#L25 assume ~n <= 0;#res := 1; 365957#factFINAL assume true; 365860#factEXIT >#66#return; 365859#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365827#factFINAL assume true; 365794#factEXIT >#66#return; 365792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365784#factFINAL assume true; 365770#factEXIT >#66#return; 365768#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365759#factFINAL assume true; 365738#factEXIT >#66#return; 365754#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 366077#factFINAL assume true; 365804#factEXIT >#66#return; 365793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365728#factFINAL assume true; 365676#factEXIT >#74#return; 365685#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 365735#$Ultimate##0 ~n := #in~n; 366051#L25 assume !(~n <= 0); 365745#L26 call #t~ret0 := fact(~n - 1);< 365758#$Ultimate##0 ~n := #in~n; 365781#L25 assume !(~n <= 0); 365773#L26 call #t~ret0 := fact(~n - 1);< 365780#$Ultimate##0 ~n := #in~n; 366053#L25 assume !(~n <= 0); 365795#L26 call #t~ret0 := fact(~n - 1);< 365802#$Ultimate##0 ~n := #in~n; 365947#L25 assume !(~n <= 0); 365861#L26 call #t~ret0 := fact(~n - 1);< 365862#$Ultimate##0 ~n := #in~n; 365958#L25 assume ~n <= 0;#res := 1; 365957#factFINAL assume true; 365860#factEXIT >#66#return; 365859#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365827#factFINAL assume true; 365794#factEXIT >#66#return; 365792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365784#factFINAL assume true; 365770#factEXIT >#66#return; 365768#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365759#factFINAL assume true; 365738#factEXIT >#66#return; 365737#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 365734#factFINAL assume true; 365729#factEXIT >#76#return; 365624#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 365675#$Ultimate##0 ~n := #in~n; 366047#L25 assume !(~n <= 0); 366019#L26 call #t~ret0 := fact(~n - 1);< 366022#$Ultimate##0 ~n := #in~n; 365948#L25 assume ~n <= 0;#res := 1; 366025#factFINAL assume true; 366016#factEXIT >#66#return; 366021#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 366085#factFINAL assume true; 365622#factEXIT >#78#return; 365625#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 366356#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 366355#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 366353#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 366348#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 366347#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 366301#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 363465#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 363466#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 363438#$Ultimate##0 ~n := #in~n; 366299#L25 assume !(~n <= 0); 363680#L26 call #t~ret0 := fact(~n - 1);< 363703#$Ultimate##0 ~n := #in~n; 366650#L25 assume !(~n <= 0); 363479#L26 call #t~ret0 := fact(~n - 1);< 363487#$Ultimate##0 ~n := #in~n; 363478#L25 assume !(~n <= 0); 363480#L26 call #t~ret0 := fact(~n - 1);< 363795#$Ultimate##0 ~n := #in~n; 366274#L25 assume !(~n <= 0); 363679#L26 call #t~ret0 := fact(~n - 1);< 363801#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363774#factFINAL assume true; 363713#factEXIT >#66#return; 363695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363707#factFINAL assume true; 363676#factEXIT >#66#return; 363696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 364462#factFINAL assume true; 364418#factEXIT >#68#return; 364094#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 364102#$Ultimate##0 ~n := #in~n; 364114#L25 assume ~n <= 0;#res := 1; 364113#factFINAL assume true; 364093#factEXIT >#70#return; 364084#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 364092#$Ultimate##0 ~n := #in~n; 364139#L25 assume !(~n <= 0); 363690#L26 call #t~ret0 := fact(~n - 1);< 363703#$Ultimate##0 ~n := #in~n; 366650#L25 assume !(~n <= 0); 363479#L26 call #t~ret0 := fact(~n - 1);< 363487#$Ultimate##0 ~n := #in~n; 363478#L25 assume !(~n <= 0); 363480#L26 call #t~ret0 := fact(~n - 1);< 363795#$Ultimate##0 ~n := #in~n; 366274#L25 assume !(~n <= 0); 363679#L26 call #t~ret0 := fact(~n - 1);< 363801#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363774#factFINAL assume true; 363713#factEXIT >#66#return; 363695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363707#factFINAL assume true; 363676#factEXIT >#66#return; 363701#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 364115#factFINAL assume true; 364076#factEXIT >#72#return; 364091#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 365146#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 366247#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 366246#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 366245#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 363765#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 363773#$Ultimate##0 ~n := #in~n; 364461#L25 assume !(~n <= 0); 363685#L26 call #t~ret0 := fact(~n - 1);< 363703#$Ultimate##0 ~n := #in~n; 366650#L25 assume !(~n <= 0); 363479#L26 call #t~ret0 := fact(~n - 1);< 363487#$Ultimate##0 ~n := #in~n; 363478#L25 assume !(~n <= 0); 363480#L26 call #t~ret0 := fact(~n - 1);< 363795#$Ultimate##0 ~n := #in~n; 366274#L25 assume !(~n <= 0); 363679#L26 call #t~ret0 := fact(~n - 1);< 363801#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363774#factFINAL assume true; 363713#factEXIT >#66#return; 363695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363707#factFINAL assume true; 363676#factEXIT >#66#return; 363699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363775#factFINAL assume true; 363732#factEXIT >#68#return; 363512#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 363843#$Ultimate##0 ~n := #in~n; 363866#L25 assume !(~n <= 0); 363859#L26 call #t~ret0 := fact(~n - 1);< 363865#$Ultimate##0 ~n := #in~n; 363893#L25 assume ~n <= 0;#res := 1; 363886#factFINAL assume true; 363857#factEXIT >#66#return; 363848#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363842#factFINAL assume true; 363823#factEXIT >#70#return; 363619#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 363670#$Ultimate##0 ~n := #in~n; 364137#L25 assume !(~n <= 0); 363715#L26 call #t~ret0 := fact(~n - 1);< 364135#$Ultimate##0 ~n := #in~n; 364036#L25 assume !(~n <= 0); 363787#L26 call #t~ret0 := fact(~n - 1);< 363794#$Ultimate##0 ~n := #in~n; 364558#L25 assume !(~n <= 0); 363808#L26 call #t~ret0 := fact(~n - 1);< 363822#$Ultimate##0 ~n := #in~n; 363882#L25 assume !(~n <= 0); 363852#L26 call #t~ret0 := fact(~n - 1);< 363853#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363774#factFINAL assume true; 363713#factEXIT >#66#return; 363674#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363675#factFINAL assume true; 363591#factEXIT >#72#return; 363649#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 366225#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 366226#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 366216#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 366217#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 363737#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 363773#$Ultimate##0 ~n := #in~n; 364461#L25 assume !(~n <= 0); 363685#L26 call #t~ret0 := fact(~n - 1);< 363703#$Ultimate##0 ~n := #in~n; 366650#L25 assume !(~n <= 0); 363479#L26 call #t~ret0 := fact(~n - 1);< 363487#$Ultimate##0 ~n := #in~n; 363478#L25 assume !(~n <= 0); 363480#L26 call #t~ret0 := fact(~n - 1);< 363795#$Ultimate##0 ~n := #in~n; 366274#L25 assume !(~n <= 0); 363679#L26 call #t~ret0 := fact(~n - 1);< 363801#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363774#factFINAL assume true; 363713#factEXIT >#66#return; 363695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363707#factFINAL assume true; 363676#factEXIT >#66#return; 363699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363775#factFINAL assume true; 363732#factEXIT >#68#return; 363519#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 363569#$Ultimate##0 ~n := #in~n; 363891#L25 assume !(~n <= 0); 363691#L26 call #t~ret0 := fact(~n - 1);< 363841#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363880#factFINAL assume true; 363875#factEXIT >#70#return; 363627#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 363876#$Ultimate##0 ~n := #in~n; 363878#L25 assume !(~n <= 0); 363717#L26 call #t~ret0 := fact(~n - 1);< 363731#$Ultimate##0 ~n := #in~n; 363885#L25 assume !(~n <= 0); 363785#L26 call #t~ret0 := fact(~n - 1);< 363856#$Ultimate##0 ~n := #in~n; 363884#L25 assume !(~n <= 0); 363809#L26 call #t~ret0 := fact(~n - 1);< 363855#$Ultimate##0 ~n := #in~n; 363882#L25 assume !(~n <= 0); 363852#L26 call #t~ret0 := fact(~n - 1);< 363853#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363774#factFINAL assume true; 363713#factEXIT >#66#return; 363674#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363675#factFINAL assume true; 363591#factEXIT >#72#return; 363655#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 366005#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 366006#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 365999#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 366000#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 363752#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 363773#$Ultimate##0 ~n := #in~n; 364461#L25 assume !(~n <= 0); 363685#L26 call #t~ret0 := fact(~n - 1);< 363703#$Ultimate##0 ~n := #in~n; 366650#L25 assume !(~n <= 0); 363479#L26 call #t~ret0 := fact(~n - 1);< 363487#$Ultimate##0 ~n := #in~n; 363478#L25 assume !(~n <= 0); 363480#L26 call #t~ret0 := fact(~n - 1);< 363795#$Ultimate##0 ~n := #in~n; 366274#L25 assume !(~n <= 0); 363679#L26 call #t~ret0 := fact(~n - 1);< 363801#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363774#factFINAL assume true; 363713#factEXIT >#66#return; 363695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363707#factFINAL assume true; 363676#factEXIT >#66#return; 363699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363775#factFINAL assume true; 363732#factEXIT >#68#return; 363541#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 363569#$Ultimate##0 ~n := #in~n; 363891#L25 assume !(~n <= 0); 363691#L26 call #t~ret0 := fact(~n - 1);< 363841#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363849#factFINAL assume true; 363846#factEXIT >#70#return; 363600#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 363844#$Ultimate##0 ~n := #in~n; 363889#L25 assume !(~n <= 0); 363722#L26 call #t~ret0 := fact(~n - 1);< 363864#$Ultimate##0 ~n := #in~n; 363885#L25 assume !(~n <= 0); 363785#L26 call #t~ret0 := fact(~n - 1);< 363856#$Ultimate##0 ~n := #in~n; 363884#L25 assume !(~n <= 0); 363809#L26 call #t~ret0 := fact(~n - 1);< 363855#$Ultimate##0 ~n := #in~n; 363882#L25 assume !(~n <= 0); 363852#L26 call #t~ret0 := fact(~n - 1);< 363853#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363774#factFINAL assume true; 363713#factEXIT >#66#return; 363674#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363675#factFINAL assume true; 363591#factEXIT >#72#return; 363635#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 365176#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 365177#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 365172#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 365173#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 363746#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 363773#$Ultimate##0 ~n := #in~n; 364461#L25 assume !(~n <= 0); 363685#L26 call #t~ret0 := fact(~n - 1);< 363703#$Ultimate##0 ~n := #in~n; 366650#L25 assume !(~n <= 0); 363479#L26 call #t~ret0 := fact(~n - 1);< 363487#$Ultimate##0 ~n := #in~n; 363478#L25 assume !(~n <= 0); 363480#L26 call #t~ret0 := fact(~n - 1);< 363795#$Ultimate##0 ~n := #in~n; 366274#L25 assume !(~n <= 0); 363679#L26 call #t~ret0 := fact(~n - 1);< 363801#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363774#factFINAL assume true; 363713#factEXIT >#66#return; 363695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363707#factFINAL assume true; 363676#factEXIT >#66#return; 363699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363775#factFINAL assume true; 363732#factEXIT >#68#return; 363536#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 363569#$Ultimate##0 ~n := #in~n; 363891#L25 assume !(~n <= 0); 363691#L26 call #t~ret0 := fact(~n - 1);< 363841#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363774#factFINAL assume true; 363713#factEXIT >#66#return; 363674#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363675#factFINAL assume true; 363591#factEXIT >#70#return; 363624#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 363844#$Ultimate##0 ~n := #in~n; 363889#L25 assume !(~n <= 0); 363722#L26 call #t~ret0 := fact(~n - 1);< 363864#$Ultimate##0 ~n := #in~n; 363893#L25 assume ~n <= 0;#res := 1; 363886#factFINAL assume true; 363857#factEXIT >#66#return; 363848#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363842#factFINAL assume true; 363823#factEXIT >#72#return; 363830#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 366634#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 366632#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 366630#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 365703#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 363757#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 363773#$Ultimate##0 ~n := #in~n; 364461#L25 assume !(~n <= 0); 363685#L26 call #t~ret0 := fact(~n - 1);< 363703#$Ultimate##0 ~n := #in~n; 366650#L25 assume !(~n <= 0); 363479#L26 call #t~ret0 := fact(~n - 1);< 363487#$Ultimate##0 ~n := #in~n; 363478#L25 assume !(~n <= 0); 363480#L26 call #t~ret0 := fact(~n - 1);< 363795#$Ultimate##0 ~n := #in~n; 366274#L25 assume !(~n <= 0); 363679#L26 call #t~ret0 := fact(~n - 1);< 363801#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363774#factFINAL assume true; 363713#factEXIT >#66#return; 363695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363707#factFINAL assume true; 363676#factEXIT >#66#return; 363699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363775#factFINAL assume true; 363732#factEXIT >#68#return; 363507#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 363569#$Ultimate##0 ~n := #in~n; 363891#L25 assume !(~n <= 0); 363691#L26 call #t~ret0 := fact(~n - 1);< 363841#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363883#L25 assume !(~n <= 0); 363677#L26 call #t~ret0 := fact(~n - 1);< 363854#$Ultimate##0 ~n := #in~n; 363881#L25 assume ~n <= 0;#res := 1; 363879#factFINAL assume true; 363851#factEXIT >#66#return; 363847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363834#factFINAL assume true; 363806#factEXIT >#66#return; 363804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363797#factFINAL assume true; 363779#factEXIT >#66#return; 363777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363774#factFINAL assume true; 363713#factEXIT >#66#return; 363674#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 363675#factFINAL assume true; 363591#factEXIT >#70#return; 363522#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 363669#$Ultimate##0 ~n := #in~n; 363888#L25 assume ~n <= 0;#res := 1; 363562#factFINAL assume true; 363496#factEXIT >#72#return; 363456#L30-3 [2023-02-18 08:57:05,085 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:05,085 INFO L85 PathProgramCache]: Analyzing trace with hash 1162603421, now seen corresponding path program 55 times [2023-02-18 08:57:05,085 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:05,085 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [272695480] [2023-02-18 08:57:05,085 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:05,085 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:05,100 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:05,100 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [662137759] [2023-02-18 08:57:05,100 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:57:05,100 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:05,100 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:05,104 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-18 08:57:05,104 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-18 08:57:05,566 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:57:05,572 INFO L263 TraceCheckSpWp]: Trace formula consists of 2023 conjuncts, 12 conjunts are in the unsatisfiable core [2023-02-18 08:57:05,576 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:05,606 INFO L134 CoverageAnalysis]: Checked inductivity of 51287 backedges. 19969 proven. 17 refuted. 0 times theorem prover too weak. 31301 trivial. 0 not checked. [2023-02-18 08:57:05,606 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:05,668 INFO L134 CoverageAnalysis]: Checked inductivity of 51287 backedges. 855 proven. 1434 refuted. 0 times theorem prover too weak. 48998 trivial. 0 not checked. [2023-02-18 08:57:05,668 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:05,668 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [272695480] [2023-02-18 08:57:05,668 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:05,668 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [662137759] [2023-02-18 08:57:05,668 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [662137759] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:05,668 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:05,669 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 12] total 13 [2023-02-18 08:57:05,669 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [929009583] [2023-02-18 08:57:05,669 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:05,669 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:57:05,669 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:05,669 INFO L85 PathProgramCache]: Analyzing trace with hash -2093712371, now seen corresponding path program 55 times [2023-02-18 08:57:05,669 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:05,670 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2080803595] [2023-02-18 08:57:05,670 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:05,670 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:05,679 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:05,679 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2062629588] [2023-02-18 08:57:05,679 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:57:05,679 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:05,680 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:05,681 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-18 08:57:05,682 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-18 08:57:06,018 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:57:06,022 INFO L263 TraceCheckSpWp]: Trace formula consists of 1229 conjuncts, 33 conjunts are in the unsatisfiable core [2023-02-18 08:57:06,026 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:06,135 INFO L134 CoverageAnalysis]: Checked inductivity of 22369 backedges. 11918 proven. 1264 refuted. 0 times theorem prover too weak. 9187 trivial. 0 not checked. [2023-02-18 08:57:06,135 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:06,446 INFO L134 CoverageAnalysis]: Checked inductivity of 22369 backedges. 896 proven. 3056 refuted. 0 times theorem prover too weak. 18417 trivial. 0 not checked. [2023-02-18 08:57:06,446 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:06,446 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2080803595] [2023-02-18 08:57:06,446 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:06,446 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2062629588] [2023-02-18 08:57:06,447 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2062629588] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:06,447 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:06,447 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [21, 29] total 36 [2023-02-18 08:57:06,447 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1035744559] [2023-02-18 08:57:06,447 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:06,448 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:57:06,448 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:57:06,448 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 36 interpolants. [2023-02-18 08:57:06,448 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=150, Invalid=1110, Unknown=0, NotChecked=0, Total=1260 [2023-02-18 08:57:06,448 INFO L87 Difference]: Start difference. First operand 3270 states and 4679 transitions. cyclomatic complexity: 1441 Second operand has 36 states, 32 states have (on average 3.03125) internal successors, (97), 36 states have internal predecessors, (97), 22 states have call successors, (41), 2 states have call predecessors, (41), 12 states have return successors, (47), 18 states have call predecessors, (47), 22 states have call successors, (47) [2023-02-18 08:57:08,270 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:57:08,270 INFO L93 Difference]: Finished difference Result 4735 states and 7153 transitions. [2023-02-18 08:57:08,270 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4735 states and 7153 transitions. [2023-02-18 08:57:08,291 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 1112 [2023-02-18 08:57:08,315 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4735 states to 4725 states and 7121 transitions. [2023-02-18 08:57:08,315 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 638 [2023-02-18 08:57:08,316 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 638 [2023-02-18 08:57:08,316 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4725 states and 7121 transitions. [2023-02-18 08:57:08,316 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:57:08,316 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4725 states and 7121 transitions. [2023-02-18 08:57:08,317 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4725 states and 7121 transitions. [2023-02-18 08:57:08,372 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4725 to 3785. [2023-02-18 08:57:08,375 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3785 states, 2366 states have (on average 1.0574809805579037) internal successors, (2502), 2362 states have internal predecessors, (2502), 1174 states have call successors, (1190), 338 states have call predecessors, (1190), 245 states have return successors, (1989), 1084 states have call predecessors, (1989), 1174 states have call successors, (1989) [2023-02-18 08:57:08,386 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3785 states to 3785 states and 5681 transitions. [2023-02-18 08:57:08,386 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3785 states and 5681 transitions. [2023-02-18 08:57:08,387 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 55 states. [2023-02-18 08:57:08,387 INFO L428 stractBuchiCegarLoop]: Abstraction has 3785 states and 5681 transitions. [2023-02-18 08:57:08,387 INFO L335 stractBuchiCegarLoop]: ======== Iteration 68 ============ [2023-02-18 08:57:08,387 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 3785 states and 5681 transitions. [2023-02-18 08:57:08,395 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 696 [2023-02-18 08:57:08,395 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:57:08,395 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:57:08,397 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [145, 145, 94, 94, 94, 94, 51, 17, 16, 11, 11, 11, 11, 11, 11, 11, 10, 10, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-18 08:57:08,397 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [90, 90, 69, 69, 69, 69, 21, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:57:08,398 INFO L748 eck$LassoCheckResult]: Stem: 380595#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 380545#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; 380546#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 380565#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; 380554#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 380555#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 384068#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 380503#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 380504#$Ultimate##0 ~n := #in~n; 383953#L25 assume ~n <= 0;#res := 1; 383952#factFINAL assume true; 383941#factEXIT >#68#return; 380588#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 380589#$Ultimate##0 ~n := #in~n; 383950#L25 assume ~n <= 0;#res := 1; 383948#factFINAL assume true; 383945#factEXIT >#70#return; 380499#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 380500#$Ultimate##0 ~n := #in~n; 384031#L25 assume ~n <= 0;#res := 1; 384030#factFINAL assume true; 384029#factEXIT >#72#return; 384028#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 384026#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 384022#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 384016#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 384011#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 384007#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 384008#$Ultimate##0 ~n := #in~n; 384025#L25 assume !(~n <= 0); 384020#L26 call #t~ret0 := fact(~n - 1);< 384021#$Ultimate##0 ~n := #in~n; 384027#L25 assume ~n <= 0;#res := 1; 384024#factFINAL assume true; 384019#factEXIT >#66#return; 384015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 384010#factFINAL assume true; 384006#factEXIT >#74#return; 384003#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 384004#$Ultimate##0 ~n := #in~n; 384033#L25 assume ~n <= 0;#res := 1; 384032#factFINAL assume true; 384002#factEXIT >#76#return; 384000#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 384001#$Ultimate##0 ~n := #in~n; 384018#L25 assume !(~n <= 0); 384013#L26 call #t~ret0 := fact(~n - 1);< 384014#$Ultimate##0 ~n := #in~n; 384023#L25 assume ~n <= 0;#res := 1; 384017#factFINAL assume true; 384012#factEXIT >#66#return; 384009#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 384005#factFINAL assume true; 383999#factEXIT >#78#return; 383998#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 383997#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 383995#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 383994#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 383993#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 383990#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 383991#$Ultimate##0 ~n := #in~n; 384050#L25 assume !(~n <= 0); 384037#L26 call #t~ret0 := fact(~n - 1);< 384042#$Ultimate##0 ~n := #in~n; 384048#L25 assume !(~n <= 0); 384039#L26 call #t~ret0 := fact(~n - 1);< 384047#$Ultimate##0 ~n := #in~n; 384051#L25 assume ~n <= 0;#res := 1; 384049#factFINAL assume true; 384046#factEXIT >#66#return; 384045#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 384044#factFINAL assume true; 384036#factEXIT >#66#return; 384041#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 384070#factFINAL assume true; 383989#factEXIT >#74#return; 383986#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 383987#$Ultimate##0 ~n := #in~n; 383992#L25 assume ~n <= 0;#res := 1; 383988#factFINAL assume true; 383985#factEXIT >#76#return; 383983#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 383984#$Ultimate##0 ~n := #in~n; 384043#L25 assume !(~n <= 0); 384038#L26 call #t~ret0 := fact(~n - 1);< 384042#$Ultimate##0 ~n := #in~n; 384048#L25 assume !(~n <= 0); 384039#L26 call #t~ret0 := fact(~n - 1);< 384047#$Ultimate##0 ~n := #in~n; 384051#L25 assume ~n <= 0;#res := 1; 384049#factFINAL assume true; 384046#factEXIT >#66#return; 384045#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 384044#factFINAL assume true; 384036#factEXIT >#66#return; 384035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 384034#factFINAL assume true; 383982#factEXIT >#78#return; 383980#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 383979#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 383978#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 383977#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 383975#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 383483#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 383974#$Ultimate##0 ~n := #in~n; 384127#L25 assume !(~n <= 0); 384123#L26 call #t~ret0 := fact(~n - 1);< 384125#$Ultimate##0 ~n := #in~n; 384132#L25 assume !(~n <= 0); 384124#L26 call #t~ret0 := fact(~n - 1);< 384130#$Ultimate##0 ~n := #in~n; 384132#L25 assume !(~n <= 0); 384124#L26 call #t~ret0 := fact(~n - 1);< 384130#$Ultimate##0 ~n := #in~n; 384136#L25 assume ~n <= 0;#res := 1; 384135#factFINAL assume true; 384134#factEXIT >#66#return; 384133#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 384131#factFINAL assume true; 384129#factEXIT >#66#return; 384128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 384126#factFINAL assume true; 384122#factEXIT >#66#return; 384120#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 384118#factFINAL assume true; 383482#factEXIT >#74#return; 383484#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 383491#$Ultimate##0 ~n := #in~n; 383492#L25 assume ~n <= 0;#res := 1; 383487#factFINAL assume true; 383488#factEXIT >#76#return; 380573#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 383478#$Ultimate##0 ~n := #in~n; 384168#L25 assume !(~n <= 0); 384155#L26 call #t~ret0 := fact(~n - 1);< 384159#$Ultimate##0 ~n := #in~n; 384166#L25 assume !(~n <= 0); 384156#L26 call #t~ret0 := fact(~n - 1);< 384164#$Ultimate##0 ~n := #in~n; 384166#L25 assume !(~n <= 0); 384156#L26 call #t~ret0 := fact(~n - 1);< 384164#$Ultimate##0 ~n := #in~n; 384172#L25 assume ~n <= 0;#res := 1; 384171#factFINAL assume true; 384170#factEXIT >#66#return; 384169#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 384165#factFINAL assume true; 384163#factEXIT >#66#return; 384162#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 384160#factFINAL assume true; 384154#factEXIT >#66#return; 380572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 380574#factFINAL assume true; 384089#factEXIT >#78#return; 382150#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382142#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 382141#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382140#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 382139#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 382138#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 382136#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382124#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 382072#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 382079#$Ultimate##0 ~n := #in~n; 382115#L25 assume !(~n <= 0); 382091#L26 call #t~ret0 := fact(~n - 1);< 382114#$Ultimate##0 ~n := #in~n; 383093#L25 assume ~n <= 0;#res := 1; 383079#factFINAL assume true; 383064#factEXIT >#66#return; 383068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383089#factFINAL assume true; 383088#factEXIT >#68#return; 383087#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 382070#$Ultimate##0 ~n := #in~n; 383091#L25 assume ~n <= 0;#res := 1; 383090#factFINAL assume true; 383086#factEXIT >#70#return; 383081#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 383084#$Ultimate##0 ~n := #in~n; 383083#L25 assume !(~n <= 0); 382104#L26 call #t~ret0 := fact(~n - 1);< 383080#$Ultimate##0 ~n := #in~n; 383093#L25 assume ~n <= 0;#res := 1; 383079#factFINAL assume true; 383064#factEXIT >#66#return; 383070#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383117#factFINAL assume true; 383108#factEXIT >#72#return; 383105#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 383103#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 383101#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 383099#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 383097#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 383047#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 383094#$Ultimate##0 ~n := #in~n; 383092#L25 assume !(~n <= 0); 382092#L26 call #t~ret0 := fact(~n - 1);< 383080#$Ultimate##0 ~n := #in~n; 383093#L25 assume ~n <= 0;#res := 1; 383079#factFINAL assume true; 383064#factEXIT >#66#return; 383069#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383290#factFINAL assume true; 383289#factEXIT >#68#return; 382879#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 383023#$Ultimate##0 ~n := #in~n; 383075#L25 assume !(~n <= 0); 382097#L26 call #t~ret0 := fact(~n - 1);< 383072#$Ultimate##0 ~n := #in~n; 383093#L25 assume ~n <= 0;#res := 1; 383079#factFINAL assume true; 383064#factEXIT >#66#return; 383062#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383060#factFINAL assume true; 382876#factEXIT >#70#return; 382900#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 383040#$Ultimate##0 ~n := #in~n; 383057#L25 assume ~n <= 0;#res := 1; 383056#factFINAL assume true; 383035#factEXIT >#72#return; 383036#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 383947#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 383940#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 383054#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 383042#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 382923#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 383024#$Ultimate##0 ~n := #in~n; 383194#L25 assume !(~n <= 0); 382087#L26 call #t~ret0 := fact(~n - 1);< 382114#$Ultimate##0 ~n := #in~n; 383171#L25 assume !(~n <= 0); 382086#L26 call #t~ret0 := fact(~n - 1);< 383165#$Ultimate##0 ~n := #in~n; 383171#L25 assume !(~n <= 0); 382086#L26 call #t~ret0 := fact(~n - 1);< 383165#$Ultimate##0 ~n := #in~n; 383515#L25 assume ~n <= 0;#res := 1; 383513#factFINAL assume true; 382125#factEXIT >#66#return; 382123#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382116#factFINAL assume true; 382085#factEXIT >#66#return; 382109#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383144#factFINAL assume true; 382993#factEXIT >#66#return; 382998#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383063#factFINAL assume true; 382914#factEXIT >#74#return; 382924#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 382935#$Ultimate##0 ~n := #in~n; 383176#L25 assume !(~n <= 0); 382095#L26 call #t~ret0 := fact(~n - 1);< 383002#$Ultimate##0 ~n := #in~n; 383943#L25 assume !(~n <= 0); 382094#L26 call #t~ret0 := fact(~n - 1);< 382127#$Ultimate##0 ~n := #in~n; 383515#L25 assume ~n <= 0;#res := 1; 383513#factFINAL assume true; 382125#factEXIT >#66#return; 382123#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382116#factFINAL assume true; 382085#factEXIT >#66#return; 382110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383058#factFINAL assume true; 383013#factEXIT >#76#return; 382895#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 382912#$Ultimate##0 ~n := #in~n; 383076#L25 assume !(~n <= 0); 383066#L26 call #t~ret0 := fact(~n - 1);< 383071#$Ultimate##0 ~n := #in~n; 383093#L25 assume ~n <= 0;#res := 1; 383079#factFINAL assume true; 383064#factEXIT >#66#return; 383062#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383060#factFINAL assume true; 382876#factEXIT >#78#return; 382910#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 383031#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 383029#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 383027#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 383026#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 382763#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 382725#$Ultimate##0 ~n := #in~n; 382984#L25 assume !(~n <= 0); 382791#L26 call #t~ret0 := fact(~n - 1);< 382810#$Ultimate##0 ~n := #in~n; 383191#L25 assume !(~n <= 0); 382788#L26 call #t~ret0 := fact(~n - 1);< 382807#$Ultimate##0 ~n := #in~n; 383191#L25 assume !(~n <= 0); 382788#L26 call #t~ret0 := fact(~n - 1);< 382807#$Ultimate##0 ~n := #in~n; 382819#L25 assume ~n <= 0;#res := 1; 382817#factFINAL assume true; 382814#factEXIT >#66#return; 382812#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382813#factFINAL assume true; 382783#factEXIT >#66#return; 382797#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382989#factFINAL assume true; 382987#factEXIT >#66#return; 382988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382864#factFINAL assume true; 382831#factEXIT >#74#return; 382709#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 382773#$Ultimate##0 ~n := #in~n; 382842#L25 assume !(~n <= 0); 382789#L26 call #t~ret0 := fact(~n - 1);< 382825#$Ultimate##0 ~n := #in~n; 382811#L25 assume ~n <= 0;#res := 1; 382804#factFINAL assume true; 382806#factEXIT >#66#return; 382779#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382780#factFINAL assume true; 382706#factEXIT >#76#return; 382719#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 382862#$Ultimate##0 ~n := #in~n; 382860#L25 assume !(~n <= 0); 382785#L26 call #t~ret0 := fact(~n - 1);< 382857#$Ultimate##0 ~n := #in~n; 382856#L25 assume !(~n <= 0); 382792#L26 call #t~ret0 := fact(~n - 1);< 382827#$Ultimate##0 ~n := #in~n; 382819#L25 assume ~n <= 0;#res := 1; 382817#factFINAL assume true; 382814#factEXIT >#66#return; 382812#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382813#factFINAL assume true; 382783#factEXIT >#66#return; 382798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382762#factFINAL assume true; 382772#factEXIT >#78#return; 382703#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382704#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 382699#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382700#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 382695#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 382696#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 382654#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382655#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 382075#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 382079#$Ultimate##0 ~n := #in~n; 382115#L25 assume !(~n <= 0); 382091#L26 call #t~ret0 := fact(~n - 1);< 382114#$Ultimate##0 ~n := #in~n; 383171#L25 assume !(~n <= 0); 382086#L26 call #t~ret0 := fact(~n - 1);< 383165#$Ultimate##0 ~n := #in~n; 383515#L25 assume ~n <= 0;#res := 1; 383513#factFINAL assume true; 382125#factEXIT >#66#return; 382123#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382116#factFINAL assume true; 382085#factEXIT >#66#return; 382084#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382083#factFINAL assume true; 382071#factEXIT >#68#return; 382064#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 382067#$Ultimate##0 ~n := #in~n; 382082#L25 assume ~n <= 0;#res := 1; 382080#factFINAL assume true; 382062#factEXIT >#70#return; 381190#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 382059#$Ultimate##0 ~n := #in~n; 384110#L25 assume !(~n <= 0); 380981#L26 call #t~ret0 := fact(~n - 1);< 381185#$Ultimate##0 ~n := #in~n; 384252#L25 assume !(~n <= 0); 381209#L26 call #t~ret0 := fact(~n - 1);< 381210#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382061#factFINAL assume true; 382055#factEXIT >#72#return; 382057#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382237#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 382238#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382231#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382232#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 381998#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 382046#$Ultimate##0 ~n := #in~n; 382137#L25 assume !(~n <= 0); 380978#L26 call #t~ret0 := fact(~n - 1);< 380989#$Ultimate##0 ~n := #in~n; 384252#L25 assume !(~n <= 0); 381209#L26 call #t~ret0 := fact(~n - 1);< 381210#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382004#factFINAL assume true; 381992#factEXIT >#68#return; 380808#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 381214#$Ultimate##0 ~n := #in~n; 381205#L25 assume !(~n <= 0); 380970#L26 call #t~ret0 := fact(~n - 1);< 381146#$Ultimate##0 ~n := #in~n; 381174#L25 assume ~n <= 0;#res := 1; 381136#factFINAL assume true; 381126#factEXIT >#66#return; 381132#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382014#factFINAL assume true; 382008#factEXIT >#70#return; 380611#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 380612#$Ultimate##0 ~n := #in~n; 382022#L25 assume !(~n <= 0); 381128#L26 call #t~ret0 := fact(~n - 1);< 381133#$Ultimate##0 ~n := #in~n; 381174#L25 assume ~n <= 0;#res := 1; 381136#factFINAL assume true; 381126#factEXIT >#66#return; 381132#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382014#factFINAL assume true; 382008#factEXIT >#72#return; 382012#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 383516#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 383514#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 383512#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 383506#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 382000#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 382001#$Ultimate##0 ~n := #in~n; 384251#L25 assume !(~n <= 0); 380963#L26 call #t~ret0 := fact(~n - 1);< 381185#$Ultimate##0 ~n := #in~n; 384252#L25 assume !(~n <= 0); 381209#L26 call #t~ret0 := fact(~n - 1);< 381210#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382004#factFINAL assume true; 381992#factEXIT >#68#return; 380789#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 380790#$Ultimate##0 ~n := #in~n; 383501#L25 assume !(~n <= 0); 380971#L26 call #t~ret0 := fact(~n - 1);< 381040#$Ultimate##0 ~n := #in~n; 384187#L25 assume !(~n <= 0); 380964#L26 call #t~ret0 := fact(~n - 1);< 381058#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380984#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 380793#factFINAL assume true; 380816#factEXIT >#70#return; 381942#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 381948#$Ultimate##0 ~n := #in~n; 382020#L25 assume ~n <= 0;#res := 1; 382016#factFINAL assume true; 381937#factEXIT >#72#return; 381946#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382213#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 382211#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382208#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382207#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 381918#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 381920#$Ultimate##0 ~n := #in~n; 381919#L25 assume !(~n <= 0); 381797#L26 call #t~ret0 := fact(~n - 1);< 381872#$Ultimate##0 ~n := #in~n; 381870#L25 assume !(~n <= 0); 381796#L26 call #t~ret0 := fact(~n - 1);< 381868#$Ultimate##0 ~n := #in~n; 381870#L25 assume !(~n <= 0); 381796#L26 call #t~ret0 := fact(~n - 1);< 381868#$Ultimate##0 ~n := #in~n; 381922#L25 assume ~n <= 0;#res := 1; 381921#factFINAL assume true; 381863#factEXIT >#66#return; 381862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381790#factFINAL assume true; 381799#factEXIT >#66#return; 381823#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381906#factFINAL assume true; 381885#factEXIT >#66#return; 381886#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382209#factFINAL assume true; 382204#factEXIT >#74#return; 381907#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 381924#$Ultimate##0 ~n := #in~n; 381923#L25 assume !(~n <= 0); 381795#L26 call #t~ret0 := fact(~n - 1);< 381909#$Ultimate##0 ~n := #in~n; 381951#L25 assume !(~n <= 0); 381791#L26 call #t~ret0 := fact(~n - 1);< 381866#$Ultimate##0 ~n := #in~n; 381952#L25 assume !(~n <= 0); 381864#L26 call #t~ret0 := fact(~n - 1);< 381867#$Ultimate##0 ~n := #in~n; 381922#L25 assume ~n <= 0;#res := 1; 381921#factFINAL assume true; 381863#factEXIT >#66#return; 381862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381790#factFINAL assume true; 381799#factEXIT >#66#return; 381823#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381906#factFINAL assume true; 381885#factEXIT >#66#return; 381886#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382209#factFINAL assume true; 382204#factEXIT >#76#return; 382151#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 382152#$Ultimate##0 ~n := #in~n; 383396#L25 assume !(~n <= 0); 381772#L26 call #t~ret0 := fact(~n - 1);< 381787#$Ultimate##0 ~n := #in~n; 381860#L25 assume ~n <= 0;#res := 1; 381851#factFINAL assume true; 381771#factEXIT >#66#return; 381784#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383395#factFINAL assume true; 382212#factEXIT >#78#return; 381745#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382746#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 382744#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382742#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 382740#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 382739#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 382738#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382737#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 380951#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 381220#$Ultimate##0 ~n := #in~n; 381217#L25 assume !(~n <= 0); 380882#L26 call #t~ret0 := fact(~n - 1);< 380952#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381018#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381010#factFINAL assume true; 380990#factEXIT >#66#return; 380996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381374#factFINAL assume true; 381370#factEXIT >#66#return; 380904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381659#factFINAL assume true; 381639#factEXIT >#68#return; 381632#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 381637#$Ultimate##0 ~n := #in~n; 381651#L25 assume ~n <= 0;#res := 1; 381638#factFINAL assume true; 381622#factEXIT >#70#return; 381594#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 381621#$Ultimate##0 ~n := #in~n; 381672#L25 assume !(~n <= 0); 380886#L26 call #t~ret0 := fact(~n - 1);< 381009#$Ultimate##0 ~n := #in~n; 381084#L25 assume !(~n <= 0); 380884#L26 call #t~ret0 := fact(~n - 1);< 381063#$Ultimate##0 ~n := #in~n; 381062#L25 assume !(~n <= 0); 380893#L26 call #t~ret0 := fact(~n - 1);< 381027#$Ultimate##0 ~n := #in~n; 381224#L25 assume !(~n <= 0); 380890#L26 call #t~ret0 := fact(~n - 1);< 381008#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381018#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381010#factFINAL assume true; 380990#factEXIT >#66#return; 380996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381374#factFINAL assume true; 381370#factEXIT >#66#return; 380907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381669#factFINAL assume true; 381593#factEXIT >#72#return; 381608#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382732#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 382727#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382726#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382705#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 380833#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 380878#$Ultimate##0 ~n := #in~n; 380943#L25 assume !(~n <= 0); 380891#L26 call #t~ret0 := fact(~n - 1);< 381009#$Ultimate##0 ~n := #in~n; 381084#L25 assume !(~n <= 0); 380884#L26 call #t~ret0 := fact(~n - 1);< 381063#$Ultimate##0 ~n := #in~n; 381062#L25 assume !(~n <= 0); 380893#L26 call #t~ret0 := fact(~n - 1);< 381027#$Ultimate##0 ~n := #in~n; 381224#L25 assume !(~n <= 0); 380890#L26 call #t~ret0 := fact(~n - 1);< 381008#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381018#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381010#factFINAL assume true; 380990#factEXIT >#66#return; 380996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381374#factFINAL assume true; 381370#factEXIT >#66#return; 381371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383424#factFINAL assume true; 382187#factEXIT >#68#return; 380867#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 380610#$Ultimate##0 ~n := #in~n; 381522#L25 assume !(~n <= 0); 381127#L26 call #t~ret0 := fact(~n - 1);< 381133#$Ultimate##0 ~n := #in~n; 381174#L25 assume ~n <= 0;#res := 1; 381136#factFINAL assume true; 381126#factEXIT >#66#return; 381130#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381492#factFINAL assume true; 381404#factEXIT >#70#return; 381031#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 381296#$Ultimate##0 ~n := #in~n; 381295#L25 assume !(~n <= 0); 380991#L26 call #t~ret0 := fact(~n - 1);< 381035#$Ultimate##0 ~n := #in~n; 381294#L25 assume !(~n <= 0); 380956#L26 call #t~ret0 := fact(~n - 1);< 381040#$Ultimate##0 ~n := #in~n; 384187#L25 assume !(~n <= 0); 380964#L26 call #t~ret0 := fact(~n - 1);< 381058#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381579#factFINAL assume true; 381578#factEXIT >#72#return; 381427#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382690#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 382689#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382672#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382223#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 380939#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 380944#$Ultimate##0 ~n := #in~n; 380945#L25 assume !(~n <= 0); 380911#L26 call #t~ret0 := fact(~n - 1);< 380942#$Ultimate##0 ~n := #in~n; 381494#L25 assume !(~n <= 0); 380992#L26 call #t~ret0 := fact(~n - 1);< 381007#$Ultimate##0 ~n := #in~n; 384233#L25 assume !(~n <= 0); 381020#L26 call #t~ret0 := fact(~n - 1);< 381161#$Ultimate##0 ~n := #in~n; 384256#L25 assume !(~n <= 0); 380960#L26 call #t~ret0 := fact(~n - 1);< 381185#$Ultimate##0 ~n := #in~n; 384252#L25 assume !(~n <= 0); 381209#L26 call #t~ret0 := fact(~n - 1);< 381210#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381018#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381010#factFINAL assume true; 380990#factEXIT >#66#return; 380996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381374#factFINAL assume true; 381370#factEXIT >#66#return; 381371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383424#factFINAL assume true; 382187#factEXIT >#68#return; 380677#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 380791#$Ultimate##0 ~n := #in~n; 381317#L25 assume !(~n <= 0); 380896#L26 call #t~ret0 := fact(~n - 1);< 381008#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381450#factFINAL assume true; 381324#factEXIT >#70#return; 381194#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 381451#$Ultimate##0 ~n := #in~n; 384109#L25 assume !(~n <= 0); 380959#L26 call #t~ret0 := fact(~n - 1);< 381040#$Ultimate##0 ~n := #in~n; 384187#L25 assume !(~n <= 0); 380964#L26 call #t~ret0 := fact(~n - 1);< 381058#$Ultimate##0 ~n := #in~n; 384252#L25 assume !(~n <= 0); 381209#L26 call #t~ret0 := fact(~n - 1);< 381210#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381579#factFINAL assume true; 381578#factEXIT >#72#return; 381327#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382222#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 382221#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382220#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382219#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 380929#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 380944#$Ultimate##0 ~n := #in~n; 380945#L25 assume !(~n <= 0); 380911#L26 call #t~ret0 := fact(~n - 1);< 380942#$Ultimate##0 ~n := #in~n; 381494#L25 assume !(~n <= 0); 380992#L26 call #t~ret0 := fact(~n - 1);< 381007#$Ultimate##0 ~n := #in~n; 384233#L25 assume !(~n <= 0); 381020#L26 call #t~ret0 := fact(~n - 1);< 381161#$Ultimate##0 ~n := #in~n; 384256#L25 assume !(~n <= 0); 380960#L26 call #t~ret0 := fact(~n - 1);< 381185#$Ultimate##0 ~n := #in~n; 384252#L25 assume !(~n <= 0); 381209#L26 call #t~ret0 := fact(~n - 1);< 381210#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381018#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381010#factFINAL assume true; 380990#factEXIT >#66#return; 380996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381374#factFINAL assume true; 381370#factEXIT >#66#return; 381371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383424#factFINAL assume true; 382187#factEXIT >#68#return; 380752#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 380791#$Ultimate##0 ~n := #in~n; 381317#L25 assume !(~n <= 0); 380896#L26 call #t~ret0 := fact(~n - 1);< 381008#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381579#factFINAL assume true; 381578#factEXIT >#70#return; 381157#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 381391#$Ultimate##0 ~n := #in~n; 381378#L25 assume !(~n <= 0); 380969#L26 call #t~ret0 := fact(~n - 1);< 381146#$Ultimate##0 ~n := #in~n; 381174#L25 assume ~n <= 0;#res := 1; 381136#factFINAL assume true; 381126#factEXIT >#66#return; 381130#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381492#factFINAL assume true; 381404#factEXIT >#72#return; 381420#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382218#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 382217#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382216#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382215#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 380937#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 380944#$Ultimate##0 ~n := #in~n; 380945#L25 assume !(~n <= 0); 380911#L26 call #t~ret0 := fact(~n - 1);< 380942#$Ultimate##0 ~n := #in~n; 381494#L25 assume !(~n <= 0); 380992#L26 call #t~ret0 := fact(~n - 1);< 381007#$Ultimate##0 ~n := #in~n; 384233#L25 assume !(~n <= 0); 381020#L26 call #t~ret0 := fact(~n - 1);< 381161#$Ultimate##0 ~n := #in~n; 384256#L25 assume !(~n <= 0); 380960#L26 call #t~ret0 := fact(~n - 1);< 381185#$Ultimate##0 ~n := #in~n; 384252#L25 assume !(~n <= 0); 381209#L26 call #t~ret0 := fact(~n - 1);< 381210#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381018#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381010#factFINAL assume true; 380990#factEXIT >#66#return; 380996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381374#factFINAL assume true; 381370#factEXIT >#66#return; 381371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383424#factFINAL assume true; 382187#factEXIT >#68#return; 380750#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 380791#$Ultimate##0 ~n := #in~n; 381317#L25 assume !(~n <= 0); 380896#L26 call #t~ret0 := fact(~n - 1);< 381008#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381018#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381010#factFINAL assume true; 380990#factEXIT >#66#return; 380997#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381504#factFINAL assume true; 381423#factEXIT >#70#return; 381150#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 381391#$Ultimate##0 ~n := #in~n; 381378#L25 assume ~n <= 0;#res := 1; 381176#factFINAL assume true; 382170#factEXIT >#72#return; 382173#L30-3 [2023-02-18 08:57:08,398 INFO L750 eck$LassoCheckResult]: Loop: 382173#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 383486#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 383465#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 383464#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382160#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 380538#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 382158#$Ultimate##0 ~n := #in~n; 382191#L25 assume !(~n <= 0); 380550#L26 call #t~ret0 := fact(~n - 1);< 380551#$Ultimate##0 ~n := #in~n; 382018#L25 assume !(~n <= 0); 381833#L26 call #t~ret0 := fact(~n - 1);< 381883#$Ultimate##0 ~n := #in~n; 381892#L25 assume !(~n <= 0); 381801#L26 call #t~ret0 := fact(~n - 1);< 381891#$Ultimate##0 ~n := #in~n; 381873#L25 assume !(~n <= 0); 381793#L26 call #t~ret0 := fact(~n - 1);< 381802#$Ultimate##0 ~n := #in~n; 381870#L25 assume !(~n <= 0); 381796#L26 call #t~ret0 := fact(~n - 1);< 381868#$Ultimate##0 ~n := #in~n; 381922#L25 assume ~n <= 0;#res := 1; 381921#factFINAL assume true; 381863#factEXIT >#66#return; 381862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381790#factFINAL assume true; 381799#factEXIT >#66#return; 381823#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381906#factFINAL assume true; 381885#factEXIT >#66#return; 381884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381882#factFINAL assume true; 381830#factEXIT >#66#return; 381836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381967#factFINAL assume true; 381964#factEXIT >#66#return; 381965#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383996#factFINAL assume true; 382156#factEXIT >#74#return; 381900#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 381903#$Ultimate##0 ~n := #in~n; 381901#L25 assume !(~n <= 0); 381831#L26 call #t~ret0 := fact(~n - 1);< 381838#$Ultimate##0 ~n := #in~n; 381893#L25 assume !(~n <= 0); 381865#L26 call #t~ret0 := fact(~n - 1);< 381890#$Ultimate##0 ~n := #in~n; 381960#L25 assume !(~n <= 0); 381792#L26 call #t~ret0 := fact(~n - 1);< 381866#$Ultimate##0 ~n := #in~n; 381952#L25 assume !(~n <= 0); 381864#L26 call #t~ret0 := fact(~n - 1);< 381867#$Ultimate##0 ~n := #in~n; 381922#L25 assume ~n <= 0;#res := 1; 381921#factFINAL assume true; 381863#factEXIT >#66#return; 381862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381790#factFINAL assume true; 381799#factEXIT >#66#return; 381823#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381906#factFINAL assume true; 381885#factEXIT >#66#return; 381884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381882#factFINAL assume true; 381830#factEXIT >#66#return; 381834#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383973#factFINAL assume true; 382153#factEXIT >#76#return; 381765#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 382130#$Ultimate##0 ~n := #in~n; 382129#L25 assume !(~n <= 0); 381778#L26 call #t~ret0 := fact(~n - 1);< 381787#$Ultimate##0 ~n := #in~n; 381860#L25 assume ~n <= 0;#res := 1; 381851#factFINAL assume true; 381771#factEXIT >#66#return; 381786#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383981#factFINAL assume true; 381762#factEXIT >#78#return; 381768#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382688#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 382687#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382686#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 382685#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 382684#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 382683#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382682#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 381647#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 380502#$Ultimate##0 ~n := #in~n; 381661#L25 assume !(~n <= 0); 380889#L26 call #t~ret0 := fact(~n - 1);< 381009#$Ultimate##0 ~n := #in~n; 381084#L25 assume !(~n <= 0); 380884#L26 call #t~ret0 := fact(~n - 1);< 381063#$Ultimate##0 ~n := #in~n; 381062#L25 assume !(~n <= 0); 380893#L26 call #t~ret0 := fact(~n - 1);< 381027#$Ultimate##0 ~n := #in~n; 381224#L25 assume !(~n <= 0); 380890#L26 call #t~ret0 := fact(~n - 1);< 381008#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381018#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381010#factFINAL assume true; 380990#factEXIT >#66#return; 380996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381374#factFINAL assume true; 381370#factEXIT >#66#return; 380904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381659#factFINAL assume true; 381639#factEXIT >#68#return; 381628#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 381637#$Ultimate##0 ~n := #in~n; 381651#L25 assume ~n <= 0;#res := 1; 381638#factFINAL assume true; 381622#factEXIT >#70#return; 381606#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 381621#$Ultimate##0 ~n := #in~n; 381672#L25 assume !(~n <= 0); 380886#L26 call #t~ret0 := fact(~n - 1);< 381009#$Ultimate##0 ~n := #in~n; 381084#L25 assume !(~n <= 0); 380884#L26 call #t~ret0 := fact(~n - 1);< 381063#$Ultimate##0 ~n := #in~n; 381062#L25 assume !(~n <= 0); 380893#L26 call #t~ret0 := fact(~n - 1);< 381027#$Ultimate##0 ~n := #in~n; 381224#L25 assume !(~n <= 0); 380890#L26 call #t~ret0 := fact(~n - 1);< 381008#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381018#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381010#factFINAL assume true; 380990#factEXIT >#66#return; 380996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381374#factFINAL assume true; 381370#factEXIT >#66#return; 380907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381669#factFINAL assume true; 381593#factEXIT >#72#return; 381619#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382681#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 382679#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382677#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382675#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 380858#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 380878#$Ultimate##0 ~n := #in~n; 380943#L25 assume !(~n <= 0); 380891#L26 call #t~ret0 := fact(~n - 1);< 381009#$Ultimate##0 ~n := #in~n; 381084#L25 assume !(~n <= 0); 380884#L26 call #t~ret0 := fact(~n - 1);< 381063#$Ultimate##0 ~n := #in~n; 381062#L25 assume !(~n <= 0); 380893#L26 call #t~ret0 := fact(~n - 1);< 381027#$Ultimate##0 ~n := #in~n; 381224#L25 assume !(~n <= 0); 380890#L26 call #t~ret0 := fact(~n - 1);< 381008#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381018#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381010#factFINAL assume true; 380990#factEXIT >#66#return; 380996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381374#factFINAL assume true; 381370#factEXIT >#66#return; 380906#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 380950#factFINAL assume true; 380881#factEXIT >#66#return; 380880#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 380879#factFINAL assume true; 380827#factEXIT >#68#return; 380876#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 380610#$Ultimate##0 ~n := #in~n; 381522#L25 assume !(~n <= 0); 381127#L26 call #t~ret0 := fact(~n - 1);< 381133#$Ultimate##0 ~n := #in~n; 381174#L25 assume ~n <= 0;#res := 1; 381136#factFINAL assume true; 381126#factEXIT >#66#return; 381130#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381492#factFINAL assume true; 381404#factEXIT >#70#return; 381006#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 380822#$Ultimate##0 ~n := #in~n; 383505#L25 assume !(~n <= 0); 380994#L26 call #t~ret0 := fact(~n - 1);< 381007#$Ultimate##0 ~n := #in~n; 384233#L25 assume !(~n <= 0); 381020#L26 call #t~ret0 := fact(~n - 1);< 381161#$Ultimate##0 ~n := #in~n; 384256#L25 assume !(~n <= 0); 380960#L26 call #t~ret0 := fact(~n - 1);< 381185#$Ultimate##0 ~n := #in~n; 384252#L25 assume !(~n <= 0); 381209#L26 call #t~ret0 := fact(~n - 1);< 381210#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381018#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381010#factFINAL assume true; 380990#factEXIT >#66#return; 380997#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381504#factFINAL assume true; 381423#factEXIT >#72#return; 381428#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382667#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 382663#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382658#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382647#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 380922#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 380944#$Ultimate##0 ~n := #in~n; 380945#L25 assume !(~n <= 0); 380911#L26 call #t~ret0 := fact(~n - 1);< 380942#$Ultimate##0 ~n := #in~n; 381494#L25 assume !(~n <= 0); 380992#L26 call #t~ret0 := fact(~n - 1);< 381007#$Ultimate##0 ~n := #in~n; 384233#L25 assume !(~n <= 0); 381020#L26 call #t~ret0 := fact(~n - 1);< 381161#$Ultimate##0 ~n := #in~n; 384256#L25 assume !(~n <= 0); 380960#L26 call #t~ret0 := fact(~n - 1);< 381185#$Ultimate##0 ~n := #in~n; 384252#L25 assume !(~n <= 0); 381209#L26 call #t~ret0 := fact(~n - 1);< 381210#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381018#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381010#factFINAL assume true; 380990#factEXIT >#66#return; 380996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381374#factFINAL assume true; 381370#factEXIT >#66#return; 381371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383424#factFINAL assume true; 382187#factEXIT >#68#return; 380711#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 380791#$Ultimate##0 ~n := #in~n; 381317#L25 assume !(~n <= 0); 380896#L26 call #t~ret0 := fact(~n - 1);< 381008#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381450#factFINAL assume true; 381324#factEXIT >#70#return; 381195#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 381451#$Ultimate##0 ~n := #in~n; 384109#L25 assume !(~n <= 0); 380959#L26 call #t~ret0 := fact(~n - 1);< 381040#$Ultimate##0 ~n := #in~n; 384187#L25 assume !(~n <= 0); 380964#L26 call #t~ret0 := fact(~n - 1);< 381058#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381450#factFINAL assume true; 381324#factEXIT >#72#return; 381338#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382641#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 382635#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382634#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382633#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 380914#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 380944#$Ultimate##0 ~n := #in~n; 380945#L25 assume !(~n <= 0); 380911#L26 call #t~ret0 := fact(~n - 1);< 380942#$Ultimate##0 ~n := #in~n; 381494#L25 assume !(~n <= 0); 380992#L26 call #t~ret0 := fact(~n - 1);< 381007#$Ultimate##0 ~n := #in~n; 384233#L25 assume !(~n <= 0); 381020#L26 call #t~ret0 := fact(~n - 1);< 381161#$Ultimate##0 ~n := #in~n; 384256#L25 assume !(~n <= 0); 380960#L26 call #t~ret0 := fact(~n - 1);< 381185#$Ultimate##0 ~n := #in~n; 384252#L25 assume !(~n <= 0); 381209#L26 call #t~ret0 := fact(~n - 1);< 381210#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381018#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381010#factFINAL assume true; 380990#factEXIT >#66#return; 380996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381374#factFINAL assume true; 381370#factEXIT >#66#return; 381371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383424#factFINAL assume true; 382187#factEXIT >#68#return; 380681#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 380791#$Ultimate##0 ~n := #in~n; 381317#L25 assume !(~n <= 0); 380896#L26 call #t~ret0 := fact(~n - 1);< 381008#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381579#factFINAL assume true; 381578#factEXIT >#70#return; 381159#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 381382#$Ultimate##0 ~n := #in~n; 381379#L25 assume !(~n <= 0); 380969#L26 call #t~ret0 := fact(~n - 1);< 381146#$Ultimate##0 ~n := #in~n; 384187#L25 assume !(~n <= 0); 380964#L26 call #t~ret0 := fact(~n - 1);< 381058#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381450#factFINAL assume true; 381324#factEXIT >#72#return; 381332#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382624#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); 382613#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 380927#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 380944#$Ultimate##0 ~n := #in~n; 380945#L25 assume !(~n <= 0); 380911#L26 call #t~ret0 := fact(~n - 1);< 380942#$Ultimate##0 ~n := #in~n; 381494#L25 assume !(~n <= 0); 380992#L26 call #t~ret0 := fact(~n - 1);< 381007#$Ultimate##0 ~n := #in~n; 384233#L25 assume !(~n <= 0); 381020#L26 call #t~ret0 := fact(~n - 1);< 381161#$Ultimate##0 ~n := #in~n; 384256#L25 assume !(~n <= 0); 380960#L26 call #t~ret0 := fact(~n - 1);< 381185#$Ultimate##0 ~n := #in~n; 384252#L25 assume !(~n <= 0); 381209#L26 call #t~ret0 := fact(~n - 1);< 381210#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381018#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381010#factFINAL assume true; 380990#factEXIT >#66#return; 380996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381374#factFINAL assume true; 381370#factEXIT >#66#return; 381371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383424#factFINAL assume true; 382187#factEXIT >#68#return; 380644#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 380791#$Ultimate##0 ~n := #in~n; 381317#L25 assume !(~n <= 0); 380896#L26 call #t~ret0 := fact(~n - 1);< 381008#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381018#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381010#factFINAL assume true; 380990#factEXIT >#66#return; 380997#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381504#factFINAL assume true; 381423#factEXIT >#70#return; 381158#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 381382#$Ultimate##0 ~n := #in~n; 381379#L25 assume !(~n <= 0); 380969#L26 call #t~ret0 := fact(~n - 1);< 381146#$Ultimate##0 ~n := #in~n; 381174#L25 assume ~n <= 0;#res := 1; 381136#factFINAL assume true; 381126#factEXIT >#66#return; 381130#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381492#factFINAL assume true; 381404#factEXIT >#72#return; 381410#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 383436#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 383435#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 383433#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 383431#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 380925#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 380944#$Ultimate##0 ~n := #in~n; 380945#L25 assume !(~n <= 0); 380911#L26 call #t~ret0 := fact(~n - 1);< 380942#$Ultimate##0 ~n := #in~n; 381494#L25 assume !(~n <= 0); 380992#L26 call #t~ret0 := fact(~n - 1);< 381007#$Ultimate##0 ~n := #in~n; 384233#L25 assume !(~n <= 0); 381020#L26 call #t~ret0 := fact(~n - 1);< 381161#$Ultimate##0 ~n := #in~n; 384256#L25 assume !(~n <= 0); 380960#L26 call #t~ret0 := fact(~n - 1);< 381185#$Ultimate##0 ~n := #in~n; 384252#L25 assume !(~n <= 0); 381209#L26 call #t~ret0 := fact(~n - 1);< 381210#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381018#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381010#factFINAL assume true; 380990#factEXIT >#66#return; 380996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381374#factFINAL assume true; 381370#factEXIT >#66#return; 381371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383424#factFINAL assume true; 382187#factEXIT >#68#return; 380729#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 380791#$Ultimate##0 ~n := #in~n; 381317#L25 assume !(~n <= 0); 380896#L26 call #t~ret0 := fact(~n - 1);< 381008#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381218#L25 assume !(~n <= 0); 380894#L26 call #t~ret0 := fact(~n - 1);< 381212#$Ultimate##0 ~n := #in~n; 381219#L25 assume ~n <= 0;#res := 1; 381215#factFINAL assume true; 381208#factEXIT >#66#return; 381203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381187#factFINAL assume true; 380954#factEXIT >#66#return; 380983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381028#factFINAL assume true; 381019#factEXIT >#66#return; 381018#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381010#factFINAL assume true; 380990#factEXIT >#66#return; 380997#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381504#factFINAL assume true; 381423#factEXIT >#70#return; 381150#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 381391#$Ultimate##0 ~n := #in~n; 381378#L25 assume ~n <= 0;#res := 1; 381176#factFINAL assume true; 382170#factEXIT >#72#return; 382173#L30-3 [2023-02-18 08:57:08,398 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:08,398 INFO L85 PathProgramCache]: Analyzing trace with hash 1162603421, now seen corresponding path program 56 times [2023-02-18 08:57:08,398 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:08,398 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1914401481] [2023-02-18 08:57:08,398 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:08,398 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:08,413 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:08,413 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1741497057] [2023-02-18 08:57:08,413 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:57:08,413 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:08,414 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:08,416 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-18 08:57:08,417 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-18 08:57:08,850 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:57:08,850 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:08,856 INFO L263 TraceCheckSpWp]: Trace formula consists of 2023 conjuncts, 12 conjunts are in the unsatisfiable core [2023-02-18 08:57:08,862 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:08,893 INFO L134 CoverageAnalysis]: Checked inductivity of 51287 backedges. 19969 proven. 17 refuted. 0 times theorem prover too weak. 31301 trivial. 0 not checked. [2023-02-18 08:57:08,893 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:08,952 INFO L134 CoverageAnalysis]: Checked inductivity of 51287 backedges. 855 proven. 1434 refuted. 0 times theorem prover too weak. 48998 trivial. 0 not checked. [2023-02-18 08:57:08,953 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:08,953 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1914401481] [2023-02-18 08:57:08,953 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:08,953 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1741497057] [2023-02-18 08:57:08,953 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1741497057] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:08,953 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:08,953 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 12] total 13 [2023-02-18 08:57:08,953 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [250682799] [2023-02-18 08:57:08,953 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:08,954 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:57:08,954 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:08,954 INFO L85 PathProgramCache]: Analyzing trace with hash -1387341499, now seen corresponding path program 56 times [2023-02-18 08:57:08,954 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:08,954 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1406598711] [2023-02-18 08:57:08,954 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:08,954 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:09,013 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:09,013 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1708215497] [2023-02-18 08:57:09,013 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:57:09,013 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:09,013 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:09,015 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-18 08:57:09,016 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-18 08:57:09,359 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:57:09,359 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:09,363 INFO L263 TraceCheckSpWp]: Trace formula consists of 1193 conjuncts, 32 conjunts are in the unsatisfiable core [2023-02-18 08:57:09,366 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:09,459 INFO L134 CoverageAnalysis]: Checked inductivity of 20857 backedges. 10440 proven. 751 refuted. 0 times theorem prover too weak. 9666 trivial. 0 not checked. [2023-02-18 08:57:09,459 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:09,784 INFO L134 CoverageAnalysis]: Checked inductivity of 20857 backedges. 680 proven. 3799 refuted. 0 times theorem prover too weak. 16378 trivial. 0 not checked. [2023-02-18 08:57:09,784 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:09,784 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1406598711] [2023-02-18 08:57:09,784 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:09,784 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1708215497] [2023-02-18 08:57:09,784 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1708215497] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:09,784 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:09,785 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 30] total 33 [2023-02-18 08:57:09,785 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1006401241] [2023-02-18 08:57:09,785 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:09,785 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:57:09,785 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:57:09,785 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 33 interpolants. [2023-02-18 08:57:09,786 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=150, Invalid=906, Unknown=0, NotChecked=0, Total=1056 [2023-02-18 08:57:09,786 INFO L87 Difference]: Start difference. First operand 3785 states and 5681 transitions. cyclomatic complexity: 1930 Second operand has 33 states, 30 states have (on average 2.8666666666666667) internal successors, (86), 33 states have internal predecessors, (86), 20 states have call successors, (29), 2 states have call predecessors, (29), 14 states have return successors, (37), 15 states have call predecessors, (37), 20 states have call successors, (37) [2023-02-18 08:57:11,245 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:57:11,245 INFO L93 Difference]: Finished difference Result 4851 states and 7632 transitions. [2023-02-18 08:57:11,245 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4851 states and 7632 transitions. [2023-02-18 08:57:11,268 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 1105 [2023-02-18 08:57:11,292 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4851 states to 4824 states and 7563 transitions. [2023-02-18 08:57:11,292 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 623 [2023-02-18 08:57:11,293 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 623 [2023-02-18 08:57:11,293 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4824 states and 7563 transitions. [2023-02-18 08:57:11,293 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:57:11,293 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4824 states and 7563 transitions. [2023-02-18 08:57:11,294 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4824 states and 7563 transitions. [2023-02-18 08:57:11,347 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4824 to 3778. [2023-02-18 08:57:11,350 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3778 states, 2361 states have (on average 1.0571791613722998) internal successors, (2496), 2358 states have internal predecessors, (2496), 1171 states have call successors, (1187), 334 states have call predecessors, (1187), 246 states have return successors, (1983), 1085 states have call predecessors, (1983), 1171 states have call successors, (1983) [2023-02-18 08:57:11,361 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3778 states to 3778 states and 5666 transitions. [2023-02-18 08:57:11,361 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3778 states and 5666 transitions. [2023-02-18 08:57:11,362 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 36 states. [2023-02-18 08:57:11,362 INFO L428 stractBuchiCegarLoop]: Abstraction has 3778 states and 5666 transitions. [2023-02-18 08:57:11,362 INFO L335 stractBuchiCegarLoop]: ======== Iteration 69 ============ [2023-02-18 08:57:11,362 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 3778 states and 5666 transitions. [2023-02-18 08:57:11,370 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 696 [2023-02-18 08:57:11,371 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:57:11,371 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:57:11,373 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [144, 144, 93, 93, 93, 93, 51, 17, 16, 11, 11, 11, 11, 11, 11, 11, 10, 10, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-18 08:57:11,373 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [91, 91, 70, 70, 70, 70, 21, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:57:11,374 INFO L748 eck$LassoCheckResult]: Stem: 398120#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 398071#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; 398072#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 398093#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; 398121#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 400519#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 400517#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 400513#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 400514#$Ultimate##0 ~n := #in~n; 400518#L25 assume ~n <= 0;#res := 1; 400516#factFINAL assume true; 400512#factEXIT >#68#return; 400508#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 400509#$Ultimate##0 ~n := #in~n; 400515#L25 assume ~n <= 0;#res := 1; 400511#factFINAL assume true; 400507#factEXIT >#70#return; 400504#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 400505#$Ultimate##0 ~n := #in~n; 400510#L25 assume ~n <= 0;#res := 1; 400506#factFINAL assume true; 400503#factEXIT >#72#return; 400501#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 400499#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 400490#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 400484#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 400481#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 400476#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 400477#$Ultimate##0 ~n := #in~n; 400496#L25 assume !(~n <= 0); 400493#L26 call #t~ret0 := fact(~n - 1);< 400494#$Ultimate##0 ~n := #in~n; 400502#L25 assume ~n <= 0;#res := 1; 400500#factFINAL assume true; 400492#factEXIT >#66#return; 400486#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400480#factFINAL assume true; 400475#factEXIT >#74#return; 400473#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 400474#$Ultimate##0 ~n := #in~n; 400491#L25 assume ~n <= 0;#res := 1; 400485#factFINAL assume true; 400472#factEXIT >#76#return; 400442#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 400443#$Ultimate##0 ~n := #in~n; 400498#L25 assume !(~n <= 0); 400488#L26 call #t~ret0 := fact(~n - 1);< 400489#$Ultimate##0 ~n := #in~n; 400497#L25 assume ~n <= 0;#res := 1; 400495#factFINAL assume true; 400487#factEXIT >#66#return; 400479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400471#factFINAL assume true; 400441#factEXIT >#78#return; 400439#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 400437#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 400436#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 400434#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 400432#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 400428#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 400429#$Ultimate##0 ~n := #in~n; 400483#L25 assume !(~n <= 0); 400453#L26 call #t~ret0 := fact(~n - 1);< 400457#$Ultimate##0 ~n := #in~n; 400469#L25 assume !(~n <= 0); 400452#L26 call #t~ret0 := fact(~n - 1);< 400468#$Ultimate##0 ~n := #in~n; 400478#L25 assume ~n <= 0;#res := 1; 400470#factFINAL assume true; 400467#factEXIT >#66#return; 400466#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400464#factFINAL assume true; 400451#factEXIT >#66#return; 400456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400524#factFINAL assume true; 400427#factEXIT >#74#return; 400423#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 400424#$Ultimate##0 ~n := #in~n; 400465#L25 assume ~n <= 0;#res := 1; 400463#factFINAL assume true; 400422#factEXIT >#76#return; 400419#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 400420#$Ultimate##0 ~n := #in~n; 400459#L25 assume !(~n <= 0); 400454#L26 call #t~ret0 := fact(~n - 1);< 400457#$Ultimate##0 ~n := #in~n; 400469#L25 assume !(~n <= 0); 400452#L26 call #t~ret0 := fact(~n - 1);< 400468#$Ultimate##0 ~n := #in~n; 400478#L25 assume ~n <= 0;#res := 1; 400470#factFINAL assume true; 400467#factEXIT >#66#return; 400466#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400464#factFINAL assume true; 400451#factEXIT >#66#return; 400449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400447#factFINAL assume true; 400418#factEXIT >#78#return; 400416#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 400415#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 400414#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 400409#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 400406#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 400403#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 400404#$Ultimate##0 ~n := #in~n; 400462#L25 assume !(~n <= 0); 400412#L26 call #t~ret0 := fact(~n - 1);< 400413#$Ultimate##0 ~n := #in~n; 400431#L25 assume !(~n <= 0); 400411#L26 call #t~ret0 := fact(~n - 1);< 400426#$Ultimate##0 ~n := #in~n; 400431#L25 assume !(~n <= 0); 400411#L26 call #t~ret0 := fact(~n - 1);< 400426#$Ultimate##0 ~n := #in~n; 400440#L25 assume ~n <= 0;#res := 1; 400438#factFINAL assume true; 400435#factEXIT >#66#return; 400433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400430#factFINAL assume true; 400425#factEXIT >#66#return; 400421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400417#factFINAL assume true; 400410#factEXIT >#66#return; 400408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400405#factFINAL assume true; 400402#factEXIT >#74#return; 400397#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 400398#$Ultimate##0 ~n := #in~n; 400401#L25 assume ~n <= 0;#res := 1; 400400#factFINAL assume true; 400396#factEXIT >#76#return; 398101#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 399236#$Ultimate##0 ~n := #in~n; 399541#L25 assume !(~n <= 0); 399441#L26 call #t~ret0 := fact(~n - 1);< 399445#$Ultimate##0 ~n := #in~n; 399545#L25 assume !(~n <= 0); 399443#L26 call #t~ret0 := fact(~n - 1);< 399534#$Ultimate##0 ~n := #in~n; 399545#L25 assume !(~n <= 0); 399443#L26 call #t~ret0 := fact(~n - 1);< 399534#$Ultimate##0 ~n := #in~n; 399544#L25 assume ~n <= 0;#res := 1; 399543#factFINAL assume true; 399542#factEXIT >#66#return; 399540#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 399538#factFINAL assume true; 399533#factEXIT >#66#return; 399531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 399529#factFINAL assume true; 399440#factEXIT >#66#return; 398100#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398102#factFINAL assume true; 399235#factEXIT >#78#return; 399231#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 399229#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 399228#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 399224#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 399222#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 399129#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 399101#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 398910#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 398814#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 398818#$Ultimate##0 ~n := #in~n; 398882#L25 assume !(~n <= 0); 398856#L26 call #t~ret0 := fact(~n - 1);< 398862#$Ultimate##0 ~n := #in~n; 399907#L25 assume ~n <= 0;#res := 1; 399900#factFINAL assume true; 399889#factEXIT >#66#return; 399896#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 399899#factFINAL assume true; 399888#factEXIT >#68#return; 399881#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 398808#$Ultimate##0 ~n := #in~n; 399897#L25 assume ~n <= 0;#res := 1; 399887#factFINAL assume true; 399880#factEXIT >#70#return; 399877#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 399878#$Ultimate##0 ~n := #in~n; 399898#L25 assume !(~n <= 0); 398839#L26 call #t~ret0 := fact(~n - 1);< 398881#$Ultimate##0 ~n := #in~n; 399907#L25 assume ~n <= 0;#res := 1; 399900#factFINAL assume true; 399889#factEXIT >#66#return; 399886#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 399879#factFINAL assume true; 399876#factEXIT >#72#return; 399875#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 399874#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 399873#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 399872#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 399871#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 399862#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 399867#$Ultimate##0 ~n := #in~n; 399869#L25 assume !(~n <= 0); 398851#L26 call #t~ret0 := fact(~n - 1);< 398881#$Ultimate##0 ~n := #in~n; 399907#L25 assume ~n <= 0;#res := 1; 399900#factFINAL assume true; 399889#factEXIT >#66#return; 399893#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 399956#factFINAL assume true; 399954#factEXIT >#68#return; 399822#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 399925#$Ultimate##0 ~n := #in~n; 399957#L25 assume !(~n <= 0); 398845#L26 call #t~ret0 := fact(~n - 1);< 398862#$Ultimate##0 ~n := #in~n; 399907#L25 assume ~n <= 0;#res := 1; 399900#factFINAL assume true; 399889#factEXIT >#66#return; 399895#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 399924#factFINAL assume true; 399915#factEXIT >#70#return; 399802#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 399809#$Ultimate##0 ~n := #in~n; 400136#L25 assume ~n <= 0;#res := 1; 400133#factFINAL assume true; 399795#factEXIT >#72#return; 399808#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 400218#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 400216#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 400214#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 400212#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 399828#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 400072#$Ultimate##0 ~n := #in~n; 400068#L25 assume !(~n <= 0); 398844#L26 call #t~ret0 := fact(~n - 1);< 400035#$Ultimate##0 ~n := #in~n; 400062#L25 assume !(~n <= 0); 398841#L26 call #t~ret0 := fact(~n - 1);< 400052#$Ultimate##0 ~n := #in~n; 398926#L25 assume ~n <= 0;#res := 1; 398909#factFINAL assume true; 398891#factEXIT >#66#return; 398889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398877#factFINAL assume true; 398833#factEXIT >#66#return; 398860#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400149#factFINAL assume true; 399812#factEXIT >#74#return; 399814#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 399925#$Ultimate##0 ~n := #in~n; 399957#L25 assume !(~n <= 0); 398845#L26 call #t~ret0 := fact(~n - 1);< 398862#$Ultimate##0 ~n := #in~n; 399907#L25 assume ~n <= 0;#res := 1; 399900#factFINAL assume true; 399889#factEXIT >#66#return; 399895#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 399924#factFINAL assume true; 399915#factEXIT >#76#return; 399848#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 399926#$Ultimate##0 ~n := #in~n; 399955#L25 assume !(~n <= 0); 399892#L26 call #t~ret0 := fact(~n - 1);< 399906#$Ultimate##0 ~n := #in~n; 399907#L25 assume ~n <= 0;#res := 1; 399900#factFINAL assume true; 399889#factEXIT >#66#return; 399895#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 399924#factFINAL assume true; 399915#factEXIT >#78#return; 399921#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 400175#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 400174#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 400172#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 400171#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 399727#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 399607#$Ultimate##0 ~n := #in~n; 400240#L25 assume !(~n <= 0); 400115#L26 call #t~ret0 := fact(~n - 1);< 400162#$Ultimate##0 ~n := #in~n; 400258#L25 assume !(~n <= 0); 400125#L26 call #t~ret0 := fact(~n - 1);< 400144#$Ultimate##0 ~n := #in~n; 400258#L25 assume !(~n <= 0); 400125#L26 call #t~ret0 := fact(~n - 1);< 400144#$Ultimate##0 ~n := #in~n; 400224#L25 assume ~n <= 0;#res := 1; 400225#factFINAL assume true; 400220#factEXIT >#66#return; 400219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400196#factFINAL assume true; 400191#factEXIT >#66#return; 400190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400189#factFINAL assume true; 400139#factEXIT >#66#return; 400138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400121#factFINAL assume true; 399761#factEXIT >#74#return; 399762#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 399870#$Ultimate##0 ~n := #in~n; 400257#L25 assume !(~n <= 0); 400114#L26 call #t~ret0 := fact(~n - 1);< 400146#$Ultimate##0 ~n := #in~n; 400178#L25 assume ~n <= 0;#res := 1; 400176#factFINAL assume true; 400110#factEXIT >#66#return; 400109#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400106#factFINAL assume true; 400101#factEXIT >#76#return; 399730#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 400099#$Ultimate##0 ~n := #in~n; 400210#L25 assume !(~n <= 0); 400117#L26 call #t~ret0 := fact(~n - 1);< 400207#$Ultimate##0 ~n := #in~n; 400148#L25 assume !(~n <= 0); 400142#L26 call #t~ret0 := fact(~n - 1);< 400145#$Ultimate##0 ~n := #in~n; 400224#L25 assume ~n <= 0;#res := 1; 400225#factFINAL assume true; 400220#factEXIT >#66#return; 400219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400196#factFINAL assume true; 400191#factEXIT >#66#return; 400193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400226#factFINAL assume true; 400179#factEXIT >#78#return; 400180#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 400365#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 400364#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 400362#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 400355#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 400353#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 400347#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 400343#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 398817#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 398818#$Ultimate##0 ~n := #in~n; 398882#L25 assume !(~n <= 0); 398856#L26 call #t~ret0 := fact(~n - 1);< 398862#$Ultimate##0 ~n := #in~n; 400328#L25 assume !(~n <= 0); 398835#L26 call #t~ret0 := fact(~n - 1);< 398894#$Ultimate##0 ~n := #in~n; 398926#L25 assume ~n <= 0;#res := 1; 398909#factFINAL assume true; 398891#factEXIT >#66#return; 398889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398877#factFINAL assume true; 398833#factEXIT >#66#return; 398831#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398826#factFINAL assume true; 398810#factEXIT >#68#return; 398805#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 398809#$Ultimate##0 ~n := #in~n; 398828#L25 assume ~n <= 0;#res := 1; 398820#factFINAL assume true; 398801#factEXIT >#70#return; 398792#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 398799#$Ultimate##0 ~n := #in~n; 398827#L25 assume !(~n <= 0); 398548#L26 call #t~ret0 := fact(~n - 1);< 398557#$Ultimate##0 ~n := #in~n; 401796#L25 assume !(~n <= 0); 398590#L26 call #t~ret0 := fact(~n - 1);< 398591#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398555#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398800#factFINAL assume true; 398791#factEXIT >#72#return; 398796#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 399459#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 399460#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 399455#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 399456#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 398763#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 398771#$Ultimate##0 ~n := #in~n; 400342#L25 assume !(~n <= 0); 398546#L26 call #t~ret0 := fact(~n - 1);< 398557#$Ultimate##0 ~n := #in~n; 401796#L25 assume !(~n <= 0); 398590#L26 call #t~ret0 := fact(~n - 1);< 398591#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398554#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398774#factFINAL assume true; 398762#factEXIT >#68#return; 398645#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 398657#$Ultimate##0 ~n := #in~n; 398703#L25 assume !(~n <= 0); 398512#L26 call #t~ret0 := fact(~n - 1);< 398680#$Ultimate##0 ~n := #in~n; 398716#L25 assume ~n <= 0;#res := 1; 398684#factFINAL assume true; 398671#factEXIT >#66#return; 398666#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398658#factFINAL assume true; 398632#factEXIT >#70#return; 398646#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 398659#$Ultimate##0 ~n := #in~n; 398700#L25 assume !(~n <= 0); 398672#L26 call #t~ret0 := fact(~n - 1);< 398679#$Ultimate##0 ~n := #in~n; 398716#L25 assume ~n <= 0;#res := 1; 398684#factFINAL assume true; 398671#factEXIT >#66#return; 398666#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398658#factFINAL assume true; 398632#factEXIT >#72#return; 398654#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 400897#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 400898#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 400893#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 400894#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 398766#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 398771#$Ultimate##0 ~n := #in~n; 400342#L25 assume !(~n <= 0); 398546#L26 call #t~ret0 := fact(~n - 1);< 398557#$Ultimate##0 ~n := #in~n; 401796#L25 assume !(~n <= 0); 398590#L26 call #t~ret0 := fact(~n - 1);< 398591#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398554#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398774#factFINAL assume true; 398762#factEXIT >#68#return; 398755#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 398758#$Ultimate##0 ~n := #in~n; 400132#L25 assume !(~n <= 0); 398507#L26 call #t~ret0 := fact(~n - 1);< 398558#$Ultimate##0 ~n := #in~n; 398612#L25 assume !(~n <= 0); 398549#L26 call #t~ret0 := fact(~n - 1);< 398592#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398553#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398760#factFINAL assume true; 398753#factEXIT >#70#return; 398745#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 398751#$Ultimate##0 ~n := #in~n; 398759#L25 assume ~n <= 0;#res := 1; 398701#factFINAL assume true; 398743#factEXIT >#72#return; 398748#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 401394#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 401393#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 401386#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 401385#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 398737#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 398039#$Ultimate##0 ~n := #in~n; 401418#L25 assume !(~n <= 0); 401190#L26 call #t~ret0 := fact(~n - 1);< 401201#$Ultimate##0 ~n := #in~n; 401260#L25 assume !(~n <= 0); 401189#L26 call #t~ret0 := fact(~n - 1);< 401322#$Ultimate##0 ~n := #in~n; 401260#L25 assume !(~n <= 0); 401189#L26 call #t~ret0 := fact(~n - 1);< 401322#$Ultimate##0 ~n := #in~n; 401340#L25 assume ~n <= 0;#res := 1; 401338#factFINAL assume true; 401320#factEXIT >#66#return; 401249#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 401240#factFINAL assume true; 401230#factEXIT >#66#return; 401227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 401217#factFINAL assume true; 401205#factEXIT >#66#return; 401212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 401350#factFINAL assume true; 401328#factEXIT >#74#return; 401243#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 401374#$Ultimate##0 ~n := #in~n; 401251#L25 assume !(~n <= 0); 401210#L26 call #t~ret0 := fact(~n - 1);< 401245#$Ultimate##0 ~n := #in~n; 401246#L25 assume !(~n <= 0); 401231#L26 call #t~ret0 := fact(~n - 1);< 401239#$Ultimate##0 ~n := #in~n; 401348#L25 assume !(~n <= 0); 401321#L26 call #t~ret0 := fact(~n - 1);< 401323#$Ultimate##0 ~n := #in~n; 401340#L25 assume ~n <= 0;#res := 1; 401338#factFINAL assume true; 401320#factEXIT >#66#return; 401249#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 401240#factFINAL assume true; 401230#factEXIT >#66#return; 401227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 401217#factFINAL assume true; 401205#factEXIT >#66#return; 401212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 401350#factFINAL assume true; 401328#factEXIT >#76#return; 401326#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 401372#$Ultimate##0 ~n := #in~n; 401388#L25 assume !(~n <= 0); 401381#L26 call #t~ret0 := fact(~n - 1);< 398077#$Ultimate##0 ~n := #in~n; 401354#L25 assume ~n <= 0;#res := 1; 401387#factFINAL assume true; 401379#factEXIT >#66#return; 401377#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 401375#factFINAL assume true; 401325#factEXIT >#78#return; 401327#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 401478#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 401476#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 401474#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 401472#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 401470#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 401469#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 401468#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 399933#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 399936#$Ultimate##0 ~n := #in~n; 399932#L25 assume !(~n <= 0); 398445#L26 call #t~ret0 := fact(~n - 1);< 401800#$Ultimate##0 ~n := #in~n; 401799#L25 assume !(~n <= 0); 398481#L26 call #t~ret0 := fact(~n - 1);< 401797#$Ultimate##0 ~n := #in~n; 401798#L25 assume !(~n <= 0); 398506#L26 call #t~ret0 := fact(~n - 1);< 401803#$Ultimate##0 ~n := #in~n; 401802#L25 assume !(~n <= 0); 398547#L26 call #t~ret0 := fact(~n - 1);< 398592#$Ultimate##0 ~n := #in~n; 401796#L25 assume !(~n <= 0); 398590#L26 call #t~ret0 := fact(~n - 1);< 398591#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398495#factFINAL assume true; 398471#factEXIT >#66#return; 398470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398463#factFINAL assume true; 398430#factEXIT >#66#return; 398456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 401027#factFINAL assume true; 401025#factEXIT >#68#return; 401014#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 398113#$Ultimate##0 ~n := #in~n; 401026#L25 assume ~n <= 0;#res := 1; 401024#factFINAL assume true; 401010#factEXIT >#70#return; 398566#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 400388#$Ultimate##0 ~n := #in~n; 400389#L25 assume !(~n <= 0); 398449#L26 call #t~ret0 := fact(~n - 1);< 398542#$Ultimate##0 ~n := #in~n; 398540#L25 assume !(~n <= 0); 398454#L26 call #t~ret0 := fact(~n - 1);< 398494#$Ultimate##0 ~n := #in~n; 398585#L25 assume !(~n <= 0); 398441#L26 call #t~ret0 := fact(~n - 1);< 398522#$Ultimate##0 ~n := #in~n; 398600#L25 assume !(~n <= 0); 398432#L26 call #t~ret0 := fact(~n - 1);< 398502#$Ultimate##0 ~n := #in~n; 398613#L25 assume !(~n <= 0); 398433#L26 call #t~ret0 := fact(~n - 1);< 398593#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398495#factFINAL assume true; 398471#factEXIT >#66#return; 398470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398463#factFINAL assume true; 398430#factEXIT >#66#return; 398460#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 401031#factFINAL assume true; 400996#factEXIT >#72#return; 401003#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 401467#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 401466#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 401465#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 401464#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 398396#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 398427#$Ultimate##0 ~n := #in~n; 399346#L25 assume !(~n <= 0); 398431#L26 call #t~ret0 := fact(~n - 1);< 398462#$Ultimate##0 ~n := #in~n; 398539#L25 assume !(~n <= 0); 398472#L26 call #t~ret0 := fact(~n - 1);< 398493#$Ultimate##0 ~n := #in~n; 401795#L25 assume !(~n <= 0); 398107#L26 call #t~ret0 := fact(~n - 1);< 398115#$Ultimate##0 ~n := #in~n; 398106#L25 assume !(~n <= 0); 398108#L26 call #t~ret0 := fact(~n - 1);< 398557#$Ultimate##0 ~n := #in~n; 401796#L25 assume !(~n <= 0); 398590#L26 call #t~ret0 := fact(~n - 1);< 398591#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398495#factFINAL assume true; 398471#factEXIT >#66#return; 398470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398463#factFINAL assume true; 398430#factEXIT >#66#return; 398429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398428#factFINAL assume true; 398359#factEXIT >#68#return; 398164#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 398211#$Ultimate##0 ~n := #in~n; 399325#L25 assume !(~n <= 0); 398673#L26 call #t~ret0 := fact(~n - 1);< 398679#$Ultimate##0 ~n := #in~n; 398716#L25 assume ~n <= 0;#res := 1; 398684#factFINAL assume true; 398671#factEXIT >#66#return; 398676#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400940#factFINAL assume true; 400923#factEXIT >#70#return; 398607#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 398610#$Ultimate##0 ~n := #in~n; 398608#L25 assume !(~n <= 0); 398474#L26 call #t~ret0 := fact(~n - 1);< 398601#$Ultimate##0 ~n := #in~n; 398599#L25 assume !(~n <= 0); 398505#L26 call #t~ret0 := fact(~n - 1);< 398558#$Ultimate##0 ~n := #in~n; 398612#L25 assume !(~n <= 0); 398549#L26 call #t~ret0 := fact(~n - 1);< 398592#$Ultimate##0 ~n := #in~n; 401796#L25 assume !(~n <= 0); 398590#L26 call #t~ret0 := fact(~n - 1);< 398591#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398495#factFINAL assume true; 398471#factEXIT >#66#return; 398486#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400955#factFINAL assume true; 400941#factEXIT >#72#return; 400952#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 401463#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 401462#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 401461#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 401460#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 398369#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 398427#$Ultimate##0 ~n := #in~n; 399346#L25 assume !(~n <= 0); 398431#L26 call #t~ret0 := fact(~n - 1);< 398462#$Ultimate##0 ~n := #in~n; 398539#L25 assume !(~n <= 0); 398472#L26 call #t~ret0 := fact(~n - 1);< 398493#$Ultimate##0 ~n := #in~n; 401795#L25 assume !(~n <= 0); 398107#L26 call #t~ret0 := fact(~n - 1);< 398115#$Ultimate##0 ~n := #in~n; 398106#L25 assume !(~n <= 0); 398108#L26 call #t~ret0 := fact(~n - 1);< 398557#$Ultimate##0 ~n := #in~n; 401796#L25 assume !(~n <= 0); 398590#L26 call #t~ret0 := fact(~n - 1);< 398591#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398495#factFINAL assume true; 398471#factEXIT >#66#return; 398470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398463#factFINAL assume true; 398430#factEXIT >#66#return; 398429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398428#factFINAL assume true; 398359#factEXIT >#68#return; 398269#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 398347#$Ultimate##0 ~n := #in~n; 399273#L25 assume !(~n <= 0); 398439#L26 call #t~ret0 := fact(~n - 1);< 398502#$Ultimate##0 ~n := #in~n; 398613#L25 assume !(~n <= 0); 398433#L26 call #t~ret0 := fact(~n - 1);< 398593#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398551#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400986#factFINAL assume true; 400985#factEXIT >#70#return; 398579#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 399100#$Ultimate##0 ~n := #in~n; 399079#L25 assume !(~n <= 0); 398515#L26 call #t~ret0 := fact(~n - 1);< 398558#$Ultimate##0 ~n := #in~n; 398612#L25 assume !(~n <= 0); 398549#L26 call #t~ret0 := fact(~n - 1);< 398592#$Ultimate##0 ~n := #in~n; 401796#L25 assume !(~n <= 0); 398590#L26 call #t~ret0 := fact(~n - 1);< 398591#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398517#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400981#factFINAL assume true; 400961#factEXIT >#72#return; 400977#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 401530#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 401529#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 401528#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 401527#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 398407#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 398427#$Ultimate##0 ~n := #in~n; 399346#L25 assume !(~n <= 0); 398431#L26 call #t~ret0 := fact(~n - 1);< 398462#$Ultimate##0 ~n := #in~n; 398539#L25 assume !(~n <= 0); 398472#L26 call #t~ret0 := fact(~n - 1);< 398493#$Ultimate##0 ~n := #in~n; 401795#L25 assume !(~n <= 0); 398107#L26 call #t~ret0 := fact(~n - 1);< 398115#$Ultimate##0 ~n := #in~n; 398106#L25 assume !(~n <= 0); 398108#L26 call #t~ret0 := fact(~n - 1);< 398557#$Ultimate##0 ~n := #in~n; 401796#L25 assume !(~n <= 0); 398590#L26 call #t~ret0 := fact(~n - 1);< 398591#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398495#factFINAL assume true; 398471#factEXIT >#66#return; 398470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398463#factFINAL assume true; 398430#factEXIT >#66#return; 398429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398428#factFINAL assume true; 398359#factEXIT >#68#return; 398266#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 398347#$Ultimate##0 ~n := #in~n; 399273#L25 assume !(~n <= 0); 398439#L26 call #t~ret0 := fact(~n - 1);< 398502#$Ultimate##0 ~n := #in~n; 398613#L25 assume !(~n <= 0); 398433#L26 call #t~ret0 := fact(~n - 1);< 398593#$Ultimate##0 ~n := #in~n; 398613#L25 assume !(~n <= 0); 398433#L26 call #t~ret0 := fact(~n - 1);< 398593#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398517#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400981#factFINAL assume true; 400961#factEXIT >#70#return; 398158#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 398724#$Ultimate##0 ~n := #in~n; 398722#L25 assume !(~n <= 0); 398514#L26 call #t~ret0 := fact(~n - 1);< 398680#$Ultimate##0 ~n := #in~n; 398716#L25 assume ~n <= 0;#res := 1; 398684#factFINAL assume true; 398671#factEXIT >#66#return; 398676#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400940#factFINAL assume true; 400923#factEXIT >#72#return; 400939#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 401599#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 401598#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 401597#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 401594#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 398383#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 398427#$Ultimate##0 ~n := #in~n; 399346#L25 assume !(~n <= 0); 398431#L26 call #t~ret0 := fact(~n - 1);< 398462#$Ultimate##0 ~n := #in~n; 398539#L25 assume !(~n <= 0); 398472#L26 call #t~ret0 := fact(~n - 1);< 398493#$Ultimate##0 ~n := #in~n; 401795#L25 assume !(~n <= 0); 398107#L26 call #t~ret0 := fact(~n - 1);< 398115#$Ultimate##0 ~n := #in~n; 398106#L25 assume !(~n <= 0); 398108#L26 call #t~ret0 := fact(~n - 1);< 398557#$Ultimate##0 ~n := #in~n; 401796#L25 assume !(~n <= 0); 398590#L26 call #t~ret0 := fact(~n - 1);< 398591#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398495#factFINAL assume true; 398471#factEXIT >#66#return; 398470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398463#factFINAL assume true; 398430#factEXIT >#66#return; 398429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398428#factFINAL assume true; 398359#factEXIT >#68#return; 398309#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 398347#$Ultimate##0 ~n := #in~n; 399273#L25 assume !(~n <= 0); 398439#L26 call #t~ret0 := fact(~n - 1);< 398502#$Ultimate##0 ~n := #in~n; 398613#L25 assume !(~n <= 0); 398433#L26 call #t~ret0 := fact(~n - 1);< 398593#$Ultimate##0 ~n := #in~n; 398613#L25 assume !(~n <= 0); 398433#L26 call #t~ret0 := fact(~n - 1);< 398593#$Ultimate##0 ~n := #in~n; 398613#L25 assume !(~n <= 0); 398433#L26 call #t~ret0 := fact(~n - 1);< 398593#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398495#factFINAL assume true; 398471#factEXIT >#66#return; 398486#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400955#factFINAL assume true; 400941#factEXIT >#70#return; 398129#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 398724#$Ultimate##0 ~n := #in~n; 398722#L25 assume ~n <= 0;#res := 1; 398719#factFINAL assume true; 398123#factEXIT >#72#return; 398193#L30-3 [2023-02-18 08:57:11,375 INFO L750 eck$LassoCheckResult]: Loop: 398193#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 401444#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 401442#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 401440#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 401437#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 401163#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 401247#$Ultimate##0 ~n := #in~n; 401331#L25 assume !(~n <= 0); 398080#L26 call #t~ret0 := fact(~n - 1);< 401301#$Ultimate##0 ~n := #in~n; 401319#L25 assume !(~n <= 0); 398078#L26 call #t~ret0 := fact(~n - 1);< 398082#$Ultimate##0 ~n := #in~n; 401248#L25 assume !(~n <= 0); 401188#L26 call #t~ret0 := fact(~n - 1);< 401215#$Ultimate##0 ~n := #in~n; 401345#L25 assume !(~n <= 0); 401196#L26 call #t~ret0 := fact(~n - 1);< 401238#$Ultimate##0 ~n := #in~n; 401260#L25 assume !(~n <= 0); 401189#L26 call #t~ret0 := fact(~n - 1);< 401322#$Ultimate##0 ~n := #in~n; 401340#L25 assume ~n <= 0;#res := 1; 401338#factFINAL assume true; 401320#factEXIT >#66#return; 401249#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 401240#factFINAL assume true; 401230#factEXIT >#66#return; 401227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 401217#factFINAL assume true; 401205#factEXIT >#66#return; 401204#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 401202#factFINAL assume true; 401182#factEXIT >#66#return; 401199#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 401346#factFINAL assume true; 401335#factEXIT >#66#return; 401293#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 401294#factFINAL assume true; 401152#factEXIT >#74#return; 401172#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 401391#$Ultimate##0 ~n := #in~n; 401390#L25 assume !(~n <= 0); 401187#L26 call #t~ret0 := fact(~n - 1);< 401229#$Ultimate##0 ~n := #in~n; 401226#L25 assume !(~n <= 0); 401207#L26 call #t~ret0 := fact(~n - 1);< 401216#$Ultimate##0 ~n := #in~n; 401342#L25 assume !(~n <= 0); 401233#L26 call #t~ret0 := fact(~n - 1);< 401239#$Ultimate##0 ~n := #in~n; 401348#L25 assume !(~n <= 0); 401321#L26 call #t~ret0 := fact(~n - 1);< 401323#$Ultimate##0 ~n := #in~n; 401340#L25 assume ~n <= 0;#res := 1; 401338#factFINAL assume true; 401320#factEXIT >#66#return; 401249#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 401240#factFINAL assume true; 401230#factEXIT >#66#return; 401227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 401217#factFINAL assume true; 401205#factEXIT >#66#return; 401204#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 401202#factFINAL assume true; 401182#factEXIT >#66#return; 401181#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 401179#factFINAL assume true; 401174#factEXIT >#76#return; 398062#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 398114#$Ultimate##0 ~n := #in~n; 398105#L25 assume !(~n <= 0); 398076#L26 call #t~ret0 := fact(~n - 1);< 398077#$Ultimate##0 ~n := #in~n; 401354#L25 assume ~n <= 0;#res := 1; 401387#factFINAL assume true; 401379#factEXIT >#66#return; 401383#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398058#factFINAL assume true; 398063#factEXIT >#78#return; 398048#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 401638#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 401635#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 401631#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 401630#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 401629#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 401627#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 401626#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 398464#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 399938#$Ultimate##0 ~n := #in~n; 401801#L25 assume !(~n <= 0); 398443#L26 call #t~ret0 := fact(~n - 1);< 398462#$Ultimate##0 ~n := #in~n; 398539#L25 assume !(~n <= 0); 398472#L26 call #t~ret0 := fact(~n - 1);< 398493#$Ultimate##0 ~n := #in~n; 401795#L25 assume !(~n <= 0); 398107#L26 call #t~ret0 := fact(~n - 1);< 398115#$Ultimate##0 ~n := #in~n; 398106#L25 assume !(~n <= 0); 398108#L26 call #t~ret0 := fact(~n - 1);< 398557#$Ultimate##0 ~n := #in~n; 401796#L25 assume !(~n <= 0); 398590#L26 call #t~ret0 := fact(~n - 1);< 398591#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398495#factFINAL assume true; 398471#factEXIT >#66#return; 398470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398463#factFINAL assume true; 398430#factEXIT >#66#return; 398456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 401027#factFINAL assume true; 401025#factEXIT >#68#return; 401021#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 398113#$Ultimate##0 ~n := #in~n; 401026#L25 assume ~n <= 0;#res := 1; 401024#factFINAL assume true; 401010#factEXIT >#70#return; 398572#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 400388#$Ultimate##0 ~n := #in~n; 400389#L25 assume !(~n <= 0); 398449#L26 call #t~ret0 := fact(~n - 1);< 398542#$Ultimate##0 ~n := #in~n; 398540#L25 assume !(~n <= 0); 398454#L26 call #t~ret0 := fact(~n - 1);< 398494#$Ultimate##0 ~n := #in~n; 398585#L25 assume !(~n <= 0); 398441#L26 call #t~ret0 := fact(~n - 1);< 398522#$Ultimate##0 ~n := #in~n; 398600#L25 assume !(~n <= 0); 398432#L26 call #t~ret0 := fact(~n - 1);< 398502#$Ultimate##0 ~n := #in~n; 398613#L25 assume !(~n <= 0); 398433#L26 call #t~ret0 := fact(~n - 1);< 398593#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398495#factFINAL assume true; 398471#factEXIT >#66#return; 398470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398463#factFINAL assume true; 398430#factEXIT >#66#return; 398460#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 401031#factFINAL assume true; 400996#factEXIT >#72#return; 401009#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 401623#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 401621#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 401619#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 401617#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 398380#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 398427#$Ultimate##0 ~n := #in~n; 399346#L25 assume !(~n <= 0); 398431#L26 call #t~ret0 := fact(~n - 1);< 398462#$Ultimate##0 ~n := #in~n; 398539#L25 assume !(~n <= 0); 398472#L26 call #t~ret0 := fact(~n - 1);< 398493#$Ultimate##0 ~n := #in~n; 401795#L25 assume !(~n <= 0); 398107#L26 call #t~ret0 := fact(~n - 1);< 398115#$Ultimate##0 ~n := #in~n; 398106#L25 assume !(~n <= 0); 398108#L26 call #t~ret0 := fact(~n - 1);< 398557#$Ultimate##0 ~n := #in~n; 401796#L25 assume !(~n <= 0); 398590#L26 call #t~ret0 := fact(~n - 1);< 398591#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398495#factFINAL assume true; 398471#factEXIT >#66#return; 398470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398463#factFINAL assume true; 398430#factEXIT >#66#return; 398429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398428#factFINAL assume true; 398359#factEXIT >#68#return; 398190#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 398211#$Ultimate##0 ~n := #in~n; 399325#L25 assume !(~n <= 0); 398673#L26 call #t~ret0 := fact(~n - 1);< 398679#$Ultimate##0 ~n := #in~n; 398716#L25 assume ~n <= 0;#res := 1; 398684#factFINAL assume true; 398671#factEXIT >#66#return; 398676#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400940#factFINAL assume true; 400923#factEXIT >#70#return; 398497#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 398355#$Ultimate##0 ~n := #in~n; 400317#L25 assume !(~n <= 0); 398484#L26 call #t~ret0 := fact(~n - 1);< 398493#$Ultimate##0 ~n := #in~n; 401795#L25 assume !(~n <= 0); 398107#L26 call #t~ret0 := fact(~n - 1);< 398115#$Ultimate##0 ~n := #in~n; 398106#L25 assume !(~n <= 0); 398108#L26 call #t~ret0 := fact(~n - 1);< 398557#$Ultimate##0 ~n := #in~n; 401796#L25 assume !(~n <= 0); 398590#L26 call #t~ret0 := fact(~n - 1);< 398591#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398495#factFINAL assume true; 398471#factEXIT >#66#return; 398486#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400955#factFINAL assume true; 400941#factEXIT >#72#return; 400951#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 401612#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 401602#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 401603#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 401425#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 398360#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 398427#$Ultimate##0 ~n := #in~n; 399346#L25 assume !(~n <= 0); 398431#L26 call #t~ret0 := fact(~n - 1);< 398462#$Ultimate##0 ~n := #in~n; 398539#L25 assume !(~n <= 0); 398472#L26 call #t~ret0 := fact(~n - 1);< 398493#$Ultimate##0 ~n := #in~n; 401795#L25 assume !(~n <= 0); 398107#L26 call #t~ret0 := fact(~n - 1);< 398115#$Ultimate##0 ~n := #in~n; 398106#L25 assume !(~n <= 0); 398108#L26 call #t~ret0 := fact(~n - 1);< 398557#$Ultimate##0 ~n := #in~n; 401796#L25 assume !(~n <= 0); 398590#L26 call #t~ret0 := fact(~n - 1);< 398591#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398495#factFINAL assume true; 398471#factEXIT >#66#return; 398470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398463#factFINAL assume true; 398430#factEXIT >#66#return; 398429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398428#factFINAL assume true; 398359#factEXIT >#68#return; 398301#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 398347#$Ultimate##0 ~n := #in~n; 399273#L25 assume !(~n <= 0); 398439#L26 call #t~ret0 := fact(~n - 1);< 398502#$Ultimate##0 ~n := #in~n; 398613#L25 assume !(~n <= 0); 398433#L26 call #t~ret0 := fact(~n - 1);< 398593#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398551#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400986#factFINAL assume true; 400985#factEXIT >#70#return; 398581#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 399100#$Ultimate##0 ~n := #in~n; 399079#L25 assume !(~n <= 0); 398515#L26 call #t~ret0 := fact(~n - 1);< 398558#$Ultimate##0 ~n := #in~n; 398612#L25 assume !(~n <= 0); 398549#L26 call #t~ret0 := fact(~n - 1);< 398592#$Ultimate##0 ~n := #in~n; 401796#L25 assume !(~n <= 0); 398590#L26 call #t~ret0 := fact(~n - 1);< 398591#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398517#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400981#factFINAL assume true; 400961#factEXIT >#72#return; 400963#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 401458#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 401452#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 401453#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 401447#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 398382#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 398427#$Ultimate##0 ~n := #in~n; 399346#L25 assume !(~n <= 0); 398431#L26 call #t~ret0 := fact(~n - 1);< 398462#$Ultimate##0 ~n := #in~n; 398539#L25 assume !(~n <= 0); 398472#L26 call #t~ret0 := fact(~n - 1);< 398493#$Ultimate##0 ~n := #in~n; 401795#L25 assume !(~n <= 0); 398107#L26 call #t~ret0 := fact(~n - 1);< 398115#$Ultimate##0 ~n := #in~n; 398106#L25 assume !(~n <= 0); 398108#L26 call #t~ret0 := fact(~n - 1);< 398557#$Ultimate##0 ~n := #in~n; 401796#L25 assume !(~n <= 0); 398590#L26 call #t~ret0 := fact(~n - 1);< 398591#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398495#factFINAL assume true; 398471#factEXIT >#66#return; 398470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398463#factFINAL assume true; 398430#factEXIT >#66#return; 398429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398428#factFINAL assume true; 398359#factEXIT >#68#return; 398291#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 398347#$Ultimate##0 ~n := #in~n; 399273#L25 assume !(~n <= 0); 398439#L26 call #t~ret0 := fact(~n - 1);< 398502#$Ultimate##0 ~n := #in~n; 398613#L25 assume !(~n <= 0); 398433#L26 call #t~ret0 := fact(~n - 1);< 398593#$Ultimate##0 ~n := #in~n; 398613#L25 assume !(~n <= 0); 398433#L26 call #t~ret0 := fact(~n - 1);< 398593#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398517#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400981#factFINAL assume true; 400961#factEXIT >#70#return; 398693#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 398733#$Ultimate##0 ~n := #in~n; 398721#L25 assume !(~n <= 0); 398514#L26 call #t~ret0 := fact(~n - 1);< 398680#$Ultimate##0 ~n := #in~n; 398612#L25 assume !(~n <= 0); 398549#L26 call #t~ret0 := fact(~n - 1);< 398592#$Ultimate##0 ~n := #in~n; 401796#L25 assume !(~n <= 0); 398590#L26 call #t~ret0 := fact(~n - 1);< 398591#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398517#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400981#factFINAL assume true; 400961#factEXIT >#72#return; 400976#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 401078#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 401069#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 401070#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 401062#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 398361#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 398427#$Ultimate##0 ~n := #in~n; 399346#L25 assume !(~n <= 0); 398431#L26 call #t~ret0 := fact(~n - 1);< 398462#$Ultimate##0 ~n := #in~n; 398539#L25 assume !(~n <= 0); 398472#L26 call #t~ret0 := fact(~n - 1);< 398493#$Ultimate##0 ~n := #in~n; 401795#L25 assume !(~n <= 0); 398107#L26 call #t~ret0 := fact(~n - 1);< 398115#$Ultimate##0 ~n := #in~n; 398106#L25 assume !(~n <= 0); 398108#L26 call #t~ret0 := fact(~n - 1);< 398557#$Ultimate##0 ~n := #in~n; 401796#L25 assume !(~n <= 0); 398590#L26 call #t~ret0 := fact(~n - 1);< 398591#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398495#factFINAL assume true; 398471#factEXIT >#66#return; 398470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398463#factFINAL assume true; 398430#factEXIT >#66#return; 398429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398428#factFINAL assume true; 398359#factEXIT >#68#return; 398272#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 398347#$Ultimate##0 ~n := #in~n; 399273#L25 assume !(~n <= 0); 398439#L26 call #t~ret0 := fact(~n - 1);< 398502#$Ultimate##0 ~n := #in~n; 398613#L25 assume !(~n <= 0); 398433#L26 call #t~ret0 := fact(~n - 1);< 398593#$Ultimate##0 ~n := #in~n; 398613#L25 assume !(~n <= 0); 398433#L26 call #t~ret0 := fact(~n - 1);< 398593#$Ultimate##0 ~n := #in~n; 398613#L25 assume !(~n <= 0); 398433#L26 call #t~ret0 := fact(~n - 1);< 398593#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398495#factFINAL assume true; 398471#factEXIT >#66#return; 398486#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400955#factFINAL assume true; 400941#factEXIT >#70#return; 398694#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 398733#$Ultimate##0 ~n := #in~n; 398721#L25 assume !(~n <= 0); 398514#L26 call #t~ret0 := fact(~n - 1);< 398680#$Ultimate##0 ~n := #in~n; 398716#L25 assume ~n <= 0;#res := 1; 398684#factFINAL assume true; 398671#factEXIT >#66#return; 398676#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400940#factFINAL assume true; 400923#factEXIT >#72#return; 400927#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 401614#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 401615#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 401604#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 401605#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 398394#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 398427#$Ultimate##0 ~n := #in~n; 399346#L25 assume !(~n <= 0); 398431#L26 call #t~ret0 := fact(~n - 1);< 398462#$Ultimate##0 ~n := #in~n; 398539#L25 assume !(~n <= 0); 398472#L26 call #t~ret0 := fact(~n - 1);< 398493#$Ultimate##0 ~n := #in~n; 401795#L25 assume !(~n <= 0); 398107#L26 call #t~ret0 := fact(~n - 1);< 398115#$Ultimate##0 ~n := #in~n; 398106#L25 assume !(~n <= 0); 398108#L26 call #t~ret0 := fact(~n - 1);< 398557#$Ultimate##0 ~n := #in~n; 401796#L25 assume !(~n <= 0); 398590#L26 call #t~ret0 := fact(~n - 1);< 398591#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398495#factFINAL assume true; 398471#factEXIT >#66#return; 398470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398463#factFINAL assume true; 398430#factEXIT >#66#return; 398429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398428#factFINAL assume true; 398359#factEXIT >#68#return; 398289#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 398347#$Ultimate##0 ~n := #in~n; 399273#L25 assume !(~n <= 0); 398439#L26 call #t~ret0 := fact(~n - 1);< 398502#$Ultimate##0 ~n := #in~n; 398613#L25 assume !(~n <= 0); 398433#L26 call #t~ret0 := fact(~n - 1);< 398593#$Ultimate##0 ~n := #in~n; 398613#L25 assume !(~n <= 0); 398433#L26 call #t~ret0 := fact(~n - 1);< 398593#$Ultimate##0 ~n := #in~n; 398613#L25 assume !(~n <= 0); 398433#L26 call #t~ret0 := fact(~n - 1);< 398593#$Ultimate##0 ~n := #in~n; 398615#L25 assume ~n <= 0;#res := 1; 398598#factFINAL assume true; 398589#factEXIT >#66#return; 398587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398573#factFINAL assume true; 398543#factEXIT >#66#return; 398541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398523#factFINAL assume true; 398504#factEXIT >#66#return; 398503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 398495#factFINAL assume true; 398471#factEXIT >#66#return; 398486#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 400955#factFINAL assume true; 400941#factEXIT >#70#return; 398129#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 398724#$Ultimate##0 ~n := #in~n; 398722#L25 assume ~n <= 0;#res := 1; 398719#factFINAL assume true; 398123#factEXIT >#72#return; 398193#L30-3 [2023-02-18 08:57:11,375 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:11,375 INFO L85 PathProgramCache]: Analyzing trace with hash 1680191621, now seen corresponding path program 57 times [2023-02-18 08:57:11,375 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:11,375 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1093129310] [2023-02-18 08:57:11,375 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:11,376 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:11,391 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:11,391 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1621735667] [2023-02-18 08:57:11,391 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:57:11,392 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:11,392 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:11,395 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-18 08:57:11,396 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-18 08:57:11,778 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 9 check-sat command(s) [2023-02-18 08:57:11,778 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:11,781 INFO L263 TraceCheckSpWp]: Trace formula consists of 661 conjuncts, 20 conjunts are in the unsatisfiable core [2023-02-18 08:57:11,786 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:11,836 INFO L134 CoverageAnalysis]: Checked inductivity of 50525 backedges. 2109 proven. 343 refuted. 0 times theorem prover too weak. 48073 trivial. 0 not checked. [2023-02-18 08:57:11,837 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:11,952 INFO L134 CoverageAnalysis]: Checked inductivity of 50525 backedges. 2109 proven. 347 refuted. 0 times theorem prover too weak. 48069 trivial. 0 not checked. [2023-02-18 08:57:11,952 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:11,952 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1093129310] [2023-02-18 08:57:11,952 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:11,952 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1621735667] [2023-02-18 08:57:11,952 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1621735667] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:11,952 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:11,952 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 14] total 17 [2023-02-18 08:57:11,953 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1688816010] [2023-02-18 08:57:11,953 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:11,953 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:57:11,953 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:11,953 INFO L85 PathProgramCache]: Analyzing trace with hash -153364643, now seen corresponding path program 57 times [2023-02-18 08:57:11,953 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:11,953 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [712902993] [2023-02-18 08:57:11,953 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:11,954 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:11,964 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:11,964 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [454104493] [2023-02-18 08:57:11,964 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:57:11,964 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:11,964 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:11,966 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-18 08:57:11,967 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-18 08:57:12,294 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 9 check-sat command(s) [2023-02-18 08:57:12,294 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:12,296 INFO L263 TraceCheckSpWp]: Trace formula consists of 534 conjuncts, 20 conjunts are in the unsatisfiable core [2023-02-18 08:57:12,299 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:12,344 INFO L134 CoverageAnalysis]: Checked inductivity of 21355 backedges. 1197 proven. 358 refuted. 0 times theorem prover too weak. 19800 trivial. 0 not checked. [2023-02-18 08:57:12,344 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:12,441 INFO L134 CoverageAnalysis]: Checked inductivity of 21355 backedges. 1197 proven. 362 refuted. 0 times theorem prover too weak. 19796 trivial. 0 not checked. [2023-02-18 08:57:12,442 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:12,442 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [712902993] [2023-02-18 08:57:12,442 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:12,442 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [454104493] [2023-02-18 08:57:12,442 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [454104493] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:12,442 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:12,442 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 14] total 17 [2023-02-18 08:57:12,442 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1473979966] [2023-02-18 08:57:12,442 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:12,442 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:57:12,442 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:57:12,443 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 18 interpolants. [2023-02-18 08:57:12,443 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=52, Invalid=254, Unknown=0, NotChecked=0, Total=306 [2023-02-18 08:57:12,443 INFO L87 Difference]: Start difference. First operand 3778 states and 5666 transitions. cyclomatic complexity: 1922 Second operand has 18 states, 14 states have (on average 3.4285714285714284) internal successors, (48), 17 states have internal predecessors, (48), 9 states have call successors, (23), 1 states have call predecessors, (23), 5 states have return successors, (24), 10 states have call predecessors, (24), 9 states have call successors, (24) [2023-02-18 08:57:12,890 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:57:12,890 INFO L93 Difference]: Finished difference Result 4170 states and 6314 transitions. [2023-02-18 08:57:12,890 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4170 states and 6314 transitions. [2023-02-18 08:57:12,907 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 920 [2023-02-18 08:57:12,925 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4170 states to 4070 states and 6142 transitions. [2023-02-18 08:57:12,925 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 449 [2023-02-18 08:57:12,925 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 449 [2023-02-18 08:57:12,925 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4070 states and 6142 transitions. [2023-02-18 08:57:12,925 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:57:12,925 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4070 states and 6142 transitions. [2023-02-18 08:57:12,926 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4070 states and 6142 transitions. [2023-02-18 08:57:12,966 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4070 to 3902. [2023-02-18 08:57:12,969 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3902 states, 2445 states have (on average 1.0535787321063395) internal successors, (2576), 2445 states have internal predecessors, (2576), 1211 states have call successors, (1227), 331 states have call predecessors, (1227), 246 states have return successors, (2055), 1125 states have call predecessors, (2055), 1211 states have call successors, (2055) [2023-02-18 08:57:12,980 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3902 states to 3902 states and 5858 transitions. [2023-02-18 08:57:12,980 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3902 states and 5858 transitions. [2023-02-18 08:57:12,981 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2023-02-18 08:57:12,981 INFO L428 stractBuchiCegarLoop]: Abstraction has 3902 states and 5858 transitions. [2023-02-18 08:57:12,981 INFO L335 stractBuchiCegarLoop]: ======== Iteration 70 ============ [2023-02-18 08:57:12,981 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 3902 states and 5858 transitions. [2023-02-18 08:57:12,989 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 840 [2023-02-18 08:57:12,989 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:57:12,989 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:57:12,991 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [142, 142, 91, 91, 91, 91, 51, 17, 16, 11, 11, 11, 11, 11, 11, 11, 10, 10, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-18 08:57:12,991 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [96, 96, 75, 75, 75, 75, 21, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:57:12,992 INFO L748 eck$LassoCheckResult]: Stem: 415157#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 415102#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; 415103#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 415128#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; 415158#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 415355#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 415354#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 415346#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 415347#$Ultimate##0 ~n := #in~n; 415351#L25 assume ~n <= 0;#res := 1; 415348#factFINAL assume true; 415345#factEXIT >#68#return; 415343#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 415344#$Ultimate##0 ~n := #in~n; 415353#L25 assume ~n <= 0;#res := 1; 415350#factFINAL assume true; 415342#factEXIT >#70#return; 415339#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 415340#$Ultimate##0 ~n := #in~n; 415352#L25 assume ~n <= 0;#res := 1; 415349#factFINAL assume true; 415338#factEXIT >#72#return; 415335#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 415332#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 415328#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 415324#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 415322#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 415301#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 415302#$Ultimate##0 ~n := #in~n; 415319#L25 assume !(~n <= 0); 415317#L26 call #t~ret0 := fact(~n - 1);< 415318#$Ultimate##0 ~n := #in~n; 415321#L25 assume ~n <= 0;#res := 1; 415320#factFINAL assume true; 415316#factEXIT >#66#return; 415315#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415314#factFINAL assume true; 415300#factEXIT >#74#return; 415295#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 415296#$Ultimate##0 ~n := #in~n; 415313#L25 assume ~n <= 0;#res := 1; 415299#factFINAL assume true; 415294#factEXIT >#76#return; 415290#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 415291#$Ultimate##0 ~n := #in~n; 415337#L25 assume !(~n <= 0); 415311#L26 call #t~ret0 := fact(~n - 1);< 415312#$Ultimate##0 ~n := #in~n; 415331#L25 assume ~n <= 0;#res := 1; 415327#factFINAL assume true; 415310#factEXIT >#66#return; 415298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415293#factFINAL assume true; 415289#factEXIT >#78#return; 415288#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 415287#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 415286#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 415285#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 415283#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 415279#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 415280#$Ultimate##0 ~n := #in~n; 415334#L25 assume !(~n <= 0); 415305#L26 call #t~ret0 := fact(~n - 1);< 415309#$Ultimate##0 ~n := #in~n; 415341#L25 assume !(~n <= 0); 415304#L26 call #t~ret0 := fact(~n - 1);< 415330#$Ultimate##0 ~n := #in~n; 415336#L25 assume ~n <= 0;#res := 1; 415333#factFINAL assume true; 415329#factEXIT >#66#return; 415325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415323#factFINAL assume true; 415303#factEXIT >#66#return; 415307#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415361#factFINAL assume true; 415278#factEXIT >#74#return; 415274#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 415275#$Ultimate##0 ~n := #in~n; 415282#L25 assume ~n <= 0;#res := 1; 415277#factFINAL assume true; 415273#factEXIT >#76#return; 415270#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 415271#$Ultimate##0 ~n := #in~n; 415326#L25 assume !(~n <= 0); 415306#L26 call #t~ret0 := fact(~n - 1);< 415309#$Ultimate##0 ~n := #in~n; 415341#L25 assume !(~n <= 0); 415304#L26 call #t~ret0 := fact(~n - 1);< 415330#$Ultimate##0 ~n := #in~n; 415336#L25 assume ~n <= 0;#res := 1; 415333#factFINAL assume true; 415329#factEXIT >#66#return; 415325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415323#factFINAL assume true; 415303#factEXIT >#66#return; 415297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415292#factFINAL assume true; 415269#factEXIT >#78#return; 415266#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 415265#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 415262#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 415258#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 415254#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 415244#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 415245#$Ultimate##0 ~n := #in~n; 415260#L25 assume !(~n <= 0); 415251#L26 call #t~ret0 := fact(~n - 1);< 415253#$Ultimate##0 ~n := #in~n; 415268#L25 assume !(~n <= 0); 415252#L26 call #t~ret0 := fact(~n - 1);< 415264#$Ultimate##0 ~n := #in~n; 415268#L25 assume !(~n <= 0); 415252#L26 call #t~ret0 := fact(~n - 1);< 415264#$Ultimate##0 ~n := #in~n; 415284#L25 assume ~n <= 0;#res := 1; 415281#factFINAL assume true; 415276#factEXIT >#66#return; 415272#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415267#factFINAL assume true; 415263#factEXIT >#66#return; 415261#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415257#factFINAL assume true; 415250#factEXIT >#66#return; 415249#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415247#factFINAL assume true; 415243#factEXIT >#74#return; 415239#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 415240#$Ultimate##0 ~n := #in~n; 415248#L25 assume ~n <= 0;#res := 1; 415242#factFINAL assume true; 415238#factEXIT >#76#return; 415218#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 415235#$Ultimate##0 ~n := #in~n; 415227#L25 assume !(~n <= 0); 415211#L26 call #t~ret0 := fact(~n - 1);< 415214#$Ultimate##0 ~n := #in~n; 415220#L25 assume !(~n <= 0); 415209#L26 call #t~ret0 := fact(~n - 1);< 415225#$Ultimate##0 ~n := #in~n; 415220#L25 assume !(~n <= 0); 415209#L26 call #t~ret0 := fact(~n - 1);< 415225#$Ultimate##0 ~n := #in~n; 415259#L25 assume ~n <= 0;#res := 1; 415256#factFINAL assume true; 415246#factEXIT >#66#return; 415241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415237#factFINAL assume true; 415236#factEXIT >#66#return; 415228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415226#factFINAL assume true; 415222#factEXIT >#66#return; 415213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415413#factFINAL assume true; 415406#factEXIT >#78#return; 415405#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 415191#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 416105#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 416101#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 416096#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 416077#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 416076#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 416074#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 416002#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 416007#$Ultimate##0 ~n := #in~n; 416047#L25 assume !(~n <= 0); 416037#L26 call #t~ret0 := fact(~n - 1);< 416045#$Ultimate##0 ~n := #in~n; 416150#L25 assume ~n <= 0;#res := 1; 416445#factFINAL assume true; 416436#factEXIT >#66#return; 416426#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 416425#factFINAL assume true; 416411#factEXIT >#68#return; 416391#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 415995#$Ultimate##0 ~n := #in~n; 416409#L25 assume ~n <= 0;#res := 1; 416407#factFINAL assume true; 416390#factEXIT >#70#return; 416371#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 416377#$Ultimate##0 ~n := #in~n; 416374#L25 assume !(~n <= 0); 416035#L26 call #t~ret0 := fact(~n - 1);< 416370#$Ultimate##0 ~n := #in~n; 416150#L25 assume ~n <= 0;#res := 1; 416445#factFINAL assume true; 416436#factEXIT >#66#return; 416442#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 417397#factFINAL assume true; 417394#factEXIT >#72#return; 417392#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 417391#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 417390#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 417388#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 417387#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 416446#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 416490#$Ultimate##0 ~n := #in~n; 416487#L25 assume !(~n <= 0); 416017#L26 call #t~ret0 := fact(~n - 1);< 416370#$Ultimate##0 ~n := #in~n; 416150#L25 assume ~n <= 0;#res := 1; 416445#factFINAL assume true; 416436#factEXIT >#66#return; 416439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 417389#factFINAL assume true; 417386#factEXIT >#68#return; 416469#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 416505#$Ultimate##0 ~n := #in~n; 416491#L25 assume !(~n <= 0); 416030#L26 call #t~ret0 := fact(~n - 1);< 416045#$Ultimate##0 ~n := #in~n; 416150#L25 assume ~n <= 0;#res := 1; 416445#factFINAL assume true; 416436#factEXIT >#66#return; 416441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 417347#factFINAL assume true; 417311#factEXIT >#70#return; 417318#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 417385#$Ultimate##0 ~n := #in~n; 417401#L25 assume ~n <= 0;#res := 1; 417393#factFINAL assume true; 417380#factEXIT >#72#return; 417378#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 417377#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 417376#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 417375#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 417373#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 416531#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 417066#$Ultimate##0 ~n := #in~n; 417551#L25 assume !(~n <= 0); 416026#L26 call #t~ret0 := fact(~n - 1);< 416489#$Ultimate##0 ~n := #in~n; 416372#L25 assume !(~n <= 0); 416024#L26 call #t~ret0 := fact(~n - 1);< 416071#$Ultimate##0 ~n := #in~n; 416075#L25 assume ~n <= 0;#res := 1; 416073#factFINAL assume true; 416069#factEXIT >#66#return; 416067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 416061#factFINAL assume true; 416016#factEXIT >#66#return; 416041#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 417140#factFINAL assume true; 417092#factEXIT >#74#return; 416472#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 416505#$Ultimate##0 ~n := #in~n; 416491#L25 assume !(~n <= 0); 416030#L26 call #t~ret0 := fact(~n - 1);< 416045#$Ultimate##0 ~n := #in~n; 416150#L25 assume ~n <= 0;#res := 1; 416445#factFINAL assume true; 416436#factEXIT >#66#return; 416441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 417347#factFINAL assume true; 417311#factEXIT >#76#return; 416452#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 417050#$Ultimate##0 ~n := #in~n; 417049#L25 assume !(~n <= 0); 416438#L26 call #t~ret0 := fact(~n - 1);< 416458#$Ultimate##0 ~n := #in~n; 416150#L25 assume ~n <= 0;#res := 1; 416445#factFINAL assume true; 416436#factEXIT >#66#return; 416441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 417347#factFINAL assume true; 417311#factEXIT >#78#return; 417312#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 417471#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 417470#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 417469#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 417467#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 417468#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 416093#$Ultimate##0 ~n := #in~n; 417720#L25 assume !(~n <= 0); 417603#L26 call #t~ret0 := fact(~n - 1);< 417660#$Ultimate##0 ~n := #in~n; 417689#L25 assume !(~n <= 0); 417600#L26 call #t~ret0 := fact(~n - 1);< 417688#$Ultimate##0 ~n := #in~n; 417689#L25 assume !(~n <= 0); 417600#L26 call #t~ret0 := fact(~n - 1);< 417688#$Ultimate##0 ~n := #in~n; 417686#L25 assume ~n <= 0;#res := 1; 417684#factFINAL assume true; 417671#factEXIT >#66#return; 417670#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 417659#factFINAL assume true; 417650#factEXIT >#66#return; 417646#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 417634#factFINAL assume true; 417597#factEXIT >#66#return; 417609#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 417573#factFINAL assume true; 417593#factEXIT >#74#return; 415155#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 415156#$Ultimate##0 ~n := #in~n; 417766#L25 assume !(~n <= 0); 417598#L26 call #t~ret0 := fact(~n - 1);< 417762#$Ultimate##0 ~n := #in~n; 417638#L25 assume ~n <= 0;#res := 1; 417765#factFINAL assume true; 417758#factEXIT >#66#return; 417756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 417754#factFINAL assume true; 417700#factEXIT >#76#return; 417581#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 417594#$Ultimate##0 ~n := #in~n; 417737#L25 assume !(~n <= 0); 417608#L26 call #t~ret0 := fact(~n - 1);< 417637#$Ultimate##0 ~n := #in~n; 417636#L25 assume !(~n <= 0); 417606#L26 call #t~ret0 := fact(~n - 1);< 417635#$Ultimate##0 ~n := #in~n; 417686#L25 assume ~n <= 0;#res := 1; 417684#factFINAL assume true; 417671#factEXIT >#66#return; 417670#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 417659#factFINAL assume true; 417650#factEXIT >#66#return; 417653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 417732#factFINAL assume true; 417721#factEXIT >#78#return; 415189#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 415188#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 415187#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 415186#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 415127#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 415120#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 415121#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 418298#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 416003#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 416007#$Ultimate##0 ~n := #in~n; 416047#L25 assume !(~n <= 0); 416037#L26 call #t~ret0 := fact(~n - 1);< 416045#$Ultimate##0 ~n := #in~n; 416116#L25 assume !(~n <= 0); 416028#L26 call #t~ret0 := fact(~n - 1);< 416104#$Ultimate##0 ~n := #in~n; 416075#L25 assume ~n <= 0;#res := 1; 416073#factFINAL assume true; 416069#factEXIT >#66#return; 416067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 416061#factFINAL assume true; 416016#factEXIT >#66#return; 416014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 416012#factFINAL assume true; 415999#factEXIT >#68#return; 415991#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 415996#$Ultimate##0 ~n := #in~n; 416008#L25 assume ~n <= 0;#res := 1; 415998#factFINAL assume true; 415988#factEXIT >#70#return; 415978#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 415985#$Ultimate##0 ~n := #in~n; 416009#L25 assume !(~n <= 0); 415698#L26 call #t~ret0 := fact(~n - 1);< 415710#$Ultimate##0 ~n := #in~n; 415744#L25 assume !(~n <= 0); 415717#L26 call #t~ret0 := fact(~n - 1);< 415718#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415708#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415987#factFINAL assume true; 415977#factEXIT >#72#return; 415982#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 418228#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 418227#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 418226#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 418225#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 415955#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 415956#$Ultimate##0 ~n := #in~n; 415961#L25 assume !(~n <= 0); 415700#L26 call #t~ret0 := fact(~n - 1);< 415710#$Ultimate##0 ~n := #in~n; 415744#L25 assume !(~n <= 0); 415717#L26 call #t~ret0 := fact(~n - 1);< 415718#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415709#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415957#factFINAL assume true; 415947#factEXIT >#68#return; 415859#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 415868#$Ultimate##0 ~n := #in~n; 415912#L25 assume !(~n <= 0); 415667#L26 call #t~ret0 := fact(~n - 1);< 415824#$Ultimate##0 ~n := #in~n; 415826#L25 assume ~n <= 0;#res := 1; 415817#factFINAL assume true; 415809#factEXIT >#66#return; 415815#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415875#factFINAL assume true; 415843#factEXIT >#70#return; 415851#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 415876#$Ultimate##0 ~n := #in~n; 415913#L25 assume !(~n <= 0); 415811#L26 call #t~ret0 := fact(~n - 1);< 415820#$Ultimate##0 ~n := #in~n; 415826#L25 assume ~n <= 0;#res := 1; 415817#factFINAL assume true; 415809#factEXIT >#66#return; 415815#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415875#factFINAL assume true; 415843#factEXIT >#72#return; 415863#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 418223#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 418222#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 418221#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 418220#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 415951#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 415956#$Ultimate##0 ~n := #in~n; 415961#L25 assume !(~n <= 0); 415700#L26 call #t~ret0 := fact(~n - 1);< 415710#$Ultimate##0 ~n := #in~n; 415744#L25 assume !(~n <= 0); 415717#L26 call #t~ret0 := fact(~n - 1);< 415718#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415709#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415957#factFINAL assume true; 415947#factEXIT >#68#return; 415901#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 415910#$Ultimate##0 ~n := #in~n; 415930#L25 assume !(~n <= 0); 415665#L26 call #t~ret0 := fact(~n - 1);< 415686#$Ultimate##0 ~n := #in~n; 415729#L25 assume !(~n <= 0); 415701#L26 call #t~ret0 := fact(~n - 1);< 415720#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415707#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415909#factFINAL assume true; 415897#factEXIT >#70#return; 415905#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 415942#$Ultimate##0 ~n := #in~n; 415946#L25 assume ~n <= 0;#res := 1; 415944#factFINAL assume true; 415938#factEXIT >#72#return; 415939#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 418218#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 418215#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 418214#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 418213#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 415925#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 414864#$Ultimate##0 ~n := #in~n; 418321#L25 assume !(~n <= 0); 418026#L26 call #t~ret0 := fact(~n - 1);< 418054#$Ultimate##0 ~n := #in~n; 418169#L25 assume !(~n <= 0); 418025#L26 call #t~ret0 := fact(~n - 1);< 418180#$Ultimate##0 ~n := #in~n; 418169#L25 assume !(~n <= 0); 418025#L26 call #t~ret0 := fact(~n - 1);< 418180#$Ultimate##0 ~n := #in~n; 418166#L25 assume ~n <= 0;#res := 1; 418212#factFINAL assume true; 418178#factEXIT >#66#return; 418176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418170#factFINAL assume true; 418156#factEXIT >#66#return; 418155#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418142#factFINAL assume true; 418061#factEXIT >#66#return; 418065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418206#factFINAL assume true; 418204#factEXIT >#74#return; 418143#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 418152#$Ultimate##0 ~n := #in~n; 418150#L25 assume !(~n <= 0); 418063#L26 call #t~ret0 := fact(~n - 1);< 418145#$Ultimate##0 ~n := #in~n; 418182#L25 assume !(~n <= 0); 418158#L26 call #t~ret0 := fact(~n - 1);< 418164#$Ultimate##0 ~n := #in~n; 418207#L25 assume !(~n <= 0); 418179#L26 call #t~ret0 := fact(~n - 1);< 418181#$Ultimate##0 ~n := #in~n; 418166#L25 assume ~n <= 0;#res := 1; 418212#factFINAL assume true; 418178#factEXIT >#66#return; 418176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418170#factFINAL assume true; 418156#factEXIT >#66#return; 418155#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418142#factFINAL assume true; 418061#factEXIT >#66#return; 418065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418206#factFINAL assume true; 418204#factEXIT >#76#return; 417035#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 417036#$Ultimate##0 ~n := #in~n; 418210#L25 assume !(~n <= 0); 414879#L26 call #t~ret0 := fact(~n - 1);< 415112#$Ultimate##0 ~n := #in~n; 418208#L25 assume ~n <= 0;#res := 1; 418325#factFINAL assume true; 414869#factEXIT >#66#return; 414882#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418209#factFINAL assume true; 418189#factEXIT >#78#return; 417968#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 417012#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 417013#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 417007#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 417008#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 415786#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 415787#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 415780#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 415774#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 415778#$Ultimate##0 ~n := #in~n; 415777#L25 assume !(~n <= 0); 415629#L26 call #t~ret0 := fact(~n - 1);< 415772#$Ultimate##0 ~n := #in~n; 415768#L25 assume !(~n <= 0); 415635#L26 call #t~ret0 := fact(~n - 1);< 415750#$Ultimate##0 ~n := #in~n; 415747#L25 assume !(~n <= 0); 415662#L26 call #t~ret0 := fact(~n - 1);< 415740#$Ultimate##0 ~n := #in~n; 415733#L25 assume !(~n <= 0); 415696#L26 call #t~ret0 := fact(~n - 1);< 415720#$Ultimate##0 ~n := #in~n; 415744#L25 assume !(~n <= 0); 415717#L26 call #t~ret0 := fact(~n - 1);< 415718#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415657#factFINAL assume true; 415633#factEXIT >#66#return; 415632#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415626#factFINAL assume true; 415630#factEXIT >#66#return; 416056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418202#factFINAL assume true; 418199#factEXIT >#68#return; 417904#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 417915#$Ultimate##0 ~n := #in~n; 417925#L25 assume ~n <= 0;#res := 1; 417923#factFINAL assume true; 417900#factEXIT >#70#return; 417872#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 417898#$Ultimate##0 ~n := #in~n; 417940#L25 assume !(~n <= 0); 415608#L26 call #t~ret0 := fact(~n - 1);< 415625#$Ultimate##0 ~n := #in~n; 415934#L25 assume !(~n <= 0); 415607#L26 call #t~ret0 := fact(~n - 1);< 415655#$Ultimate##0 ~n := #in~n; 415714#L25 assume !(~n <= 0); 415610#L26 call #t~ret0 := fact(~n - 1);< 415681#$Ultimate##0 ~n := #in~n; 415742#L25 assume !(~n <= 0); 415611#L26 call #t~ret0 := fact(~n - 1);< 415658#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415657#factFINAL assume true; 415633#factEXIT >#66#return; 415632#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415626#factFINAL assume true; 415630#factEXIT >#66#return; 415622#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 417926#factFINAL assume true; 417870#factEXIT >#72#return; 417886#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 418492#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 418490#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 418488#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 418486#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 415561#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 415548#$Ultimate##0 ~n := #in~n; 415631#L25 assume !(~n <= 0); 415627#L26 call #t~ret0 := fact(~n - 1);< 415842#$Ultimate##0 ~n := #in~n; 415840#L25 assume !(~n <= 0); 415647#L26 call #t~ret0 := fact(~n - 1);< 415656#$Ultimate##0 ~n := #in~n; 415927#L25 assume !(~n <= 0); 415666#L26 call #t~ret0 := fact(~n - 1);< 415682#$Ultimate##0 ~n := #in~n; 415753#L25 assume !(~n <= 0); 415697#L26 call #t~ret0 := fact(~n - 1);< 415710#$Ultimate##0 ~n := #in~n; 415744#L25 assume !(~n <= 0); 415717#L26 call #t~ret0 := fact(~n - 1);< 415718#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415657#factFINAL assume true; 415633#factEXIT >#66#return; 415632#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415626#factFINAL assume true; 415630#factEXIT >#66#return; 415549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415594#factFINAL assume true; 417452#factEXIT >#68#return; 415176#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 415185#$Ultimate##0 ~n := #in~n; 415168#L25 assume !(~n <= 0); 415184#L26 call #t~ret0 := fact(~n - 1);< 415820#$Ultimate##0 ~n := #in~n; 415826#L25 assume ~n <= 0;#res := 1; 415817#factFINAL assume true; 415809#factEXIT >#66#return; 415813#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 417862#factFINAL assume true; 417841#factEXIT >#70#return; 415455#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 415931#$Ultimate##0 ~n := #in~n; 415926#L25 assume !(~n <= 0); 415644#L26 call #t~ret0 := fact(~n - 1);< 415693#$Ultimate##0 ~n := #in~n; 415743#L25 assume !(~n <= 0); 415675#L26 call #t~ret0 := fact(~n - 1);< 415686#$Ultimate##0 ~n := #in~n; 415729#L25 assume !(~n <= 0); 415701#L26 call #t~ret0 := fact(~n - 1);< 415720#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415676#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418454#factFINAL assume true; 417829#factEXIT >#72#return; 415492#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 418481#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 418479#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 418476#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 418474#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 415564#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 415548#$Ultimate##0 ~n := #in~n; 415631#L25 assume !(~n <= 0); 415627#L26 call #t~ret0 := fact(~n - 1);< 415842#$Ultimate##0 ~n := #in~n; 415840#L25 assume !(~n <= 0); 415647#L26 call #t~ret0 := fact(~n - 1);< 415656#$Ultimate##0 ~n := #in~n; 415927#L25 assume !(~n <= 0); 415666#L26 call #t~ret0 := fact(~n - 1);< 415682#$Ultimate##0 ~n := #in~n; 415753#L25 assume !(~n <= 0); 415697#L26 call #t~ret0 := fact(~n - 1);< 415710#$Ultimate##0 ~n := #in~n; 415744#L25 assume !(~n <= 0); 415717#L26 call #t~ret0 := fact(~n - 1);< 415718#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415657#factFINAL assume true; 415633#factEXIT >#66#return; 415632#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415626#factFINAL assume true; 415630#factEXIT >#66#return; 415549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415594#factFINAL assume true; 417452#factEXIT >#68#return; 415033#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 415150#$Ultimate##0 ~n := #in~n; 416251#L25 assume !(~n <= 0); 415604#L26 call #t~ret0 := fact(~n - 1);< 415658#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 414945#factFINAL assume true; 415097#factEXIT >#70#return; 415076#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 416248#$Ultimate##0 ~n := #in~n; 416246#L25 assume !(~n <= 0); 415668#L26 call #t~ret0 := fact(~n - 1);< 415686#$Ultimate##0 ~n := #in~n; 415729#L25 assume !(~n <= 0); 415701#L26 call #t~ret0 := fact(~n - 1);< 415720#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 414945#factFINAL assume true; 415097#factEXIT >#72#return; 417812#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 418471#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 418469#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 418467#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 418465#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 415565#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 415548#$Ultimate##0 ~n := #in~n; 415631#L25 assume !(~n <= 0); 415627#L26 call #t~ret0 := fact(~n - 1);< 415842#$Ultimate##0 ~n := #in~n; 415840#L25 assume !(~n <= 0); 415647#L26 call #t~ret0 := fact(~n - 1);< 415656#$Ultimate##0 ~n := #in~n; 415927#L25 assume !(~n <= 0); 415666#L26 call #t~ret0 := fact(~n - 1);< 415682#$Ultimate##0 ~n := #in~n; 415753#L25 assume !(~n <= 0); 415697#L26 call #t~ret0 := fact(~n - 1);< 415710#$Ultimate##0 ~n := #in~n; 415744#L25 assume !(~n <= 0); 415717#L26 call #t~ret0 := fact(~n - 1);< 415718#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415657#factFINAL assume true; 415633#factEXIT >#66#return; 415632#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415626#factFINAL assume true; 415630#factEXIT >#66#return; 415549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415594#factFINAL assume true; 417452#factEXIT >#68#return; 415054#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 415150#$Ultimate##0 ~n := #in~n; 416251#L25 assume !(~n <= 0); 415604#L26 call #t~ret0 := fact(~n - 1);< 415658#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415676#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418454#factFINAL assume true; 417829#factEXIT >#70#return; 415072#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 414868#$Ultimate##0 ~n := #in~n; 415966#L25 assume !(~n <= 0); 415663#L26 call #t~ret0 := fact(~n - 1);< 415824#$Ultimate##0 ~n := #in~n; 415826#L25 assume ~n <= 0;#res := 1; 415817#factFINAL assume true; 415809#factEXIT >#66#return; 415813#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 417862#factFINAL assume true; 417841#factEXIT >#72#return; 417856#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 418378#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 418377#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 418376#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 418374#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 415554#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 415548#$Ultimate##0 ~n := #in~n; 415631#L25 assume !(~n <= 0); 415627#L26 call #t~ret0 := fact(~n - 1);< 415842#$Ultimate##0 ~n := #in~n; 415840#L25 assume !(~n <= 0); 415647#L26 call #t~ret0 := fact(~n - 1);< 415656#$Ultimate##0 ~n := #in~n; 415927#L25 assume !(~n <= 0); 415666#L26 call #t~ret0 := fact(~n - 1);< 415682#$Ultimate##0 ~n := #in~n; 415753#L25 assume !(~n <= 0); 415697#L26 call #t~ret0 := fact(~n - 1);< 415710#$Ultimate##0 ~n := #in~n; 415744#L25 assume !(~n <= 0); 415717#L26 call #t~ret0 := fact(~n - 1);< 415718#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415657#factFINAL assume true; 415633#factEXIT >#66#return; 415632#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415626#factFINAL assume true; 415630#factEXIT >#66#return; 415549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415594#factFINAL assume true; 417452#factEXIT >#68#return; 414999#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 415150#$Ultimate##0 ~n := #in~n; 416251#L25 assume !(~n <= 0); 415604#L26 call #t~ret0 := fact(~n - 1);< 415658#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415657#factFINAL assume true; 415633#factEXIT >#66#return; 415648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415501#factFINAL assume true; 415435#factEXIT >#70#return; 415028#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 415969#$Ultimate##0 ~n := #in~n; 415967#L25 assume ~n <= 0;#res := 1; 415183#factFINAL assume true; 417458#factEXIT >#72#return; 417462#L30-3 [2023-02-18 08:57:12,992 INFO L750 eck$LassoCheckResult]: Loop: 417462#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 418349#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 418348#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 418347#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 418346#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 414911#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 418110#$Ultimate##0 ~n := #in~n; 418108#L25 assume !(~n <= 0); 415115#L26 call #t~ret0 := fact(~n - 1);< 418033#$Ultimate##0 ~n := #in~n; 418264#L25 assume !(~n <= 0); 415113#L26 call #t~ret0 := fact(~n - 1);< 415117#$Ultimate##0 ~n := #in~n; 418192#L25 assume !(~n <= 0); 418029#L26 call #t~ret0 := fact(~n - 1);< 418069#$Ultimate##0 ~n := #in~n; 418168#L25 assume !(~n <= 0); 418028#L26 call #t~ret0 := fact(~n - 1);< 418163#$Ultimate##0 ~n := #in~n; 418169#L25 assume !(~n <= 0); 418025#L26 call #t~ret0 := fact(~n - 1);< 418180#$Ultimate##0 ~n := #in~n; 418169#L25 assume !(~n <= 0); 418025#L26 call #t~ret0 := fact(~n - 1);< 418180#$Ultimate##0 ~n := #in~n; 418166#L25 assume ~n <= 0;#res := 1; 418212#factFINAL assume true; 418178#factEXIT >#66#return; 418176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418170#factFINAL assume true; 418156#factEXIT >#66#return; 418155#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418142#factFINAL assume true; 418061#factEXIT >#66#return; 418060#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418048#factFINAL assume true; 418041#factEXIT >#66#return; 418040#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418039#factFINAL assume true; 418023#factEXIT >#66#return; 418030#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418038#factFINAL assume true; 418034#factEXIT >#66#return; 418035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418352#factFINAL assume true; 418330#factEXIT >#74#return; 418320#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 418345#$Ultimate##0 ~n := #in~n; 418344#L25 assume !(~n <= 0); 418042#L26 call #t~ret0 := fact(~n - 1);< 418072#$Ultimate##0 ~n := #in~n; 418071#L25 assume !(~n <= 0); 418062#L26 call #t~ret0 := fact(~n - 1);< 418070#$Ultimate##0 ~n := #in~n; 418165#L25 assume !(~n <= 0); 418157#L26 call #t~ret0 := fact(~n - 1);< 418164#$Ultimate##0 ~n := #in~n; 418207#L25 assume !(~n <= 0); 418179#L26 call #t~ret0 := fact(~n - 1);< 418181#$Ultimate##0 ~n := #in~n; 418166#L25 assume ~n <= 0;#res := 1; 418212#factFINAL assume true; 418178#factEXIT >#66#return; 418176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418170#factFINAL assume true; 418156#factEXIT >#66#return; 418155#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418142#factFINAL assume true; 418061#factEXIT >#66#return; 418060#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418048#factFINAL assume true; 418041#factEXIT >#66#return; 418044#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418625#factFINAL assume true; 418319#factEXIT >#76#return; 415110#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 415151#$Ultimate##0 ~n := #in~n; 415141#L25 assume !(~n <= 0); 414878#L26 call #t~ret0 := fact(~n - 1);< 415112#$Ultimate##0 ~n := #in~n; 418208#L25 assume ~n <= 0;#res := 1; 418325#factFINAL assume true; 414869#factEXIT >#66#return; 414884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418543#factFINAL assume true; 417957#factEXIT >#78#return; 417960#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 418653#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 418652#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 418651#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 418650#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 418649#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 418648#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 418647#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 417918#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 415099#$Ultimate##0 ~n := #in~n; 417924#L25 assume !(~n <= 0); 415614#L26 call #t~ret0 := fact(~n - 1);< 415625#$Ultimate##0 ~n := #in~n; 415934#L25 assume !(~n <= 0); 415607#L26 call #t~ret0 := fact(~n - 1);< 415655#$Ultimate##0 ~n := #in~n; 415714#L25 assume !(~n <= 0); 415610#L26 call #t~ret0 := fact(~n - 1);< 415681#$Ultimate##0 ~n := #in~n; 415742#L25 assume !(~n <= 0); 415611#L26 call #t~ret0 := fact(~n - 1);< 415658#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415657#factFINAL assume true; 415633#factEXIT >#66#return; 415632#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415626#factFINAL assume true; 415630#factEXIT >#66#return; 416056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418202#factFINAL assume true; 418199#factEXIT >#68#return; 417912#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 417915#$Ultimate##0 ~n := #in~n; 417925#L25 assume ~n <= 0;#res := 1; 417923#factFINAL assume true; 417900#factEXIT >#70#return; 417884#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 417898#$Ultimate##0 ~n := #in~n; 417940#L25 assume !(~n <= 0); 415608#L26 call #t~ret0 := fact(~n - 1);< 415625#$Ultimate##0 ~n := #in~n; 415934#L25 assume !(~n <= 0); 415607#L26 call #t~ret0 := fact(~n - 1);< 415655#$Ultimate##0 ~n := #in~n; 415714#L25 assume !(~n <= 0); 415610#L26 call #t~ret0 := fact(~n - 1);< 415681#$Ultimate##0 ~n := #in~n; 415742#L25 assume !(~n <= 0); 415611#L26 call #t~ret0 := fact(~n - 1);< 415658#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415657#factFINAL assume true; 415633#factEXIT >#66#return; 415632#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415626#factFINAL assume true; 415630#factEXIT >#66#return; 415622#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 417926#factFINAL assume true; 417870#factEXIT >#72#return; 417897#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 418646#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 418645#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 417860#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 417861#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 415526#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 415545#$Ultimate##0 ~n := #in~n; 415882#L25 assume !(~n <= 0); 415612#L26 call #t~ret0 := fact(~n - 1);< 415625#$Ultimate##0 ~n := #in~n; 415934#L25 assume !(~n <= 0); 415607#L26 call #t~ret0 := fact(~n - 1);< 415655#$Ultimate##0 ~n := #in~n; 415714#L25 assume !(~n <= 0); 415610#L26 call #t~ret0 := fact(~n - 1);< 415681#$Ultimate##0 ~n := #in~n; 415742#L25 assume !(~n <= 0); 415611#L26 call #t~ret0 := fact(~n - 1);< 415658#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415657#factFINAL assume true; 415633#factEXIT >#66#return; 415632#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415626#factFINAL assume true; 415630#factEXIT >#66#return; 415620#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 416095#factFINAL assume true; 415595#factEXIT >#66#return; 415623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415546#factFINAL assume true; 415504#factEXIT >#68#return; 415173#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 415185#$Ultimate##0 ~n := #in~n; 415168#L25 assume !(~n <= 0); 415184#L26 call #t~ret0 := fact(~n - 1);< 415820#$Ultimate##0 ~n := #in~n; 415826#L25 assume ~n <= 0;#res := 1; 415817#factFINAL assume true; 415809#factEXIT >#66#return; 415813#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 417862#factFINAL assume true; 417841#factEXIT >#70#return; 415442#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 417427#$Ultimate##0 ~n := #in~n; 417426#L25 assume !(~n <= 0); 415641#L26 call #t~ret0 := fact(~n - 1);< 415656#$Ultimate##0 ~n := #in~n; 415927#L25 assume !(~n <= 0); 415666#L26 call #t~ret0 := fact(~n - 1);< 415682#$Ultimate##0 ~n := #in~n; 415753#L25 assume !(~n <= 0); 415697#L26 call #t~ret0 := fact(~n - 1);< 415710#$Ultimate##0 ~n := #in~n; 415744#L25 assume !(~n <= 0); 415717#L26 call #t~ret0 := fact(~n - 1);< 415718#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415657#factFINAL assume true; 415633#factEXIT >#66#return; 415648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415501#factFINAL assume true; 415435#factEXIT >#72#return; 415460#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 417824#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 417825#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 417819#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 417820#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 415522#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 415545#$Ultimate##0 ~n := #in~n; 415882#L25 assume !(~n <= 0); 415612#L26 call #t~ret0 := fact(~n - 1);< 415625#$Ultimate##0 ~n := #in~n; 415934#L25 assume !(~n <= 0); 415607#L26 call #t~ret0 := fact(~n - 1);< 415655#$Ultimate##0 ~n := #in~n; 415714#L25 assume !(~n <= 0); 415610#L26 call #t~ret0 := fact(~n - 1);< 415681#$Ultimate##0 ~n := #in~n; 415742#L25 assume !(~n <= 0); 415611#L26 call #t~ret0 := fact(~n - 1);< 415658#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415657#factFINAL assume true; 415633#factEXIT >#66#return; 415632#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415626#factFINAL assume true; 415630#factEXIT >#66#return; 415620#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 416095#factFINAL assume true; 415595#factEXIT >#66#return; 415623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415546#factFINAL assume true; 415504#factEXIT >#68#return; 415023#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 415496#$Ultimate##0 ~n := #in~n; 415830#L25 assume !(~n <= 0); 415601#L26 call #t~ret0 := fact(~n - 1);< 415825#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 414945#factFINAL assume true; 415097#factEXIT >#70#return; 415061#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 416050#$Ultimate##0 ~n := #in~n; 416051#L25 assume !(~n <= 0); 415640#L26 call #t~ret0 := fact(~n - 1);< 415659#$Ultimate##0 ~n := #in~n; 415728#L25 assume !(~n <= 0); 415671#L26 call #t~ret0 := fact(~n - 1);< 415719#$Ultimate##0 ~n := #in~n; 415729#L25 assume !(~n <= 0); 415701#L26 call #t~ret0 := fact(~n - 1);< 415720#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415676#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418454#factFINAL assume true; 417829#factEXIT >#72#return; 415487#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 418519#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 418518#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 418516#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 418514#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 415513#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 415545#$Ultimate##0 ~n := #in~n; 415882#L25 assume !(~n <= 0); 415612#L26 call #t~ret0 := fact(~n - 1);< 415625#$Ultimate##0 ~n := #in~n; 415934#L25 assume !(~n <= 0); 415607#L26 call #t~ret0 := fact(~n - 1);< 415655#$Ultimate##0 ~n := #in~n; 415714#L25 assume !(~n <= 0); 415610#L26 call #t~ret0 := fact(~n - 1);< 415681#$Ultimate##0 ~n := #in~n; 415742#L25 assume !(~n <= 0); 415611#L26 call #t~ret0 := fact(~n - 1);< 415658#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415657#factFINAL assume true; 415633#factEXIT >#66#return; 415632#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415626#factFINAL assume true; 415630#factEXIT >#66#return; 415620#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 416095#factFINAL assume true; 415595#factEXIT >#66#return; 415623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415546#factFINAL assume true; 415504#factEXIT >#68#return; 415000#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 415496#$Ultimate##0 ~n := #in~n; 415830#L25 assume !(~n <= 0); 415601#L26 call #t~ret0 := fact(~n - 1);< 415825#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415676#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418454#factFINAL assume true; 417829#factEXIT >#70#return; 415025#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 416049#$Ultimate##0 ~n := #in~n; 415827#L25 assume !(~n <= 0); 415643#L26 call #t~ret0 := fact(~n - 1);< 415821#$Ultimate##0 ~n := #in~n; 415728#L25 assume !(~n <= 0); 415671#L26 call #t~ret0 := fact(~n - 1);< 415719#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 414945#factFINAL assume true; 415097#factEXIT >#72#return; 417815#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 418511#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 418510#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 418509#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 418508#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 415530#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 415545#$Ultimate##0 ~n := #in~n; 415882#L25 assume !(~n <= 0); 415612#L26 call #t~ret0 := fact(~n - 1);< 415625#$Ultimate##0 ~n := #in~n; 415934#L25 assume !(~n <= 0); 415607#L26 call #t~ret0 := fact(~n - 1);< 415655#$Ultimate##0 ~n := #in~n; 415714#L25 assume !(~n <= 0); 415610#L26 call #t~ret0 := fact(~n - 1);< 415681#$Ultimate##0 ~n := #in~n; 415742#L25 assume !(~n <= 0); 415611#L26 call #t~ret0 := fact(~n - 1);< 415658#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415657#factFINAL assume true; 415633#factEXIT >#66#return; 415632#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415626#factFINAL assume true; 415630#factEXIT >#66#return; 415620#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 416095#factFINAL assume true; 415595#factEXIT >#66#return; 415623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415546#factFINAL assume true; 415504#factEXIT >#68#return; 414977#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 415496#$Ultimate##0 ~n := #in~n; 415830#L25 assume !(~n <= 0); 415601#L26 call #t~ret0 := fact(~n - 1);< 415825#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415657#factFINAL assume true; 415633#factEXIT >#66#return; 415648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415501#factFINAL assume true; 415435#factEXIT >#70#return; 415030#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 416049#$Ultimate##0 ~n := #in~n; 415827#L25 assume !(~n <= 0); 415643#L26 call #t~ret0 := fact(~n - 1);< 415821#$Ultimate##0 ~n := #in~n; 415826#L25 assume ~n <= 0;#res := 1; 415817#factFINAL assume true; 415809#factEXIT >#66#return; 415813#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 417862#factFINAL assume true; 417841#factEXIT >#72#return; 417842#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 418495#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 418494#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 418493#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 418491#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 415525#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 415545#$Ultimate##0 ~n := #in~n; 415882#L25 assume !(~n <= 0); 415612#L26 call #t~ret0 := fact(~n - 1);< 415625#$Ultimate##0 ~n := #in~n; 415934#L25 assume !(~n <= 0); 415607#L26 call #t~ret0 := fact(~n - 1);< 415655#$Ultimate##0 ~n := #in~n; 415714#L25 assume !(~n <= 0); 415610#L26 call #t~ret0 := fact(~n - 1);< 415681#$Ultimate##0 ~n := #in~n; 415742#L25 assume !(~n <= 0); 415611#L26 call #t~ret0 := fact(~n - 1);< 415658#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415657#factFINAL assume true; 415633#factEXIT >#66#return; 415632#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415626#factFINAL assume true; 415630#factEXIT >#66#return; 415620#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 416095#factFINAL assume true; 415595#factEXIT >#66#return; 415623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415546#factFINAL assume true; 415504#factEXIT >#68#return; 414965#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 415496#$Ultimate##0 ~n := #in~n; 415830#L25 assume !(~n <= 0); 415601#L26 call #t~ret0 := fact(~n - 1);< 415825#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415730#L25 assume !(~n <= 0); 415602#L26 call #t~ret0 := fact(~n - 1);< 415721#$Ultimate##0 ~n := #in~n; 415726#L25 assume ~n <= 0;#res := 1; 415724#factFINAL assume true; 415716#factEXIT >#66#return; 415715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415711#factFINAL assume true; 415695#factEXIT >#66#return; 415694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415683#factFINAL assume true; 415661#factEXIT >#66#return; 415660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415657#factFINAL assume true; 415633#factEXIT >#66#return; 415648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 415501#factFINAL assume true; 415435#factEXIT >#70#return; 415029#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 415831#$Ultimate##0 ~n := #in~n; 415828#L25 assume ~n <= 0;#res := 1; 415183#factFINAL assume true; 417458#factEXIT >#72#return; 417462#L30-3 [2023-02-18 08:57:12,992 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:12,992 INFO L85 PathProgramCache]: Analyzing trace with hash -35162875, now seen corresponding path program 58 times [2023-02-18 08:57:12,992 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:12,992 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1523158015] [2023-02-18 08:57:12,992 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:12,992 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:13,008 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:13,008 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1327808910] [2023-02-18 08:57:13,008 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:57:13,008 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:13,008 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:13,034 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-18 08:57:13,035 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-18 08:57:13,483 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:57:13,483 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:13,490 INFO L263 TraceCheckSpWp]: Trace formula consists of 1987 conjuncts, 12 conjunts are in the unsatisfiable core [2023-02-18 08:57:13,495 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:13,527 INFO L134 CoverageAnalysis]: Checked inductivity of 49019 backedges. 25337 proven. 257 refuted. 0 times theorem prover too weak. 23425 trivial. 0 not checked. [2023-02-18 08:57:13,528 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:13,590 INFO L134 CoverageAnalysis]: Checked inductivity of 49019 backedges. 1293 proven. 1110 refuted. 0 times theorem prover too weak. 46616 trivial. 0 not checked. [2023-02-18 08:57:13,590 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:13,590 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1523158015] [2023-02-18 08:57:13,590 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:13,590 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1327808910] [2023-02-18 08:57:13,590 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1327808910] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:13,590 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:13,591 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 12] total 13 [2023-02-18 08:57:13,591 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1539059798] [2023-02-18 08:57:13,591 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:13,591 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:57:13,591 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:13,591 INFO L85 PathProgramCache]: Analyzing trace with hash 1189181941, now seen corresponding path program 58 times [2023-02-18 08:57:13,592 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:13,592 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [830371569] [2023-02-18 08:57:13,592 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:13,592 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:13,602 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:13,602 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [489250036] [2023-02-18 08:57:13,602 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:57:13,602 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:13,602 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:13,606 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-18 08:57:13,606 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-18 08:57:13,984 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:57:13,984 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:13,988 INFO L263 TraceCheckSpWp]: Trace formula consists of 1265 conjuncts, 29 conjunts are in the unsatisfiable core [2023-02-18 08:57:13,991 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:14,059 INFO L134 CoverageAnalysis]: Checked inductivity of 23935 backedges. 6124 proven. 227 refuted. 0 times theorem prover too weak. 17584 trivial. 0 not checked. [2023-02-18 08:57:14,059 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:14,305 INFO L134 CoverageAnalysis]: Checked inductivity of 23935 backedges. 124 proven. 4886 refuted. 0 times theorem prover too weak. 18925 trivial. 0 not checked. [2023-02-18 08:57:14,305 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:14,305 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [830371569] [2023-02-18 08:57:14,305 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:14,305 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [489250036] [2023-02-18 08:57:14,306 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [489250036] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:14,306 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:14,306 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 26] total 29 [2023-02-18 08:57:14,306 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [456525007] [2023-02-18 08:57:14,306 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:14,306 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:57:14,306 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:57:14,307 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 29 interpolants. [2023-02-18 08:57:14,307 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=129, Invalid=683, Unknown=0, NotChecked=0, Total=812 [2023-02-18 08:57:14,307 INFO L87 Difference]: Start difference. First operand 3902 states and 5858 transitions. cyclomatic complexity: 1990 Second operand has 29 states, 26 states have (on average 2.8461538461538463) internal successors, (74), 26 states have internal predecessors, (74), 17 states have call successors, (24), 2 states have call predecessors, (24), 13 states have return successors, (32), 15 states have call predecessors, (32), 17 states have call successors, (32) [2023-02-18 08:57:15,095 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:57:15,095 INFO L93 Difference]: Finished difference Result 4928 states and 7684 transitions. [2023-02-18 08:57:15,095 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4928 states and 7684 transitions. [2023-02-18 08:57:15,117 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 1223 [2023-02-18 08:57:15,144 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4928 states to 4882 states and 7615 transitions. [2023-02-18 08:57:15,145 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 617 [2023-02-18 08:57:15,145 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 617 [2023-02-18 08:57:15,145 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4882 states and 7615 transitions. [2023-02-18 08:57:15,145 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:57:15,145 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4882 states and 7615 transitions. [2023-02-18 08:57:15,147 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4882 states and 7615 transitions. [2023-02-18 08:57:15,198 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4882 to 4074. [2023-02-18 08:57:15,201 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4074 states, 2467 states have (on average 1.0506688285366843) internal successors, (2592), 2461 states have internal predecessors, (2592), 1341 states have call successors, (1357), 350 states have call predecessors, (1357), 266 states have return successors, (2550), 1262 states have call predecessors, (2550), 1341 states have call successors, (2550) [2023-02-18 08:57:15,213 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4074 states to 4074 states and 6499 transitions. [2023-02-18 08:57:15,213 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4074 states and 6499 transitions. [2023-02-18 08:57:15,213 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 18 states. [2023-02-18 08:57:15,213 INFO L428 stractBuchiCegarLoop]: Abstraction has 4074 states and 6499 transitions. [2023-02-18 08:57:15,214 INFO L335 stractBuchiCegarLoop]: ======== Iteration 71 ============ [2023-02-18 08:57:15,214 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4074 states and 6499 transitions. [2023-02-18 08:57:15,222 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 872 [2023-02-18 08:57:15,222 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:57:15,222 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:57:15,225 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [142, 142, 91, 91, 91, 91, 51, 17, 16, 11, 11, 11, 11, 11, 11, 11, 10, 10, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-18 08:57:15,225 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [89, 89, 68, 68, 68, 68, 21, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:57:15,225 INFO L748 eck$LassoCheckResult]: Stem: 432783#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 432714#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; 432715#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 432736#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; 432784#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 434532#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 434530#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 434526#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 434527#$Ultimate##0 ~n := #in~n; 434531#L25 assume ~n <= 0;#res := 1; 434529#factFINAL assume true; 434525#factEXIT >#68#return; 434521#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 434522#$Ultimate##0 ~n := #in~n; 434528#L25 assume ~n <= 0;#res := 1; 434524#factFINAL assume true; 434520#factEXIT >#70#return; 434517#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 434518#$Ultimate##0 ~n := #in~n; 434523#L25 assume ~n <= 0;#res := 1; 434519#factFINAL assume true; 434516#factEXIT >#72#return; 434515#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 434513#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 434510#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 434506#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 434504#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 434501#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 434502#$Ultimate##0 ~n := #in~n; 434512#L25 assume !(~n <= 0); 434508#L26 call #t~ret0 := fact(~n - 1);< 434509#$Ultimate##0 ~n := #in~n; 434514#L25 assume ~n <= 0;#res := 1; 434511#factFINAL assume true; 434507#factEXIT >#66#return; 434505#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434503#factFINAL assume true; 434500#factEXIT >#74#return; 434498#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 434499#$Ultimate##0 ~n := #in~n; 434537#L25 assume ~n <= 0;#res := 1; 434533#factFINAL assume true; 434497#factEXIT >#76#return; 434494#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 434495#$Ultimate##0 ~n := #in~n; 434543#L25 assume !(~n <= 0); 434540#L26 call #t~ret0 := fact(~n - 1);< 434541#$Ultimate##0 ~n := #in~n; 434544#L25 assume ~n <= 0;#res := 1; 434542#factFINAL assume true; 434539#factEXIT >#66#return; 434538#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434536#factFINAL assume true; 434493#factEXIT >#78#return; 434492#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 434491#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 434489#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 434481#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 434477#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 434470#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 434472#$Ultimate##0 ~n := #in~n; 434484#L25 assume !(~n <= 0); 434455#L26 call #t~ret0 := fact(~n - 1);< 434460#$Ultimate##0 ~n := #in~n; 434483#L25 assume !(~n <= 0); 434457#L26 call #t~ret0 := fact(~n - 1);< 434479#$Ultimate##0 ~n := #in~n; 434486#L25 assume ~n <= 0;#res := 1; 434482#factFINAL assume true; 434478#factEXIT >#66#return; 434474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434469#factFINAL assume true; 434454#factEXIT >#66#return; 434459#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434890#factFINAL assume true; 434471#factEXIT >#74#return; 434449#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 434450#$Ultimate##0 ~n := #in~n; 434463#L25 assume ~n <= 0;#res := 1; 434453#factFINAL assume true; 434448#factEXIT >#76#return; 434443#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 434444#$Ultimate##0 ~n := #in~n; 434473#L25 assume !(~n <= 0); 434456#L26 call #t~ret0 := fact(~n - 1);< 434460#$Ultimate##0 ~n := #in~n; 434483#L25 assume !(~n <= 0); 434457#L26 call #t~ret0 := fact(~n - 1);< 434479#$Ultimate##0 ~n := #in~n; 434486#L25 assume ~n <= 0;#res := 1; 434482#factFINAL assume true; 434478#factEXIT >#66#return; 434474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434469#factFINAL assume true; 434454#factEXIT >#66#return; 434451#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434447#factFINAL assume true; 434442#factEXIT >#78#return; 434431#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 434427#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 434391#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 434386#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 434383#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 434379#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 434380#$Ultimate##0 ~n := #in~n; 434426#L25 assume !(~n <= 0); 434389#L26 call #t~ret0 := fact(~n - 1);< 434390#$Ultimate##0 ~n := #in~n; 434441#L25 assume !(~n <= 0); 434388#L26 call #t~ret0 := fact(~n - 1);< 434440#$Ultimate##0 ~n := #in~n; 434441#L25 assume !(~n <= 0); 434388#L26 call #t~ret0 := fact(~n - 1);< 434440#$Ultimate##0 ~n := #in~n; 434468#L25 assume ~n <= 0;#res := 1; 434466#factFINAL assume true; 434465#factEXIT >#66#return; 434464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434446#factFINAL assume true; 434439#factEXIT >#66#return; 434430#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434425#factFINAL assume true; 434387#factEXIT >#66#return; 434385#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434382#factFINAL assume true; 434378#factEXIT >#74#return; 434375#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 434376#$Ultimate##0 ~n := #in~n; 434381#L25 assume ~n <= 0;#res := 1; 434377#factFINAL assume true; 434374#factEXIT >#76#return; 432745#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 434365#$Ultimate##0 ~n := #in~n; 434467#L25 assume !(~n <= 0); 434435#L26 call #t~ret0 := fact(~n - 1);< 434438#$Ultimate##0 ~n := #in~n; 434476#L25 assume !(~n <= 0); 434434#L26 call #t~ret0 := fact(~n - 1);< 434462#$Ultimate##0 ~n := #in~n; 434476#L25 assume !(~n <= 0); 434434#L26 call #t~ret0 := fact(~n - 1);< 434462#$Ultimate##0 ~n := #in~n; 434488#L25 assume ~n <= 0;#res := 1; 434487#factFINAL assume true; 434485#factEXIT >#66#return; 434480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434475#factFINAL assume true; 434461#factEXIT >#66#return; 434452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434445#factFINAL assume true; 434433#factEXIT >#66#return; 432744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432746#factFINAL assume true; 434373#factEXIT >#78#return; 434344#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 434286#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 434281#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 434279#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 434051#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 434050#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 434032#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 434030#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 433969#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 433972#$Ultimate##0 ~n := #in~n; 434026#L25 assume !(~n <= 0); 434002#L26 call #t~ret0 := fact(~n - 1);< 434024#$Ultimate##0 ~n := #in~n; 434178#L25 assume ~n <= 0;#res := 1; 434973#factFINAL assume true; 434961#factEXIT >#66#return; 434965#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 435632#factFINAL assume true; 435593#factEXIT >#68#return; 435041#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 433961#$Ultimate##0 ~n := #in~n; 435054#L25 assume ~n <= 0;#res := 1; 435052#factFINAL assume true; 435040#factEXIT >#70#return; 435029#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 435038#$Ultimate##0 ~n := #in~n; 435036#L25 assume !(~n <= 0); 434013#L26 call #t~ret0 := fact(~n - 1);< 435006#$Ultimate##0 ~n := #in~n; 434178#L25 assume ~n <= 0;#res := 1; 434973#factFINAL assume true; 434961#factEXIT >#66#return; 434964#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 435439#factFINAL assume true; 435431#factEXIT >#72#return; 435429#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 435427#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 435426#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 435425#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 435424#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 435005#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 435009#$Ultimate##0 ~n := #in~n; 435007#L25 assume !(~n <= 0); 434008#L26 call #t~ret0 := fact(~n - 1);< 435006#$Ultimate##0 ~n := #in~n; 434178#L25 assume ~n <= 0;#res := 1; 434973#factFINAL assume true; 434961#factEXIT >#66#return; 434967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 435299#factFINAL assume true; 435298#factEXIT >#68#return; 434991#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 435010#$Ultimate##0 ~n := #in~n; 435008#L25 assume !(~n <= 0); 434003#L26 call #t~ret0 := fact(~n - 1);< 434024#$Ultimate##0 ~n := #in~n; 434178#L25 assume ~n <= 0;#res := 1; 434973#factFINAL assume true; 434961#factEXIT >#66#return; 434966#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 435595#factFINAL assume true; 435112#factEXIT >#70#return; 435115#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 435195#$Ultimate##0 ~n := #in~n; 435205#L25 assume ~n <= 0;#res := 1; 435202#factFINAL assume true; 435190#factEXIT >#72#return; 435193#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 435295#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 435293#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 435291#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 435290#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 434319#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 435129#$Ultimate##0 ~n := #in~n; 435635#L25 assume !(~n <= 0); 434009#L26 call #t~ret0 := fact(~n - 1);< 434321#$Ultimate##0 ~n := #in~n; 434709#L25 assume !(~n <= 0); 434015#L26 call #t~ret0 := fact(~n - 1);< 434136#$Ultimate##0 ~n := #in~n; 434162#L25 assume ~n <= 0;#res := 1; 434158#factFINAL assume true; 434134#factEXIT >#66#return; 434133#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434129#factFINAL assume true; 433993#factEXIT >#66#return; 434021#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 435128#factFINAL assume true; 435099#factEXIT >#74#return; 434996#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 435010#$Ultimate##0 ~n := #in~n; 435008#L25 assume !(~n <= 0); 434003#L26 call #t~ret0 := fact(~n - 1);< 434024#$Ultimate##0 ~n := #in~n; 434178#L25 assume ~n <= 0;#res := 1; 434973#factFINAL assume true; 434961#factEXIT >#66#return; 434966#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 435595#factFINAL assume true; 435112#factEXIT >#76#return; 434980#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 435208#$Ultimate##0 ~n := #in~n; 435423#L25 assume !(~n <= 0); 434963#L26 call #t~ret0 := fact(~n - 1);< 434968#$Ultimate##0 ~n := #in~n; 434178#L25 assume ~n <= 0;#res := 1; 434973#factFINAL assume true; 434961#factEXIT >#66#return; 434966#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 435595#factFINAL assume true; 435112#factEXIT >#78#return; 435120#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 435289#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 435287#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 435285#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 435283#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 434636#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 435085#$Ultimate##0 ~n := #in~n; 435337#L25 assume !(~n <= 0); 434877#L26 call #t~ret0 := fact(~n - 1);< 435323#$Ultimate##0 ~n := #in~n; 435152#L25 assume !(~n <= 0); 434883#L26 call #t~ret0 := fact(~n - 1);< 434928#$Ultimate##0 ~n := #in~n; 435152#L25 assume !(~n <= 0); 434883#L26 call #t~ret0 := fact(~n - 1);< 434928#$Ultimate##0 ~n := #in~n; 435028#L25 assume ~n <= 0;#res := 1; 435023#factFINAL assume true; 435011#factEXIT >#66#return; 434971#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434952#factFINAL assume true; 434922#factEXIT >#66#return; 434921#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434920#factFINAL assume true; 434905#factEXIT >#66#return; 434912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 435597#factFINAL assume true; 435135#factEXIT >#74#return; 435074#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 435081#$Ultimate##0 ~n := #in~n; 435096#L25 assume !(~n <= 0); 434908#L26 call #t~ret0 := fact(~n - 1);< 435092#$Ultimate##0 ~n := #in~n; 435016#L25 assume ~n <= 0;#res := 1; 435307#factFINAL assume true; 435088#factEXIT >#66#return; 435086#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 435082#factFINAL assume true; 435068#factEXIT >#76#return; 435061#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 435067#$Ultimate##0 ~n := #in~n; 435065#L25 assume !(~n <= 0); 434906#L26 call #t~ret0 := fact(~n - 1);< 435059#$Ultimate##0 ~n := #in~n; 435058#L25 assume !(~n <= 0); 434909#L26 call #t~ret0 := fact(~n - 1);< 435034#$Ultimate##0 ~n := #in~n; 435028#L25 assume ~n <= 0;#res := 1; 435023#factFINAL assume true; 435011#factEXIT >#66#return; 434971#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434952#factFINAL assume true; 434922#factEXIT >#66#return; 434925#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 435153#factFINAL assume true; 435131#factEXIT >#78#return; 435134#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 436672#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 436671#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 436670#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 436669#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 436668#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 435579#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 435574#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 433970#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 433972#$Ultimate##0 ~n := #in~n; 434026#L25 assume !(~n <= 0); 434002#L26 call #t~ret0 := fact(~n - 1);< 434024#$Ultimate##0 ~n := #in~n; 434169#L25 assume !(~n <= 0); 433997#L26 call #t~ret0 := fact(~n - 1);< 434165#$Ultimate##0 ~n := #in~n; 434162#L25 assume ~n <= 0;#res := 1; 434158#factFINAL assume true; 434134#factEXIT >#66#return; 434133#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434129#factFINAL assume true; 433993#factEXIT >#66#return; 433991#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433990#factFINAL assume true; 433964#factEXIT >#68#return; 433958#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 433963#$Ultimate##0 ~n := #in~n; 434119#L25 assume ~n <= 0;#res := 1; 434118#factFINAL assume true; 433955#factEXIT >#70#return; 433637#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 433895#$Ultimate##0 ~n := #in~n; 434203#L25 assume !(~n <= 0); 433287#L26 call #t~ret0 := fact(~n - 1);< 433298#$Ultimate##0 ~n := #in~n; 433318#L25 assume !(~n <= 0); 433311#L26 call #t~ret0 := fact(~n - 1);< 433313#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433296#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433953#factFINAL assume true; 433891#factEXIT >#72#return; 433892#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 435529#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 435527#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 435525#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 435524#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 433667#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 433672#$Ultimate##0 ~n := #in~n; 433724#L25 assume !(~n <= 0); 433286#L26 call #t~ret0 := fact(~n - 1);< 433298#$Ultimate##0 ~n := #in~n; 433318#L25 assume !(~n <= 0); 433311#L26 call #t~ret0 := fact(~n - 1);< 433313#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433295#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433714#factFINAL assume true; 433663#factEXIT >#68#return; 433551#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 433574#$Ultimate##0 ~n := #in~n; 433609#L25 assume !(~n <= 0); 433258#L26 call #t~ret0 := fact(~n - 1);< 433523#$Ultimate##0 ~n := #in~n; 433577#L25 assume ~n <= 0;#res := 1; 433513#factFINAL assume true; 433500#factEXIT >#66#return; 433507#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433575#factFINAL assume true; 433543#factEXIT >#70#return; 433561#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 433576#$Ultimate##0 ~n := #in~n; 433608#L25 assume !(~n <= 0); 433504#L26 call #t~ret0 := fact(~n - 1);< 433508#$Ultimate##0 ~n := #in~n; 433577#L25 assume ~n <= 0;#res := 1; 433513#factFINAL assume true; 433500#factEXIT >#66#return; 433507#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433575#factFINAL assume true; 433543#factEXIT >#72#return; 433572#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 435523#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 435522#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 435521#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 435520#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 433670#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 433672#$Ultimate##0 ~n := #in~n; 433724#L25 assume !(~n <= 0); 433286#L26 call #t~ret0 := fact(~n - 1);< 433298#$Ultimate##0 ~n := #in~n; 433318#L25 assume !(~n <= 0); 433311#L26 call #t~ret0 := fact(~n - 1);< 433313#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433295#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433714#factFINAL assume true; 433663#factEXIT >#68#return; 433441#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 433486#$Ultimate##0 ~n := #in~n; 433480#L25 assume !(~n <= 0); 433256#L26 call #t~ret0 := fact(~n - 1);< 433280#$Ultimate##0 ~n := #in~n; 433336#L25 assume !(~n <= 0); 433289#L26 call #t~ret0 := fact(~n - 1);< 433312#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433292#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433642#factFINAL assume true; 433629#factEXIT >#70#return; 433631#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 433662#$Ultimate##0 ~n := #in~n; 433726#L25 assume ~n <= 0;#res := 1; 433673#factFINAL assume true; 433658#factEXIT >#72#return; 433660#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 435517#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 435508#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 435504#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 435499#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 433703#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 434842#$Ultimate##0 ~n := #in~n; 434841#L25 assume !(~n <= 0); 434679#L26 call #t~ret0 := fact(~n - 1);< 434711#$Ultimate##0 ~n := #in~n; 434804#L25 assume !(~n <= 0); 434670#L26 call #t~ret0 := fact(~n - 1);< 434780#$Ultimate##0 ~n := #in~n; 434804#L25 assume !(~n <= 0); 434670#L26 call #t~ret0 := fact(~n - 1);< 434780#$Ultimate##0 ~n := #in~n; 434802#L25 assume ~n <= 0;#res := 1; 434801#factFINAL assume true; 434778#factEXIT >#66#return; 434776#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434767#factFINAL assume true; 434754#factEXIT >#66#return; 434751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434739#factFINAL assume true; 434726#factEXIT >#66#return; 434733#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 435478#factFINAL assume true; 435477#factEXIT >#74#return; 434768#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 434897#$Ultimate##0 ~n := #in~n; 434898#L25 assume !(~n <= 0); 434730#L26 call #t~ret0 := fact(~n - 1);< 434770#$Ultimate##0 ~n := #in~n; 434805#L25 assume !(~n <= 0); 434755#L26 call #t~ret0 := fact(~n - 1);< 434762#$Ultimate##0 ~n := #in~n; 434806#L25 assume !(~n <= 0); 434779#L26 call #t~ret0 := fact(~n - 1);< 434781#$Ultimate##0 ~n := #in~n; 434802#L25 assume ~n <= 0;#res := 1; 434801#factFINAL assume true; 434778#factEXIT >#66#return; 434776#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434767#factFINAL assume true; 434754#factEXIT >#66#return; 434751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434739#factFINAL assume true; 434726#factEXIT >#66#return; 434733#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 435478#factFINAL assume true; 435477#factEXIT >#76#return; 434793#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 435483#$Ultimate##0 ~n := #in~n; 435528#L25 assume !(~n <= 0); 435512#L26 call #t~ret0 := fact(~n - 1);< 432723#$Ultimate##0 ~n := #in~n; 434807#L25 assume ~n <= 0;#res := 1; 435526#factFINAL assume true; 435510#factEXIT >#66#return; 435506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 435501#factFINAL assume true; 434782#factEXIT >#78#return; 434798#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 436253#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 436252#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 436251#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 436250#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 436248#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 436246#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 433436#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 433358#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 433362#$Ultimate##0 ~n := #in~n; 433361#L25 assume !(~n <= 0); 433199#L26 call #t~ret0 := fact(~n - 1);< 433356#$Ultimate##0 ~n := #in~n; 433351#L25 assume !(~n <= 0); 433230#L26 call #t~ret0 := fact(~n - 1);< 433334#$Ultimate##0 ~n := #in~n; 433332#L25 assume !(~n <= 0); 433263#L26 call #t~ret0 := fact(~n - 1);< 433329#$Ultimate##0 ~n := #in~n; 433327#L25 assume !(~n <= 0); 433288#L26 call #t~ret0 := fact(~n - 1);< 433312#$Ultimate##0 ~n := #in~n; 433318#L25 assume !(~n <= 0); 433311#L26 call #t~ret0 := fact(~n - 1);< 433313#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433272#factFINAL assume true; 433251#factEXIT >#66#return; 433250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433244#factFINAL assume true; 433221#factEXIT >#66#return; 433220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433216#factFINAL assume true; 433180#factEXIT >#66#return; 433214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434818#factFINAL assume true; 434819#factEXIT >#68#return; 434564#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 434576#$Ultimate##0 ~n := #in~n; 434578#L25 assume ~n <= 0;#res := 1; 434577#factFINAL assume true; 434563#factEXIT >#70#return; 434401#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 434422#$Ultimate##0 ~n := #in~n; 435660#L25 assume !(~n <= 0); 433186#L26 call #t~ret0 := fact(~n - 1);< 433215#$Ultimate##0 ~n := #in~n; 433655#L25 assume !(~n <= 0); 433190#L26 call #t~ret0 := fact(~n - 1);< 433242#$Ultimate##0 ~n := #in~n; 433308#L25 assume !(~n <= 0); 433189#L26 call #t~ret0 := fact(~n - 1);< 433271#$Ultimate##0 ~n := #in~n; 433317#L25 assume !(~n <= 0); 433194#L26 call #t~ret0 := fact(~n - 1);< 433249#$Ultimate##0 ~n := #in~n; 433320#L25 assume !(~n <= 0); 433193#L26 call #t~ret0 := fact(~n - 1);< 433315#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433272#factFINAL assume true; 433251#factEXIT >#66#return; 433250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433244#factFINAL assume true; 433221#factEXIT >#66#return; 433220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433216#factFINAL assume true; 433180#factEXIT >#66#return; 433210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434547#factFINAL assume true; 434398#factEXIT >#72#return; 434413#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 435024#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 435019#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 435018#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 435017#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 433154#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 433177#$Ultimate##0 ~n := #in~n; 433331#L25 assume !(~n <= 0); 433207#L26 call #t~ret0 := fact(~n - 1);< 433364#$Ultimate##0 ~n := #in~n; 433363#L25 assume !(~n <= 0); 433231#L26 call #t~ret0 := fact(~n - 1);< 433243#$Ultimate##0 ~n := #in~n; 433341#L25 assume !(~n <= 0); 433252#L26 call #t~ret0 := fact(~n - 1);< 433270#$Ultimate##0 ~n := #in~n; 433342#L25 assume !(~n <= 0); 433285#L26 call #t~ret0 := fact(~n - 1);< 433298#$Ultimate##0 ~n := #in~n; 433318#L25 assume !(~n <= 0); 433311#L26 call #t~ret0 := fact(~n - 1);< 433313#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433272#factFINAL assume true; 433251#factEXIT >#66#return; 433250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433244#factFINAL assume true; 433221#factEXIT >#66#return; 433220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433216#factFINAL assume true; 433180#factEXIT >#66#return; 433179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433178#factFINAL assume true; 433081#factEXIT >#68#return; 433176#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 432805#$Ultimate##0 ~n := #in~n; 434209#L25 assume !(~n <= 0); 433501#L26 call #t~ret0 := fact(~n - 1);< 433508#$Ultimate##0 ~n := #in~n; 433577#L25 assume ~n <= 0;#res := 1; 433513#factFINAL assume true; 433500#factEXIT >#66#return; 433505#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434140#factFINAL assume true; 434033#factEXIT >#70#return; 432930#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 433330#$Ultimate##0 ~n := #in~n; 433325#L25 assume !(~n <= 0); 433232#L26 call #t~ret0 := fact(~n - 1);< 433273#$Ultimate##0 ~n := #in~n; 433333#L25 assume !(~n <= 0); 433254#L26 call #t~ret0 := fact(~n - 1);< 433280#$Ultimate##0 ~n := #in~n; 433336#L25 assume !(~n <= 0); 433289#L26 call #t~ret0 := fact(~n - 1);< 433312#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433272#factFINAL assume true; 433251#factEXIT >#66#return; 433267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434265#factFINAL assume true; 434254#factEXIT >#72#return; 433027#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 434957#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 434900#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 434810#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 434809#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 433152#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 433177#$Ultimate##0 ~n := #in~n; 433331#L25 assume !(~n <= 0); 433207#L26 call #t~ret0 := fact(~n - 1);< 433364#$Ultimate##0 ~n := #in~n; 433363#L25 assume !(~n <= 0); 433231#L26 call #t~ret0 := fact(~n - 1);< 433243#$Ultimate##0 ~n := #in~n; 433341#L25 assume !(~n <= 0); 433252#L26 call #t~ret0 := fact(~n - 1);< 433270#$Ultimate##0 ~n := #in~n; 433342#L25 assume !(~n <= 0); 433285#L26 call #t~ret0 := fact(~n - 1);< 433298#$Ultimate##0 ~n := #in~n; 433318#L25 assume !(~n <= 0); 433311#L26 call #t~ret0 := fact(~n - 1);< 433313#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433272#factFINAL assume true; 433251#factEXIT >#66#return; 433250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433244#factFINAL assume true; 433221#factEXIT >#66#return; 433220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433216#factFINAL assume true; 433180#factEXIT >#66#return; 433179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433178#factFINAL assume true; 433081#factEXIT >#68#return; 432964#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 433059#$Ultimate##0 ~n := #in~n; 436709#L25 assume !(~n <= 0); 433184#L26 call #t~ret0 := fact(~n - 1);< 433249#$Ultimate##0 ~n := #in~n; 433320#L25 assume !(~n <= 0); 433193#L26 call #t~ret0 := fact(~n - 1);< 433315#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433293#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434253#factFINAL assume true; 434227#factEXIT >#70#return; 433302#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 433950#$Ultimate##0 ~n := #in~n; 433948#L25 assume !(~n <= 0); 433260#L26 call #t~ret0 := fact(~n - 1);< 433280#$Ultimate##0 ~n := #in~n; 433336#L25 assume !(~n <= 0); 433289#L26 call #t~ret0 := fact(~n - 1);< 433312#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433293#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434253#factFINAL assume true; 434227#factEXIT >#72#return; 434249#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 434777#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 434775#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 434766#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 434753#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 433150#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 433177#$Ultimate##0 ~n := #in~n; 433331#L25 assume !(~n <= 0); 433207#L26 call #t~ret0 := fact(~n - 1);< 433364#$Ultimate##0 ~n := #in~n; 433363#L25 assume !(~n <= 0); 433231#L26 call #t~ret0 := fact(~n - 1);< 433243#$Ultimate##0 ~n := #in~n; 433341#L25 assume !(~n <= 0); 433252#L26 call #t~ret0 := fact(~n - 1);< 433270#$Ultimate##0 ~n := #in~n; 433342#L25 assume !(~n <= 0); 433285#L26 call #t~ret0 := fact(~n - 1);< 433298#$Ultimate##0 ~n := #in~n; 433318#L25 assume !(~n <= 0); 433311#L26 call #t~ret0 := fact(~n - 1);< 433313#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433272#factFINAL assume true; 433251#factEXIT >#66#return; 433250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433244#factFINAL assume true; 433221#factEXIT >#66#return; 433220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433216#factFINAL assume true; 433180#factEXIT >#66#return; 433179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433178#factFINAL assume true; 433081#factEXIT >#68#return; 432941#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 433059#$Ultimate##0 ~n := #in~n; 436709#L25 assume !(~n <= 0); 433184#L26 call #t~ret0 := fact(~n - 1);< 433249#$Ultimate##0 ~n := #in~n; 433320#L25 assume !(~n <= 0); 433193#L26 call #t~ret0 := fact(~n - 1);< 433315#$Ultimate##0 ~n := #in~n; 433320#L25 assume !(~n <= 0); 433193#L26 call #t~ret0 := fact(~n - 1);< 433315#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433272#factFINAL assume true; 433251#factEXIT >#66#return; 433267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434265#factFINAL assume true; 434254#factEXIT >#70#return; 433520#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 434141#$Ultimate##0 ~n := #in~n; 434212#L25 assume !(~n <= 0); 432803#L26 call #t~ret0 := fact(~n - 1);< 433523#$Ultimate##0 ~n := #in~n; 433577#L25 assume ~n <= 0;#res := 1; 433513#factFINAL assume true; 433500#factEXIT >#66#return; 433505#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434140#factFINAL assume true; 434033#factEXIT >#72#return; 434040#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 434721#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 434720#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 434719#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 434717#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 433147#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 433177#$Ultimate##0 ~n := #in~n; 433331#L25 assume !(~n <= 0); 433207#L26 call #t~ret0 := fact(~n - 1);< 433364#$Ultimate##0 ~n := #in~n; 433363#L25 assume !(~n <= 0); 433231#L26 call #t~ret0 := fact(~n - 1);< 433243#$Ultimate##0 ~n := #in~n; 433341#L25 assume !(~n <= 0); 433252#L26 call #t~ret0 := fact(~n - 1);< 433270#$Ultimate##0 ~n := #in~n; 433342#L25 assume !(~n <= 0); 433285#L26 call #t~ret0 := fact(~n - 1);< 433298#$Ultimate##0 ~n := #in~n; 433318#L25 assume !(~n <= 0); 433311#L26 call #t~ret0 := fact(~n - 1);< 433313#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433272#factFINAL assume true; 433251#factEXIT >#66#return; 433250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433244#factFINAL assume true; 433221#factEXIT >#66#return; 433220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433216#factFINAL assume true; 433180#factEXIT >#66#return; 433179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433178#factFINAL assume true; 433081#factEXIT >#68#return; 432853#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 433059#$Ultimate##0 ~n := #in~n; 436709#L25 assume !(~n <= 0); 433184#L26 call #t~ret0 := fact(~n - 1);< 433249#$Ultimate##0 ~n := #in~n; 433320#L25 assume !(~n <= 0); 433193#L26 call #t~ret0 := fact(~n - 1);< 433315#$Ultimate##0 ~n := #in~n; 433320#L25 assume !(~n <= 0); 433193#L26 call #t~ret0 := fact(~n - 1);< 433315#$Ultimate##0 ~n := #in~n; 433320#L25 assume !(~n <= 0); 433193#L26 call #t~ret0 := fact(~n - 1);< 433315#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433272#factFINAL assume true; 433251#factEXIT >#66#return; 433250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433244#factFINAL assume true; 433221#factEXIT >#66#return; 433237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434101#factFINAL assume true; 432836#factEXIT >#70#return; 432801#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 432794#$Ultimate##0 ~n := #in~n; 432797#L25 assume ~n <= 0;#res := 1; 432802#factFINAL assume true; 433920#factEXIT >#72#return; 433923#L30-3 [2023-02-18 08:57:15,225 INFO L750 eck$LassoCheckResult]: Loop: 433923#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 434698#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 434694#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 434665#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 434661#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 432757#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 432777#$Ultimate##0 ~n := #in~n; 432751#L25 assume !(~n <= 0); 432764#L26 call #t~ret0 := fact(~n - 1);< 434688#$Ultimate##0 ~n := #in~n; 434847#L25 assume !(~n <= 0); 434673#L26 call #t~ret0 := fact(~n - 1);< 434696#$Ultimate##0 ~n := #in~n; 434808#L25 assume !(~n <= 0); 434672#L26 call #t~ret0 := fact(~n - 1);< 434737#$Ultimate##0 ~n := #in~n; 434803#L25 assume !(~n <= 0); 434671#L26 call #t~ret0 := fact(~n - 1);< 434763#$Ultimate##0 ~n := #in~n; 434804#L25 assume !(~n <= 0); 434670#L26 call #t~ret0 := fact(~n - 1);< 434780#$Ultimate##0 ~n := #in~n; 434802#L25 assume ~n <= 0;#res := 1; 434801#factFINAL assume true; 434778#factEXIT >#66#return; 434776#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434767#factFINAL assume true; 434754#factEXIT >#66#return; 434751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434739#factFINAL assume true; 434726#factEXIT >#66#return; 434724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434710#factFINAL assume true; 434700#factEXIT >#66#return; 434699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434695#factFINAL assume true; 434666#factEXIT >#66#return; 434662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434658#factFINAL assume true; 434619#factEXIT >#74#return; 434627#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 435562#$Ultimate##0 ~n := #in~n; 435560#L25 assume !(~n <= 0); 434701#L26 call #t~ret0 := fact(~n - 1);< 434752#$Ultimate##0 ~n := #in~n; 434749#L25 assume !(~n <= 0); 434727#L26 call #t~ret0 := fact(~n - 1);< 434736#$Ultimate##0 ~n := #in~n; 434811#L25 assume !(~n <= 0); 434756#L26 call #t~ret0 := fact(~n - 1);< 434762#$Ultimate##0 ~n := #in~n; 434806#L25 assume !(~n <= 0); 434779#L26 call #t~ret0 := fact(~n - 1);< 434781#$Ultimate##0 ~n := #in~n; 434802#L25 assume ~n <= 0;#res := 1; 434801#factFINAL assume true; 434778#factEXIT >#66#return; 434776#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434767#factFINAL assume true; 434754#factEXIT >#66#return; 434751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434739#factFINAL assume true; 434726#factEXIT >#66#return; 434724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434710#factFINAL assume true; 434700#factEXIT >#66#return; 434706#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 435553#factFINAL assume true; 435551#factEXIT >#76#return; 434625#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 435276#$Ultimate##0 ~n := #in~n; 435624#L25 assume !(~n <= 0); 435511#L26 call #t~ret0 := fact(~n - 1);< 432723#$Ultimate##0 ~n := #in~n; 434807#L25 assume ~n <= 0;#res := 1; 435526#factFINAL assume true; 435510#factEXIT >#66#return; 435513#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 435617#factFINAL assume true; 435275#factEXIT >#78#return; 432696#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 432716#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 432737#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 432782#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 432734#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 432726#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 432727#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 432748#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 432806#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 433372#$Ultimate##0 ~n := #in~n; 433370#L25 assume !(~n <= 0); 433206#L26 call #t~ret0 := fact(~n - 1);< 433364#$Ultimate##0 ~n := #in~n; 433363#L25 assume !(~n <= 0); 433231#L26 call #t~ret0 := fact(~n - 1);< 433243#$Ultimate##0 ~n := #in~n; 433341#L25 assume !(~n <= 0); 433252#L26 call #t~ret0 := fact(~n - 1);< 433270#$Ultimate##0 ~n := #in~n; 433342#L25 assume !(~n <= 0); 433285#L26 call #t~ret0 := fact(~n - 1);< 433298#$Ultimate##0 ~n := #in~n; 433318#L25 assume !(~n <= 0); 433311#L26 call #t~ret0 := fact(~n - 1);< 433313#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433272#factFINAL assume true; 433251#factEXIT >#66#return; 433250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433244#factFINAL assume true; 433221#factEXIT >#66#return; 433220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433216#factFINAL assume true; 433180#factEXIT >#66#return; 433214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434818#factFINAL assume true; 434819#factEXIT >#68#return; 434573#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 434576#$Ultimate##0 ~n := #in~n; 434578#L25 assume ~n <= 0;#res := 1; 434577#factFINAL assume true; 434563#factEXIT >#70#return; 434407#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 434422#$Ultimate##0 ~n := #in~n; 435660#L25 assume !(~n <= 0); 433186#L26 call #t~ret0 := fact(~n - 1);< 433215#$Ultimate##0 ~n := #in~n; 433655#L25 assume !(~n <= 0); 433190#L26 call #t~ret0 := fact(~n - 1);< 433242#$Ultimate##0 ~n := #in~n; 433308#L25 assume !(~n <= 0); 433189#L26 call #t~ret0 := fact(~n - 1);< 433271#$Ultimate##0 ~n := #in~n; 433317#L25 assume !(~n <= 0); 433194#L26 call #t~ret0 := fact(~n - 1);< 433249#$Ultimate##0 ~n := #in~n; 433320#L25 assume !(~n <= 0); 433193#L26 call #t~ret0 := fact(~n - 1);< 433315#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433272#factFINAL assume true; 433251#factEXIT >#66#return; 433250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433244#factFINAL assume true; 433221#factEXIT >#66#return; 433220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433216#factFINAL assume true; 433180#factEXIT >#66#return; 433210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434547#factFINAL assume true; 434398#factEXIT >#72#return; 434418#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 435690#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 435689#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 435688#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 435687#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 433113#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 433177#$Ultimate##0 ~n := #in~n; 433331#L25 assume !(~n <= 0); 433207#L26 call #t~ret0 := fact(~n - 1);< 433364#$Ultimate##0 ~n := #in~n; 433363#L25 assume !(~n <= 0); 433231#L26 call #t~ret0 := fact(~n - 1);< 433243#$Ultimate##0 ~n := #in~n; 433341#L25 assume !(~n <= 0); 433252#L26 call #t~ret0 := fact(~n - 1);< 433270#$Ultimate##0 ~n := #in~n; 433342#L25 assume !(~n <= 0); 433285#L26 call #t~ret0 := fact(~n - 1);< 433298#$Ultimate##0 ~n := #in~n; 433318#L25 assume !(~n <= 0); 433311#L26 call #t~ret0 := fact(~n - 1);< 433313#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433272#factFINAL assume true; 433251#factEXIT >#66#return; 433250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433244#factFINAL assume true; 433221#factEXIT >#66#return; 433220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433216#factFINAL assume true; 433180#factEXIT >#66#return; 433179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433178#factFINAL assume true; 433081#factEXIT >#68#return; 433170#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 432805#$Ultimate##0 ~n := #in~n; 434209#L25 assume !(~n <= 0); 433501#L26 call #t~ret0 := fact(~n - 1);< 433508#$Ultimate##0 ~n := #in~n; 433577#L25 assume ~n <= 0;#res := 1; 433513#factFINAL assume true; 433500#factEXIT >#66#return; 433505#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434140#factFINAL assume true; 434033#factEXIT >#70#return; 432839#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 433442#$Ultimate##0 ~n := #in~n; 433437#L25 assume !(~n <= 0); 433224#L26 call #t~ret0 := fact(~n - 1);< 433243#$Ultimate##0 ~n := #in~n; 433341#L25 assume !(~n <= 0); 433252#L26 call #t~ret0 := fact(~n - 1);< 433270#$Ultimate##0 ~n := #in~n; 433342#L25 assume !(~n <= 0); 433285#L26 call #t~ret0 := fact(~n - 1);< 433298#$Ultimate##0 ~n := #in~n; 433318#L25 assume !(~n <= 0); 433311#L26 call #t~ret0 := fact(~n - 1);< 433313#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433272#factFINAL assume true; 433251#factEXIT >#66#return; 433250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433244#factFINAL assume true; 433221#factEXIT >#66#return; 433237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434101#factFINAL assume true; 432836#factEXIT >#72#return; 433017#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 435683#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 435674#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 435675#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 435666#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 433164#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 433177#$Ultimate##0 ~n := #in~n; 433331#L25 assume !(~n <= 0); 433207#L26 call #t~ret0 := fact(~n - 1);< 433364#$Ultimate##0 ~n := #in~n; 433363#L25 assume !(~n <= 0); 433231#L26 call #t~ret0 := fact(~n - 1);< 433243#$Ultimate##0 ~n := #in~n; 433341#L25 assume !(~n <= 0); 433252#L26 call #t~ret0 := fact(~n - 1);< 433270#$Ultimate##0 ~n := #in~n; 433342#L25 assume !(~n <= 0); 433285#L26 call #t~ret0 := fact(~n - 1);< 433298#$Ultimate##0 ~n := #in~n; 433318#L25 assume !(~n <= 0); 433311#L26 call #t~ret0 := fact(~n - 1);< 433313#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433272#factFINAL assume true; 433251#factEXIT >#66#return; 433250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433244#factFINAL assume true; 433221#factEXIT >#66#return; 433220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433216#factFINAL assume true; 433180#factEXIT >#66#return; 433179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433178#factFINAL assume true; 433081#factEXIT >#68#return; 432929#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 433059#$Ultimate##0 ~n := #in~n; 436709#L25 assume !(~n <= 0); 433184#L26 call #t~ret0 := fact(~n - 1);< 433249#$Ultimate##0 ~n := #in~n; 433320#L25 assume !(~n <= 0); 433193#L26 call #t~ret0 := fact(~n - 1);< 433315#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433293#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434253#factFINAL assume true; 434227#factEXIT >#70#return; 433304#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 433950#$Ultimate##0 ~n := #in~n; 433948#L25 assume !(~n <= 0); 433260#L26 call #t~ret0 := fact(~n - 1);< 433280#$Ultimate##0 ~n := #in~n; 433336#L25 assume !(~n <= 0); 433289#L26 call #t~ret0 := fact(~n - 1);< 433312#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433293#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434253#factFINAL assume true; 434227#factEXIT >#72#return; 434240#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 435751#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 435750#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 435749#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 435748#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 433159#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 433177#$Ultimate##0 ~n := #in~n; 433331#L25 assume !(~n <= 0); 433207#L26 call #t~ret0 := fact(~n - 1);< 433364#$Ultimate##0 ~n := #in~n; 433363#L25 assume !(~n <= 0); 433231#L26 call #t~ret0 := fact(~n - 1);< 433243#$Ultimate##0 ~n := #in~n; 433341#L25 assume !(~n <= 0); 433252#L26 call #t~ret0 := fact(~n - 1);< 433270#$Ultimate##0 ~n := #in~n; 433342#L25 assume !(~n <= 0); 433285#L26 call #t~ret0 := fact(~n - 1);< 433298#$Ultimate##0 ~n := #in~n; 433318#L25 assume !(~n <= 0); 433311#L26 call #t~ret0 := fact(~n - 1);< 433313#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433272#factFINAL assume true; 433251#factEXIT >#66#return; 433250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433244#factFINAL assume true; 433221#factEXIT >#66#return; 433220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433216#factFINAL assume true; 433180#factEXIT >#66#return; 433179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433178#factFINAL assume true; 433081#factEXIT >#68#return; 432946#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 433059#$Ultimate##0 ~n := #in~n; 436709#L25 assume !(~n <= 0); 433184#L26 call #t~ret0 := fact(~n - 1);< 433249#$Ultimate##0 ~n := #in~n; 433320#L25 assume !(~n <= 0); 433193#L26 call #t~ret0 := fact(~n - 1);< 433315#$Ultimate##0 ~n := #in~n; 433320#L25 assume !(~n <= 0); 433193#L26 call #t~ret0 := fact(~n - 1);< 433315#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433272#factFINAL assume true; 433251#factEXIT >#66#return; 433267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434265#factFINAL assume true; 434254#factEXIT >#70#return; 433521#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 434141#$Ultimate##0 ~n := #in~n; 434212#L25 assume !(~n <= 0); 432803#L26 call #t~ret0 := fact(~n - 1);< 433523#$Ultimate##0 ~n := #in~n; 433336#L25 assume !(~n <= 0); 433289#L26 call #t~ret0 := fact(~n - 1);< 433312#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433293#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434253#factFINAL assume true; 434227#factEXIT >#72#return; 434244#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 435730#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 435727#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 435724#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 435723#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 433163#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 433177#$Ultimate##0 ~n := #in~n; 433331#L25 assume !(~n <= 0); 433207#L26 call #t~ret0 := fact(~n - 1);< 433364#$Ultimate##0 ~n := #in~n; 433363#L25 assume !(~n <= 0); 433231#L26 call #t~ret0 := fact(~n - 1);< 433243#$Ultimate##0 ~n := #in~n; 433341#L25 assume !(~n <= 0); 433252#L26 call #t~ret0 := fact(~n - 1);< 433270#$Ultimate##0 ~n := #in~n; 433342#L25 assume !(~n <= 0); 433285#L26 call #t~ret0 := fact(~n - 1);< 433298#$Ultimate##0 ~n := #in~n; 433318#L25 assume !(~n <= 0); 433311#L26 call #t~ret0 := fact(~n - 1);< 433313#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433272#factFINAL assume true; 433251#factEXIT >#66#return; 433250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433244#factFINAL assume true; 433221#factEXIT >#66#return; 433220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433216#factFINAL assume true; 433180#factEXIT >#66#return; 433179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433178#factFINAL assume true; 433081#factEXIT >#68#return; 432863#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 433059#$Ultimate##0 ~n := #in~n; 436709#L25 assume !(~n <= 0); 433184#L26 call #t~ret0 := fact(~n - 1);< 433249#$Ultimate##0 ~n := #in~n; 433320#L25 assume !(~n <= 0); 433193#L26 call #t~ret0 := fact(~n - 1);< 433315#$Ultimate##0 ~n := #in~n; 433320#L25 assume !(~n <= 0); 433193#L26 call #t~ret0 := fact(~n - 1);< 433315#$Ultimate##0 ~n := #in~n; 433320#L25 assume !(~n <= 0); 433193#L26 call #t~ret0 := fact(~n - 1);< 433315#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433272#factFINAL assume true; 433251#factEXIT >#66#return; 433250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433244#factFINAL assume true; 433221#factEXIT >#66#return; 433237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434101#factFINAL assume true; 432836#factEXIT >#70#return; 433032#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 434141#$Ultimate##0 ~n := #in~n; 434212#L25 assume !(~n <= 0); 432803#L26 call #t~ret0 := fact(~n - 1);< 433523#$Ultimate##0 ~n := #in~n; 433577#L25 assume ~n <= 0;#res := 1; 433513#factFINAL assume true; 433500#factEXIT >#66#return; 433505#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434140#factFINAL assume true; 434033#factEXIT >#72#return; 434037#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 435252#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 435242#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 435243#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 435237#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 433109#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 433177#$Ultimate##0 ~n := #in~n; 433331#L25 assume !(~n <= 0); 433207#L26 call #t~ret0 := fact(~n - 1);< 433364#$Ultimate##0 ~n := #in~n; 433363#L25 assume !(~n <= 0); 433231#L26 call #t~ret0 := fact(~n - 1);< 433243#$Ultimate##0 ~n := #in~n; 433341#L25 assume !(~n <= 0); 433252#L26 call #t~ret0 := fact(~n - 1);< 433270#$Ultimate##0 ~n := #in~n; 433342#L25 assume !(~n <= 0); 433285#L26 call #t~ret0 := fact(~n - 1);< 433298#$Ultimate##0 ~n := #in~n; 433318#L25 assume !(~n <= 0); 433311#L26 call #t~ret0 := fact(~n - 1);< 433313#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433272#factFINAL assume true; 433251#factEXIT >#66#return; 433250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433244#factFINAL assume true; 433221#factEXIT >#66#return; 433220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433216#factFINAL assume true; 433180#factEXIT >#66#return; 433179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433178#factFINAL assume true; 433081#factEXIT >#68#return; 432889#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 433059#$Ultimate##0 ~n := #in~n; 436709#L25 assume !(~n <= 0); 433184#L26 call #t~ret0 := fact(~n - 1);< 433249#$Ultimate##0 ~n := #in~n; 433320#L25 assume !(~n <= 0); 433193#L26 call #t~ret0 := fact(~n - 1);< 433315#$Ultimate##0 ~n := #in~n; 433320#L25 assume !(~n <= 0); 433193#L26 call #t~ret0 := fact(~n - 1);< 433315#$Ultimate##0 ~n := #in~n; 433320#L25 assume !(~n <= 0); 433193#L26 call #t~ret0 := fact(~n - 1);< 433315#$Ultimate##0 ~n := #in~n; 433321#L25 assume ~n <= 0;#res := 1; 433316#factFINAL assume true; 433310#factEXIT >#66#return; 433309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433299#factFINAL assume true; 433282#factEXIT >#66#return; 433281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433272#factFINAL assume true; 433251#factEXIT >#66#return; 433250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433244#factFINAL assume true; 433221#factEXIT >#66#return; 433237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 434101#factFINAL assume true; 432836#factEXIT >#70#return; 432801#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 432794#$Ultimate##0 ~n := #in~n; 432797#L25 assume ~n <= 0;#res := 1; 432802#factFINAL assume true; 433920#factEXIT >#72#return; 433923#L30-3 [2023-02-18 08:57:15,225 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:15,226 INFO L85 PathProgramCache]: Analyzing trace with hash -35162875, now seen corresponding path program 59 times [2023-02-18 08:57:15,226 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:15,226 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1134401940] [2023-02-18 08:57:15,226 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:15,226 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:15,241 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:15,241 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [709390044] [2023-02-18 08:57:15,241 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:57:15,242 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:15,242 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:15,245 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-18 08:57:15,245 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-18 08:57:16,104 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 29 check-sat command(s) [2023-02-18 08:57:16,105 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:16,112 INFO L263 TraceCheckSpWp]: Trace formula consists of 1829 conjuncts, 25 conjunts are in the unsatisfiable core [2023-02-18 08:57:16,118 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:16,186 INFO L134 CoverageAnalysis]: Checked inductivity of 49019 backedges. 23132 proven. 168 refuted. 0 times theorem prover too weak. 25719 trivial. 0 not checked. [2023-02-18 08:57:16,186 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:16,415 INFO L134 CoverageAnalysis]: Checked inductivity of 49019 backedges. 4412 proven. 1876 refuted. 0 times theorem prover too weak. 42731 trivial. 0 not checked. [2023-02-18 08:57:16,415 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:16,415 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1134401940] [2023-02-18 08:57:16,415 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:16,415 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [709390044] [2023-02-18 08:57:16,415 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [709390044] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:16,415 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:16,415 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 22] total 25 [2023-02-18 08:57:16,415 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1238946002] [2023-02-18 08:57:16,416 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:16,416 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:57:16,416 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:16,416 INFO L85 PathProgramCache]: Analyzing trace with hash 2122050829, now seen corresponding path program 59 times [2023-02-18 08:57:16,416 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:16,417 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [560834856] [2023-02-18 08:57:16,417 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:16,417 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:16,429 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:16,429 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1958931563] [2023-02-18 08:57:16,429 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:57:16,429 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:16,429 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:16,431 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-18 08:57:16,432 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-18 08:57:17,037 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 31 check-sat command(s) [2023-02-18 08:57:17,037 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:17,042 INFO L263 TraceCheckSpWp]: Trace formula consists of 1064 conjuncts, 29 conjunts are in the unsatisfiable core [2023-02-18 08:57:17,046 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:17,117 INFO L134 CoverageAnalysis]: Checked inductivity of 20365 backedges. 11418 proven. 757 refuted. 0 times theorem prover too weak. 8190 trivial. 0 not checked. [2023-02-18 08:57:17,118 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:17,340 INFO L134 CoverageAnalysis]: Checked inductivity of 20365 backedges. 1405 proven. 2564 refuted. 0 times theorem prover too weak. 16396 trivial. 0 not checked. [2023-02-18 08:57:17,340 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:17,340 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [560834856] [2023-02-18 08:57:17,340 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:17,340 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1958931563] [2023-02-18 08:57:17,340 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1958931563] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:17,340 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:17,340 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 22] total 26 [2023-02-18 08:57:17,341 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [778690176] [2023-02-18 08:57:17,341 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:17,341 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:57:17,341 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:57:17,341 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 26 interpolants. [2023-02-18 08:57:17,341 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=95, Invalid=555, Unknown=0, NotChecked=0, Total=650 [2023-02-18 08:57:17,342 INFO L87 Difference]: Start difference. First operand 4074 states and 6499 transitions. cyclomatic complexity: 2457 Second operand has 26 states, 21 states have (on average 3.3333333333333335) internal successors, (70), 24 states have internal predecessors, (70), 17 states have call successors, (29), 2 states have call predecessors, (29), 10 states have return successors, (34), 13 states have call predecessors, (34), 17 states have call successors, (34) [2023-02-18 08:57:18,146 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:57:18,146 INFO L93 Difference]: Finished difference Result 4641 states and 7351 transitions. [2023-02-18 08:57:18,146 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4641 states and 7351 transitions. [2023-02-18 08:57:18,168 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 897 [2023-02-18 08:57:18,193 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4641 states to 4607 states and 7283 transitions. [2023-02-18 08:57:18,193 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 499 [2023-02-18 08:57:18,194 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 499 [2023-02-18 08:57:18,194 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4607 states and 7283 transitions. [2023-02-18 08:57:18,194 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:57:18,194 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4607 states and 7283 transitions. [2023-02-18 08:57:18,195 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4607 states and 7283 transitions. [2023-02-18 08:57:18,239 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4607 to 4077. [2023-02-18 08:57:18,242 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4077 states, 2468 states have (on average 1.0506482982171799) internal successors, (2593), 2461 states have internal predecessors, (2593), 1342 states have call successors, (1358), 370 states have call predecessors, (1358), 267 states have return successors, (2598), 1245 states have call predecessors, (2598), 1342 states have call successors, (2598) [2023-02-18 08:57:18,254 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4077 states to 4077 states and 6549 transitions. [2023-02-18 08:57:18,254 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4077 states and 6549 transitions. [2023-02-18 08:57:18,254 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 28 states. [2023-02-18 08:57:18,255 INFO L428 stractBuchiCegarLoop]: Abstraction has 4077 states and 6549 transitions. [2023-02-18 08:57:18,255 INFO L335 stractBuchiCegarLoop]: ======== Iteration 72 ============ [2023-02-18 08:57:18,255 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4077 states and 6549 transitions. [2023-02-18 08:57:18,263 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 872 [2023-02-18 08:57:18,263 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:57:18,263 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:57:18,266 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [159, 159, 105, 105, 105, 105, 54, 18, 17, 12, 12, 12, 12, 12, 12, 12, 11, 11, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-18 08:57:18,266 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [96, 96, 75, 75, 75, 75, 21, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:57:18,266 INFO L748 eck$LassoCheckResult]: Stem: 450255#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 450194#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; 450195#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 450214#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; 450256#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 453669#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 453666#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 450192#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 450193#$Ultimate##0 ~n := #in~n; 453328#L25 assume ~n <= 0;#res := 1; 453326#factFINAL assume true; 453325#factEXIT >#68#return; 453323#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 453324#$Ultimate##0 ~n := #in~n; 453329#L25 assume ~n <= 0;#res := 1; 453327#factFINAL assume true; 453322#factEXIT >#70#return; 450170#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 450171#$Ultimate##0 ~n := #in~n; 454012#L25 assume ~n <= 0;#res := 1; 454011#factFINAL assume true; 454010#factEXIT >#72#return; 454009#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 454007#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 454004#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 453999#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 453995#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 453988#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 453989#$Ultimate##0 ~n := #in~n; 454006#L25 assume !(~n <= 0); 454002#L26 call #t~ret0 := fact(~n - 1);< 454003#$Ultimate##0 ~n := #in~n; 454008#L25 assume ~n <= 0;#res := 1; 454005#factFINAL assume true; 454001#factEXIT >#66#return; 453998#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 453994#factFINAL assume true; 453987#factEXIT >#74#return; 453983#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 453984#$Ultimate##0 ~n := #in~n; 453993#L25 assume ~n <= 0;#res := 1; 453986#factFINAL assume true; 453982#factEXIT >#76#return; 453979#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 453980#$Ultimate##0 ~n := #in~n; 453997#L25 assume !(~n <= 0); 453991#L26 call #t~ret0 := fact(~n - 1);< 453992#$Ultimate##0 ~n := #in~n; 454000#L25 assume ~n <= 0;#res := 1; 453996#factFINAL assume true; 453990#factEXIT >#66#return; 453985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 453981#factFINAL assume true; 453978#factEXIT >#78#return; 453977#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 453976#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 453975#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 453974#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 453973#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 453950#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 453970#$Ultimate##0 ~n := #in~n; 453966#L25 assume !(~n <= 0); 453944#L26 call #t~ret0 := fact(~n - 1);< 453948#$Ultimate##0 ~n := #in~n; 453957#L25 assume !(~n <= 0); 453943#L26 call #t~ret0 := fact(~n - 1);< 453954#$Ultimate##0 ~n := #in~n; 453956#L25 assume ~n <= 0;#res := 1; 453955#factFINAL assume true; 453953#factEXIT >#66#return; 453952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 453949#factFINAL assume true; 453942#factEXIT >#66#return; 453946#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 454020#factFINAL assume true; 453972#factEXIT >#74#return; 453964#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 453965#$Ultimate##0 ~n := #in~n; 453971#L25 assume ~n <= 0;#res := 1; 453969#factFINAL assume true; 453963#factEXIT >#76#return; 453938#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 453939#$Ultimate##0 ~n := #in~n; 453951#L25 assume !(~n <= 0); 453945#L26 call #t~ret0 := fact(~n - 1);< 453948#$Ultimate##0 ~n := #in~n; 453957#L25 assume !(~n <= 0); 453943#L26 call #t~ret0 := fact(~n - 1);< 453954#$Ultimate##0 ~n := #in~n; 453956#L25 assume ~n <= 0;#res := 1; 453955#factFINAL assume true; 453953#factEXIT >#66#return; 453952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 453949#factFINAL assume true; 453942#factEXIT >#66#return; 453941#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 453940#factFINAL assume true; 453937#factEXIT >#78#return; 453935#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 453932#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 453928#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 453925#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 453907#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 453903#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 453904#$Ultimate##0 ~n := #in~n; 453915#L25 assume !(~n <= 0); 453912#L26 call #t~ret0 := fact(~n - 1);< 453913#$Ultimate##0 ~n := #in~n; 453920#L25 assume !(~n <= 0); 453911#L26 call #t~ret0 := fact(~n - 1);< 453918#$Ultimate##0 ~n := #in~n; 453920#L25 assume !(~n <= 0); 453911#L26 call #t~ret0 := fact(~n - 1);< 453918#$Ultimate##0 ~n := #in~n; 453924#L25 assume ~n <= 0;#res := 1; 453923#factFINAL assume true; 453922#factEXIT >#66#return; 453921#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 453919#factFINAL assume true; 453917#factEXIT >#66#return; 453916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 453914#factFINAL assume true; 453910#factEXIT >#66#return; 453909#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 453906#factFINAL assume true; 453902#factEXIT >#74#return; 453895#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 453896#$Ultimate##0 ~n := #in~n; 453905#L25 assume ~n <= 0;#res := 1; 453901#factFINAL assume true; 453894#factEXIT >#76#return; 450223#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 453746#$Ultimate##0 ~n := #in~n; 453871#L25 assume !(~n <= 0); 453786#L26 call #t~ret0 := fact(~n - 1);< 453792#$Ultimate##0 ~n := #in~n; 453832#L25 assume !(~n <= 0); 453787#L26 call #t~ret0 := fact(~n - 1);< 453831#$Ultimate##0 ~n := #in~n; 453832#L25 assume !(~n <= 0); 453787#L26 call #t~ret0 := fact(~n - 1);< 453831#$Ultimate##0 ~n := #in~n; 453835#L25 assume ~n <= 0;#res := 1; 453834#factFINAL assume true; 453830#factEXIT >#66#return; 453829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 453828#factFINAL assume true; 453803#factEXIT >#66#return; 453801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 453800#factFINAL assume true; 453785#factEXIT >#66#return; 450222#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450224#factFINAL assume true; 453745#factEXIT >#78#return; 453743#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 453741#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 453740#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 453739#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 453738#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 453736#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 453735#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 450988#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 450927#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 450933#$Ultimate##0 ~n := #in~n; 450981#L25 assume !(~n <= 0); 450955#L26 call #t~ret0 := fact(~n - 1);< 450974#$Ultimate##0 ~n := #in~n; 451303#L25 assume ~n <= 0;#res := 1; 451866#factFINAL assume true; 451580#factEXIT >#66#return; 451579#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451572#factFINAL assume true; 451536#factEXIT >#68#return; 451530#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 450923#$Ultimate##0 ~n := #in~n; 451538#L25 assume ~n <= 0;#res := 1; 451535#factFINAL assume true; 451529#factEXIT >#70#return; 451525#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 451528#$Ultimate##0 ~n := #in~n; 451527#L25 assume !(~n <= 0); 450945#L26 call #t~ret0 := fact(~n - 1);< 451526#$Ultimate##0 ~n := #in~n; 451303#L25 assume ~n <= 0;#res := 1; 451866#factFINAL assume true; 451580#factEXIT >#66#return; 451584#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 454096#factFINAL assume true; 454095#factEXIT >#72#return; 454094#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 454092#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 454090#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 454088#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 453720#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 451873#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 452124#$Ultimate##0 ~n := #in~n; 452123#L25 assume !(~n <= 0); 450967#L26 call #t~ret0 := fact(~n - 1);< 451526#$Ultimate##0 ~n := #in~n; 451303#L25 assume ~n <= 0;#res := 1; 451866#factFINAL assume true; 451580#factEXIT >#66#return; 451585#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452943#factFINAL assume true; 452942#factEXIT >#68#return; 451882#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 452131#$Ultimate##0 ~n := #in~n; 452129#L25 assume !(~n <= 0); 450959#L26 call #t~ret0 := fact(~n - 1);< 450974#$Ultimate##0 ~n := #in~n; 451303#L25 assume ~n <= 0;#res := 1; 451866#factFINAL assume true; 451580#factEXIT >#66#return; 451583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 453001#factFINAL assume true; 452836#factEXIT >#70#return; 452848#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 452909#$Ultimate##0 ~n := #in~n; 452922#L25 assume ~n <= 0;#res := 1; 452913#factFINAL assume true; 452900#factEXIT >#72#return; 452905#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 452939#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 452937#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 452935#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 452932#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 452862#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 452924#$Ultimate##0 ~n := #in~n; 453848#L25 assume !(~n <= 0); 450947#L26 call #t~ret0 := fact(~n - 1);< 453737#$Ultimate##0 ~n := #in~n; 451899#L25 assume !(~n <= 0); 450943#L26 call #t~ret0 := fact(~n - 1);< 450985#$Ultimate##0 ~n := #in~n; 450993#L25 assume ~n <= 0;#res := 1; 450991#factFINAL assume true; 450983#factEXIT >#66#return; 450982#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450975#factFINAL assume true; 450942#factEXIT >#66#return; 450971#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452923#factFINAL assume true; 452914#factEXIT >#74#return; 451880#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 452131#$Ultimate##0 ~n := #in~n; 452129#L25 assume !(~n <= 0); 450959#L26 call #t~ret0 := fact(~n - 1);< 450974#$Ultimate##0 ~n := #in~n; 451303#L25 assume ~n <= 0;#res := 1; 451866#factFINAL assume true; 451580#factEXIT >#66#return; 451583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 453001#factFINAL assume true; 452836#factEXIT >#76#return; 452843#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 452853#$Ultimate##0 ~n := #in~n; 453048#L25 assume !(~n <= 0); 451581#L26 call #t~ret0 := fact(~n - 1);< 451872#$Ultimate##0 ~n := #in~n; 451303#L25 assume ~n <= 0;#res := 1; 451866#factFINAL assume true; 451580#factEXIT >#66#return; 451583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 453001#factFINAL assume true; 452836#factEXIT >#78#return; 452850#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 453628#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 453627#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 453626#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 453040#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 452715#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 452495#$Ultimate##0 ~n := #in~n; 453694#L25 assume !(~n <= 0); 452792#L26 call #t~ret0 := fact(~n - 1);< 453593#$Ultimate##0 ~n := #in~n; 452884#L25 assume !(~n <= 0); 452790#L26 call #t~ret0 := fact(~n - 1);< 452813#$Ultimate##0 ~n := #in~n; 452884#L25 assume !(~n <= 0); 452790#L26 call #t~ret0 := fact(~n - 1);< 452813#$Ultimate##0 ~n := #in~n; 452817#L25 assume ~n <= 0;#res := 1; 452815#factFINAL assume true; 452811#factEXIT >#66#return; 452810#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452808#factFINAL assume true; 452788#factEXIT >#66#return; 452805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452921#factFINAL assume true; 452910#factEXIT >#66#return; 452912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 453683#factFINAL assume true; 452725#factEXIT >#74#return; 452687#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 452688#$Ultimate##0 ~n := #in~n; 453588#L25 assume !(~n <= 0); 452798#L26 call #t~ret0 := fact(~n - 1);< 453587#$Ultimate##0 ~n := #in~n; 452819#L25 assume ~n <= 0;#res := 1; 453590#factFINAL assume true; 453582#factEXIT >#66#return; 453581#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 453580#factFINAL assume true; 453578#factEXIT >#76#return; 452693#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 452831#$Ultimate##0 ~n := #in~n; 452828#L25 assume !(~n <= 0); 452793#L26 call #t~ret0 := fact(~n - 1);< 452827#$Ultimate##0 ~n := #in~n; 452826#L25 assume !(~n <= 0); 452789#L26 call #t~ret0 := fact(~n - 1);< 452824#$Ultimate##0 ~n := #in~n; 452817#L25 assume ~n <= 0;#res := 1; 452815#factFINAL assume true; 452811#factEXIT >#66#return; 452810#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452808#factFINAL assume true; 452788#factEXIT >#66#return; 452806#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 453684#factFINAL assume true; 452691#factEXIT >#78#return; 452721#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 453577#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 453575#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 453574#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 453573#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 453571#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 453570#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 452364#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 450931#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 450933#$Ultimate##0 ~n := #in~n; 450981#L25 assume !(~n <= 0); 450955#L26 call #t~ret0 := fact(~n - 1);< 450974#$Ultimate##0 ~n := #in~n; 451297#L25 assume !(~n <= 0); 450962#L26 call #t~ret0 := fact(~n - 1);< 451292#$Ultimate##0 ~n := #in~n; 450993#L25 assume ~n <= 0;#res := 1; 450991#factFINAL assume true; 450983#factEXIT >#66#return; 450982#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450975#factFINAL assume true; 450942#factEXIT >#66#return; 450941#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450938#factFINAL assume true; 450925#factEXIT >#68#return; 450919#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 450920#$Ultimate##0 ~n := #in~n; 450934#L25 assume ~n <= 0;#res := 1; 450924#factFINAL assume true; 450915#factEXIT >#70#return; 450906#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 450913#$Ultimate##0 ~n := #in~n; 450939#L25 assume !(~n <= 0); 450697#L26 call #t~ret0 := fact(~n - 1);< 450706#$Ultimate##0 ~n := #in~n; 450729#L25 assume !(~n <= 0); 450719#L26 call #t~ret0 := fact(~n - 1);< 450722#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450704#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450914#factFINAL assume true; 450905#factEXIT >#72#return; 450910#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 453685#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 453620#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 453619#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 453618#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 450889#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 450893#$Ultimate##0 ~n := #in~n; 450898#L25 assume !(~n <= 0); 450699#L26 call #t~ret0 := fact(~n - 1);< 450706#$Ultimate##0 ~n := #in~n; 450729#L25 assume !(~n <= 0); 450719#L26 call #t~ret0 := fact(~n - 1);< 450722#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450705#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450894#factFINAL assume true; 450884#factEXIT >#68#return; 450754#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 450764#$Ultimate##0 ~n := #in~n; 450829#L25 assume !(~n <= 0); 450674#L26 call #t~ret0 := fact(~n - 1);< 450797#$Ultimate##0 ~n := #in~n; 450845#L25 assume ~n <= 0;#res := 1; 450808#factFINAL assume true; 450790#factEXIT >#66#return; 450785#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450765#factFINAL assume true; 450736#factEXIT >#70#return; 450743#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 450766#$Ultimate##0 ~n := #in~n; 450799#L25 assume !(~n <= 0); 450793#L26 call #t~ret0 := fact(~n - 1);< 450798#$Ultimate##0 ~n := #in~n; 450845#L25 assume ~n <= 0;#res := 1; 450808#factFINAL assume true; 450790#factEXIT >#66#return; 450785#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450765#factFINAL assume true; 450736#factEXIT >#72#return; 450759#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 452373#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 452374#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 452369#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 452370#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 450890#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 450893#$Ultimate##0 ~n := #in~n; 450898#L25 assume !(~n <= 0); 450699#L26 call #t~ret0 := fact(~n - 1);< 450706#$Ultimate##0 ~n := #in~n; 450729#L25 assume !(~n <= 0); 450719#L26 call #t~ret0 := fact(~n - 1);< 450722#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450705#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450894#factFINAL assume true; 450884#factEXIT >#68#return; 450836#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 450855#$Ultimate##0 ~n := #in~n; 451788#L25 assume !(~n <= 0); 450667#L26 call #t~ret0 := fact(~n - 1);< 450688#$Ultimate##0 ~n := #in~n; 450727#L25 assume !(~n <= 0); 450695#L26 call #t~ret0 := fact(~n - 1);< 450720#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450702#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450854#factFINAL assume true; 450835#factEXIT >#70#return; 450840#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 450878#$Ultimate##0 ~n := #in~n; 450883#L25 assume ~n <= 0;#res := 1; 450881#factFINAL assume true; 450874#factEXIT >#72#return; 450875#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 453435#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 453434#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 453432#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 453426#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 450861#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 450167#$Ultimate##0 ~n := #in~n; 453569#L25 assume !(~n <= 0); 452456#L26 call #t~ret0 := fact(~n - 1);< 452472#$Ultimate##0 ~n := #in~n; 452593#L25 assume !(~n <= 0); 452463#L26 call #t~ret0 := fact(~n - 1);< 452584#$Ultimate##0 ~n := #in~n; 452593#L25 assume !(~n <= 0); 452463#L26 call #t~ret0 := fact(~n - 1);< 452584#$Ultimate##0 ~n := #in~n; 452595#L25 assume ~n <= 0;#res := 1; 452594#factFINAL assume true; 452582#factEXIT >#66#return; 452580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452564#factFINAL assume true; 452556#factEXIT >#66#return; 452560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452476#factFINAL assume true; 452449#factEXIT >#66#return; 452470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452888#factFINAL assume true; 452883#factEXIT >#74#return; 452566#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 452971#$Ultimate##0 ~n := #in~n; 452972#L25 assume !(~n <= 0); 452457#L26 call #t~ret0 := fact(~n - 1);< 452568#$Ultimate##0 ~n := #in~n; 452588#L25 assume !(~n <= 0); 452558#L26 call #t~ret0 := fact(~n - 1);< 452586#$Ultimate##0 ~n := #in~n; 452591#L25 assume !(~n <= 0); 452583#L26 call #t~ret0 := fact(~n - 1);< 452585#$Ultimate##0 ~n := #in~n; 452595#L25 assume ~n <= 0;#res := 1; 452594#factFINAL assume true; 452582#factEXIT >#66#return; 452580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452564#factFINAL assume true; 452556#factEXIT >#66#return; 452560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452476#factFINAL assume true; 452449#factEXIT >#66#return; 452470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452888#factFINAL assume true; 452883#factEXIT >#76#return; 452768#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 453423#$Ultimate##0 ~n := #in~n; 453433#L25 assume !(~n <= 0); 453429#L26 call #t~ret0 := fact(~n - 1);< 450201#$Ultimate##0 ~n := #in~n; 452592#L25 assume ~n <= 0;#res := 1; 453436#factFINAL assume true; 453427#factEXIT >#66#return; 453425#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 453424#factFINAL assume true; 452767#factEXIT >#78#return; 452769#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 453934#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 453930#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 453927#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 453899#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 453898#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 453897#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 453768#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 453536#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 453767#$Ultimate##0 ~n := #in~n; 453766#L25 assume !(~n <= 0); 450600#L26 call #t~ret0 := fact(~n - 1);< 453761#$Ultimate##0 ~n := #in~n; 453759#L25 assume !(~n <= 0); 450643#L26 call #t~ret0 := fact(~n - 1);< 453757#$Ultimate##0 ~n := #in~n; 453752#L25 assume !(~n <= 0); 450673#L26 call #t~ret0 := fact(~n - 1);< 453749#$Ultimate##0 ~n := #in~n; 453748#L25 assume !(~n <= 0); 450694#L26 call #t~ret0 := fact(~n - 1);< 450720#$Ultimate##0 ~n := #in~n; 450729#L25 assume !(~n <= 0); 450719#L26 call #t~ret0 := fact(~n - 1);< 450722#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450655#factFINAL assume true; 450634#factEXIT >#66#return; 450633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450627#factFINAL assume true; 450593#factEXIT >#66#return; 450623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 453541#factFINAL assume true; 453535#factEXIT >#68#return; 451838#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 451848#$Ultimate##0 ~n := #in~n; 451857#L25 assume ~n <= 0;#res := 1; 451849#factFINAL assume true; 451837#factEXIT >#70#return; 451817#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 451836#$Ultimate##0 ~n := #in~n; 451856#L25 assume !(~n <= 0); 450595#L26 call #t~ret0 := fact(~n - 1);< 451149#$Ultimate##0 ~n := #in~n; 454186#L25 assume !(~n <= 0); 450603#L26 call #t~ret0 := fact(~n - 1);< 450653#$Ultimate##0 ~n := #in~n; 454229#L25 assume !(~n <= 0); 450246#L26 call #t~ret0 := fact(~n - 1);< 450245#$Ultimate##0 ~n := #in~n; 450247#L25 assume !(~n <= 0); 450606#L26 call #t~ret0 := fact(~n - 1);< 450663#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450655#factFINAL assume true; 450634#factEXIT >#66#return; 450633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450627#factFINAL assume true; 450593#factEXIT >#66#return; 450620#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451850#factFINAL assume true; 451816#factEXIT >#72#return; 451827#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 454032#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 454031#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 454030#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 454027#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 450517#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 450589#$Ultimate##0 ~n := #in~n; 451174#L25 assume !(~n <= 0); 450594#L26 call #t~ret0 := fact(~n - 1);< 450626#$Ultimate##0 ~n := #in~n; 453893#L25 assume !(~n <= 0); 450236#L26 call #t~ret0 := fact(~n - 1);< 450654#$Ultimate##0 ~n := #in~n; 450235#L25 assume !(~n <= 0); 450238#L26 call #t~ret0 := fact(~n - 1);< 450684#$Ultimate##0 ~n := #in~n; 454224#L25 assume !(~n <= 0); 450693#L26 call #t~ret0 := fact(~n - 1);< 450706#$Ultimate##0 ~n := #in~n; 450729#L25 assume !(~n <= 0); 450719#L26 call #t~ret0 := fact(~n - 1);< 450722#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450655#factFINAL assume true; 450634#factEXIT >#66#return; 450633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450627#factFINAL assume true; 450593#factEXIT >#66#return; 450592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450590#factFINAL assume true; 450513#factEXIT >#68#return; 450269#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 450280#$Ultimate##0 ~n := #in~n; 450267#L25 assume !(~n <= 0); 450279#L26 call #t~ret0 := fact(~n - 1);< 450798#$Ultimate##0 ~n := #in~n; 450845#L25 assume ~n <= 0;#res := 1; 450808#factFINAL assume true; 450790#factEXIT >#66#return; 450795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451898#factFINAL assume true; 451600#factEXIT >#70#return; 451558#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 451616#$Ultimate##0 ~n := #in~n; 451590#L25 assume !(~n <= 0); 450635#L26 call #t~ret0 := fact(~n - 1);< 451589#$Ultimate##0 ~n := #in~n; 451034#L25 assume !(~n <= 0); 450671#L26 call #t~ret0 := fact(~n - 1);< 450688#$Ultimate##0 ~n := #in~n; 450727#L25 assume !(~n <= 0); 450695#L26 call #t~ret0 := fact(~n - 1);< 450720#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450679#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451701#factFINAL assume true; 451685#factEXIT >#72#return; 451562#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 454028#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 454018#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 454014#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 454013#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 450521#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 450589#$Ultimate##0 ~n := #in~n; 451174#L25 assume !(~n <= 0); 450594#L26 call #t~ret0 := fact(~n - 1);< 450626#$Ultimate##0 ~n := #in~n; 453893#L25 assume !(~n <= 0); 450236#L26 call #t~ret0 := fact(~n - 1);< 450654#$Ultimate##0 ~n := #in~n; 450235#L25 assume !(~n <= 0); 450238#L26 call #t~ret0 := fact(~n - 1);< 450684#$Ultimate##0 ~n := #in~n; 454224#L25 assume !(~n <= 0); 450693#L26 call #t~ret0 := fact(~n - 1);< 450706#$Ultimate##0 ~n := #in~n; 450729#L25 assume !(~n <= 0); 450719#L26 call #t~ret0 := fact(~n - 1);< 450722#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450655#factFINAL assume true; 450634#factEXIT >#66#return; 450633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450627#factFINAL assume true; 450593#factEXIT >#66#return; 450592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450590#factFINAL assume true; 450513#factEXIT >#68#return; 450347#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 450511#$Ultimate##0 ~n := #in~n; 451339#L25 assume !(~n <= 0); 450609#L26 call #t~ret0 := fact(~n - 1);< 450663#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450701#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451680#factFINAL assume true; 451639#factEXIT >#70#return; 451646#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 451474#$Ultimate##0 ~n := #in~n; 451705#L25 assume !(~n <= 0); 450676#L26 call #t~ret0 := fact(~n - 1);< 450684#$Ultimate##0 ~n := #in~n; 454224#L25 assume !(~n <= 0); 450693#L26 call #t~ret0 := fact(~n - 1);< 450706#$Ultimate##0 ~n := #in~n; 450729#L25 assume !(~n <= 0); 450719#L26 call #t~ret0 := fact(~n - 1);< 450722#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450679#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451701#factFINAL assume true; 451685#factEXIT >#72#return; 451694#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 453373#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 453372#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 453370#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 453368#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 450555#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 450589#$Ultimate##0 ~n := #in~n; 451174#L25 assume !(~n <= 0); 450594#L26 call #t~ret0 := fact(~n - 1);< 450626#$Ultimate##0 ~n := #in~n; 453893#L25 assume !(~n <= 0); 450236#L26 call #t~ret0 := fact(~n - 1);< 450654#$Ultimate##0 ~n := #in~n; 450235#L25 assume !(~n <= 0); 450238#L26 call #t~ret0 := fact(~n - 1);< 450684#$Ultimate##0 ~n := #in~n; 454224#L25 assume !(~n <= 0); 450693#L26 call #t~ret0 := fact(~n - 1);< 450706#$Ultimate##0 ~n := #in~n; 450729#L25 assume !(~n <= 0); 450719#L26 call #t~ret0 := fact(~n - 1);< 450722#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450655#factFINAL assume true; 450634#factEXIT >#66#return; 450633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450627#factFINAL assume true; 450593#factEXIT >#66#return; 450592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450590#factFINAL assume true; 450513#factEXIT >#68#return; 450338#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 450511#$Ultimate##0 ~n := #in~n; 451339#L25 assume !(~n <= 0); 450609#L26 call #t~ret0 := fact(~n - 1);< 450663#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450679#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451701#factFINAL assume true; 451685#factEXIT >#70#return; 450819#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 450872#$Ultimate##0 ~n := #in~n; 450858#L25 assume !(~n <= 0); 450675#L26 call #t~ret0 := fact(~n - 1);< 450797#$Ultimate##0 ~n := #in~n; 450727#L25 assume !(~n <= 0); 450695#L26 call #t~ret0 := fact(~n - 1);< 450720#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450701#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451680#factFINAL assume true; 451639#factEXIT >#72#return; 451659#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 453371#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 453369#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 453367#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 453366#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 450563#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 450589#$Ultimate##0 ~n := #in~n; 451174#L25 assume !(~n <= 0); 450594#L26 call #t~ret0 := fact(~n - 1);< 450626#$Ultimate##0 ~n := #in~n; 453893#L25 assume !(~n <= 0); 450236#L26 call #t~ret0 := fact(~n - 1);< 450654#$Ultimate##0 ~n := #in~n; 450235#L25 assume !(~n <= 0); 450238#L26 call #t~ret0 := fact(~n - 1);< 450684#$Ultimate##0 ~n := #in~n; 454224#L25 assume !(~n <= 0); 450693#L26 call #t~ret0 := fact(~n - 1);< 450706#$Ultimate##0 ~n := #in~n; 450729#L25 assume !(~n <= 0); 450719#L26 call #t~ret0 := fact(~n - 1);< 450722#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450655#factFINAL assume true; 450634#factEXIT >#66#return; 450633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450627#factFINAL assume true; 450593#factEXIT >#66#return; 450592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450590#factFINAL assume true; 450513#factEXIT >#68#return; 450349#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 450511#$Ultimate##0 ~n := #in~n; 451339#L25 assume !(~n <= 0); 450609#L26 call #t~ret0 := fact(~n - 1);< 450663#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450655#factFINAL assume true; 450634#factEXIT >#66#return; 450646#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451576#factFINAL assume true; 451554#factEXIT >#70#return; 450820#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 450872#$Ultimate##0 ~n := #in~n; 450858#L25 assume !(~n <= 0); 450675#L26 call #t~ret0 := fact(~n - 1);< 450797#$Ultimate##0 ~n := #in~n; 450845#L25 assume ~n <= 0;#res := 1; 450808#factFINAL assume true; 450790#factEXIT >#66#return; 450795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451898#factFINAL assume true; 451600#factEXIT >#72#return; 451604#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 454102#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 454100#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 454099#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 454098#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 450531#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 450589#$Ultimate##0 ~n := #in~n; 451174#L25 assume !(~n <= 0); 450594#L26 call #t~ret0 := fact(~n - 1);< 450626#$Ultimate##0 ~n := #in~n; 453893#L25 assume !(~n <= 0); 450236#L26 call #t~ret0 := fact(~n - 1);< 450654#$Ultimate##0 ~n := #in~n; 450235#L25 assume !(~n <= 0); 450238#L26 call #t~ret0 := fact(~n - 1);< 450684#$Ultimate##0 ~n := #in~n; 454224#L25 assume !(~n <= 0); 450693#L26 call #t~ret0 := fact(~n - 1);< 450706#$Ultimate##0 ~n := #in~n; 450729#L25 assume !(~n <= 0); 450719#L26 call #t~ret0 := fact(~n - 1);< 450722#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450655#factFINAL assume true; 450634#factEXIT >#66#return; 450633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450627#factFINAL assume true; 450593#factEXIT >#66#return; 450592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450590#factFINAL assume true; 450513#factEXIT >#68#return; 450430#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 450511#$Ultimate##0 ~n := #in~n; 451339#L25 assume !(~n <= 0); 450609#L26 call #t~ret0 := fact(~n - 1);< 450663#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450655#factFINAL assume true; 450634#factEXIT >#66#return; 450633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450627#factFINAL assume true; 450593#factEXIT >#66#return; 450619#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451166#factFINAL assume true; 451157#factEXIT >#66#return; 451160#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451592#factFINAL assume true; 450310#factEXIT >#70#return; 450499#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 450873#$Ultimate##0 ~n := #in~n; 450859#L25 assume ~n <= 0;#res := 1; 450278#factFINAL assume true; 451548#factEXIT >#72#return; 451551#L30-3 [2023-02-18 08:57:18,266 INFO L750 eck$LassoCheckResult]: Loop: 451551#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 453557#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 453556#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 453555#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 453554#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 451780#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 452409#$Ultimate##0 ~n := #in~n; 452746#L25 assume !(~n <= 0); 452546#L26 call #t~ret0 := fact(~n - 1);< 452552#$Ultimate##0 ~n := #in~n; 453561#L25 assume !(~n <= 0); 452485#L26 call #t~ret0 := fact(~n - 1);< 452578#$Ultimate##0 ~n := #in~n; 453493#L25 assume !(~n <= 0); 452455#L26 call #t~ret0 := fact(~n - 1);< 452486#$Ultimate##0 ~n := #in~n; 450244#L25 assume !(~n <= 0); 452451#L26 call #t~ret0 := fact(~n - 1);< 452565#$Ultimate##0 ~n := #in~n; 452593#L25 assume !(~n <= 0); 452463#L26 call #t~ret0 := fact(~n - 1);< 452584#$Ultimate##0 ~n := #in~n; 452595#L25 assume ~n <= 0;#res := 1; 452594#factFINAL assume true; 452582#factEXIT >#66#return; 452580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452564#factFINAL assume true; 452556#factEXIT >#66#return; 452560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452476#factFINAL assume true; 452449#factEXIT >#66#return; 452468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452664#factFINAL assume true; 452659#factEXIT >#66#return; 452658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452571#factFINAL assume true; 452544#factEXIT >#66#return; 452543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452541#factFINAL assume true; 452411#factEXIT >#74#return; 452394#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 452667#$Ultimate##0 ~n := #in~n; 452665#L25 assume !(~n <= 0); 452467#L26 call #t~ret0 := fact(~n - 1);< 452472#$Ultimate##0 ~n := #in~n; 452593#L25 assume !(~n <= 0); 452463#L26 call #t~ret0 := fact(~n - 1);< 452584#$Ultimate##0 ~n := #in~n; 452593#L25 assume !(~n <= 0); 452463#L26 call #t~ret0 := fact(~n - 1);< 452584#$Ultimate##0 ~n := #in~n; 452593#L25 assume !(~n <= 0); 452463#L26 call #t~ret0 := fact(~n - 1);< 452584#$Ultimate##0 ~n := #in~n; 452593#L25 assume !(~n <= 0); 452463#L26 call #t~ret0 := fact(~n - 1);< 452584#$Ultimate##0 ~n := #in~n; 452593#L25 assume !(~n <= 0); 452463#L26 call #t~ret0 := fact(~n - 1);< 452584#$Ultimate##0 ~n := #in~n; 452595#L25 assume ~n <= 0;#res := 1; 452594#factFINAL assume true; 452582#factEXIT >#66#return; 452580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452564#factFINAL assume true; 452556#factEXIT >#66#return; 452560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452476#factFINAL assume true; 452449#factEXIT >#66#return; 452468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452664#factFINAL assume true; 452659#factEXIT >#66#return; 452658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452571#factFINAL assume true; 452544#factEXIT >#66#return; 452549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 453514#factFINAL assume true; 453510#factEXIT >#66#return; 453513#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 452410#factFINAL assume true; 452397#factEXIT >#76#return; 450183#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 451954#$Ultimate##0 ~n := #in~n; 453568#L25 assume !(~n <= 0); 450200#L26 call #t~ret0 := fact(~n - 1);< 450201#$Ultimate##0 ~n := #in~n; 452592#L25 assume ~n <= 0;#res := 1; 453436#factFINAL assume true; 453427#factEXIT >#66#return; 453431#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450181#factFINAL assume true; 450186#factEXIT >#78#return; 451953#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 454125#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 454124#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 454123#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 454122#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 454121#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 454120#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 454119#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 450632#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 450191#$Ultimate##0 ~n := #in~n; 454056#L25 assume !(~n <= 0); 450602#L26 call #t~ret0 := fact(~n - 1);< 450626#$Ultimate##0 ~n := #in~n; 453893#L25 assume !(~n <= 0); 450236#L26 call #t~ret0 := fact(~n - 1);< 450654#$Ultimate##0 ~n := #in~n; 450235#L25 assume !(~n <= 0); 450238#L26 call #t~ret0 := fact(~n - 1);< 450684#$Ultimate##0 ~n := #in~n; 454224#L25 assume !(~n <= 0); 450693#L26 call #t~ret0 := fact(~n - 1);< 450706#$Ultimate##0 ~n := #in~n; 450729#L25 assume !(~n <= 0); 450719#L26 call #t~ret0 := fact(~n - 1);< 450722#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450655#factFINAL assume true; 450634#factEXIT >#66#return; 450633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450627#factFINAL assume true; 450593#factEXIT >#66#return; 450623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 453541#factFINAL assume true; 453535#factEXIT >#68#return; 451839#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 451848#$Ultimate##0 ~n := #in~n; 451857#L25 assume ~n <= 0;#res := 1; 451849#factFINAL assume true; 451837#factEXIT >#70#return; 451823#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 451836#$Ultimate##0 ~n := #in~n; 451856#L25 assume !(~n <= 0); 450595#L26 call #t~ret0 := fact(~n - 1);< 451149#$Ultimate##0 ~n := #in~n; 454186#L25 assume !(~n <= 0); 450603#L26 call #t~ret0 := fact(~n - 1);< 450653#$Ultimate##0 ~n := #in~n; 454229#L25 assume !(~n <= 0); 450246#L26 call #t~ret0 := fact(~n - 1);< 450245#$Ultimate##0 ~n := #in~n; 450247#L25 assume !(~n <= 0); 450606#L26 call #t~ret0 := fact(~n - 1);< 450663#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450655#factFINAL assume true; 450634#factEXIT >#66#return; 450633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450627#factFINAL assume true; 450593#factEXIT >#66#return; 450620#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451850#factFINAL assume true; 451816#factEXIT >#72#return; 451832#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 454118#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 454117#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 454116#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 454115#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 450542#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 450589#$Ultimate##0 ~n := #in~n; 451174#L25 assume !(~n <= 0); 450594#L26 call #t~ret0 := fact(~n - 1);< 450626#$Ultimate##0 ~n := #in~n; 453893#L25 assume !(~n <= 0); 450236#L26 call #t~ret0 := fact(~n - 1);< 450654#$Ultimate##0 ~n := #in~n; 450235#L25 assume !(~n <= 0); 450238#L26 call #t~ret0 := fact(~n - 1);< 450684#$Ultimate##0 ~n := #in~n; 454224#L25 assume !(~n <= 0); 450693#L26 call #t~ret0 := fact(~n - 1);< 450706#$Ultimate##0 ~n := #in~n; 450729#L25 assume !(~n <= 0); 450719#L26 call #t~ret0 := fact(~n - 1);< 450722#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450655#factFINAL assume true; 450634#factEXIT >#66#return; 450633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450627#factFINAL assume true; 450593#factEXIT >#66#return; 450592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450590#factFINAL assume true; 450513#factEXIT >#68#return; 450270#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 450280#$Ultimate##0 ~n := #in~n; 450267#L25 assume !(~n <= 0); 450279#L26 call #t~ret0 := fact(~n - 1);< 450798#$Ultimate##0 ~n := #in~n; 450845#L25 assume ~n <= 0;#res := 1; 450808#factFINAL assume true; 450790#factEXIT >#66#return; 450795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451898#factFINAL assume true; 451600#factEXIT >#70#return; 450465#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 451574#$Ultimate##0 ~n := #in~n; 453624#L25 assume !(~n <= 0); 450617#L26 call #t~ret0 := fact(~n - 1);< 450653#$Ultimate##0 ~n := #in~n; 454229#L25 assume !(~n <= 0); 450246#L26 call #t~ret0 := fact(~n - 1);< 450245#$Ultimate##0 ~n := #in~n; 450247#L25 assume !(~n <= 0); 450606#L26 call #t~ret0 := fact(~n - 1);< 450663#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450655#factFINAL assume true; 450634#factEXIT >#66#return; 450633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450627#factFINAL assume true; 450593#factEXIT >#66#return; 450619#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451166#factFINAL assume true; 451157#factEXIT >#66#return; 451160#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451592#factFINAL assume true; 450310#factEXIT >#72#return; 450508#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 454114#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 454113#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 454112#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 454111#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 450581#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 450589#$Ultimate##0 ~n := #in~n; 451174#L25 assume !(~n <= 0); 450594#L26 call #t~ret0 := fact(~n - 1);< 450626#$Ultimate##0 ~n := #in~n; 453893#L25 assume !(~n <= 0); 450236#L26 call #t~ret0 := fact(~n - 1);< 450654#$Ultimate##0 ~n := #in~n; 450235#L25 assume !(~n <= 0); 450238#L26 call #t~ret0 := fact(~n - 1);< 450684#$Ultimate##0 ~n := #in~n; 454224#L25 assume !(~n <= 0); 450693#L26 call #t~ret0 := fact(~n - 1);< 450706#$Ultimate##0 ~n := #in~n; 450729#L25 assume !(~n <= 0); 450719#L26 call #t~ret0 := fact(~n - 1);< 450722#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450655#factFINAL assume true; 450634#factEXIT >#66#return; 450633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450627#factFINAL assume true; 450593#factEXIT >#66#return; 450592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450590#factFINAL assume true; 450513#factEXIT >#68#return; 450437#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 450511#$Ultimate##0 ~n := #in~n; 451339#L25 assume !(~n <= 0); 450609#L26 call #t~ret0 := fact(~n - 1);< 450663#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450701#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451680#factFINAL assume true; 451639#factEXIT >#70#return; 451649#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 451474#$Ultimate##0 ~n := #in~n; 451705#L25 assume !(~n <= 0); 450676#L26 call #t~ret0 := fact(~n - 1);< 450684#$Ultimate##0 ~n := #in~n; 454224#L25 assume !(~n <= 0); 450693#L26 call #t~ret0 := fact(~n - 1);< 450706#$Ultimate##0 ~n := #in~n; 450729#L25 assume !(~n <= 0); 450719#L26 call #t~ret0 := fact(~n - 1);< 450722#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450679#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451701#factFINAL assume true; 451685#factEXIT >#72#return; 451698#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 454110#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 454109#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 454108#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 454107#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 450562#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 450589#$Ultimate##0 ~n := #in~n; 451174#L25 assume !(~n <= 0); 450594#L26 call #t~ret0 := fact(~n - 1);< 450626#$Ultimate##0 ~n := #in~n; 453893#L25 assume !(~n <= 0); 450236#L26 call #t~ret0 := fact(~n - 1);< 450654#$Ultimate##0 ~n := #in~n; 450235#L25 assume !(~n <= 0); 450238#L26 call #t~ret0 := fact(~n - 1);< 450684#$Ultimate##0 ~n := #in~n; 454224#L25 assume !(~n <= 0); 450693#L26 call #t~ret0 := fact(~n - 1);< 450706#$Ultimate##0 ~n := #in~n; 450729#L25 assume !(~n <= 0); 450719#L26 call #t~ret0 := fact(~n - 1);< 450722#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450655#factFINAL assume true; 450634#factEXIT >#66#return; 450633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450627#factFINAL assume true; 450593#factEXIT >#66#return; 450592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450590#factFINAL assume true; 450513#factEXIT >#68#return; 450401#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 450511#$Ultimate##0 ~n := #in~n; 451339#L25 assume !(~n <= 0); 450609#L26 call #t~ret0 := fact(~n - 1);< 450663#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450679#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451701#factFINAL assume true; 451685#factEXIT >#70#return; 450821#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 450872#$Ultimate##0 ~n := #in~n; 450858#L25 assume !(~n <= 0); 450675#L26 call #t~ret0 := fact(~n - 1);< 450797#$Ultimate##0 ~n := #in~n; 450727#L25 assume !(~n <= 0); 450695#L26 call #t~ret0 := fact(~n - 1);< 450720#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450701#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451680#factFINAL assume true; 451639#factEXIT >#72#return; 451654#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 454106#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 454105#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 454104#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 454103#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 450533#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 450589#$Ultimate##0 ~n := #in~n; 451174#L25 assume !(~n <= 0); 450594#L26 call #t~ret0 := fact(~n - 1);< 450626#$Ultimate##0 ~n := #in~n; 453893#L25 assume !(~n <= 0); 450236#L26 call #t~ret0 := fact(~n - 1);< 450654#$Ultimate##0 ~n := #in~n; 450235#L25 assume !(~n <= 0); 450238#L26 call #t~ret0 := fact(~n - 1);< 450684#$Ultimate##0 ~n := #in~n; 454224#L25 assume !(~n <= 0); 450693#L26 call #t~ret0 := fact(~n - 1);< 450706#$Ultimate##0 ~n := #in~n; 450729#L25 assume !(~n <= 0); 450719#L26 call #t~ret0 := fact(~n - 1);< 450722#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450655#factFINAL assume true; 450634#factEXIT >#66#return; 450633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450627#factFINAL assume true; 450593#factEXIT >#66#return; 450592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450590#factFINAL assume true; 450513#factEXIT >#68#return; 450363#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 450511#$Ultimate##0 ~n := #in~n; 451339#L25 assume !(~n <= 0); 450609#L26 call #t~ret0 := fact(~n - 1);< 450663#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450655#factFINAL assume true; 450634#factEXIT >#66#return; 450646#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451576#factFINAL assume true; 451554#factEXIT >#70#return; 450468#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 450872#$Ultimate##0 ~n := #in~n; 450858#L25 assume !(~n <= 0); 450675#L26 call #t~ret0 := fact(~n - 1);< 450797#$Ultimate##0 ~n := #in~n; 450845#L25 assume ~n <= 0;#res := 1; 450808#factFINAL assume true; 450790#factEXIT >#66#return; 450795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451898#factFINAL assume true; 451600#factEXIT >#72#return; 451604#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 454102#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 454100#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 454099#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 454098#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 450531#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 450589#$Ultimate##0 ~n := #in~n; 451174#L25 assume !(~n <= 0); 450594#L26 call #t~ret0 := fact(~n - 1);< 450626#$Ultimate##0 ~n := #in~n; 453893#L25 assume !(~n <= 0); 450236#L26 call #t~ret0 := fact(~n - 1);< 450654#$Ultimate##0 ~n := #in~n; 450235#L25 assume !(~n <= 0); 450238#L26 call #t~ret0 := fact(~n - 1);< 450684#$Ultimate##0 ~n := #in~n; 454224#L25 assume !(~n <= 0); 450693#L26 call #t~ret0 := fact(~n - 1);< 450706#$Ultimate##0 ~n := #in~n; 450729#L25 assume !(~n <= 0); 450719#L26 call #t~ret0 := fact(~n - 1);< 450722#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450655#factFINAL assume true; 450634#factEXIT >#66#return; 450633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450627#factFINAL assume true; 450593#factEXIT >#66#return; 450592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450590#factFINAL assume true; 450513#factEXIT >#68#return; 450430#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 450511#$Ultimate##0 ~n := #in~n; 451339#L25 assume !(~n <= 0); 450609#L26 call #t~ret0 := fact(~n - 1);< 450663#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450728#L25 assume !(~n <= 0); 450612#L26 call #t~ret0 := fact(~n - 1);< 450721#$Ultimate##0 ~n := #in~n; 450726#L25 assume ~n <= 0;#res := 1; 450724#factFINAL assume true; 450718#factEXIT >#66#return; 450717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450707#factFINAL assume true; 450690#factEXIT >#66#return; 450689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450685#factFINAL assume true; 450665#factEXIT >#66#return; 450664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450655#factFINAL assume true; 450634#factEXIT >#66#return; 450633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 450627#factFINAL assume true; 450593#factEXIT >#66#return; 450619#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451166#factFINAL assume true; 451157#factEXIT >#66#return; 451160#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 451592#factFINAL assume true; 450310#factEXIT >#70#return; 450499#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 450873#$Ultimate##0 ~n := #in~n; 450859#L25 assume ~n <= 0;#res := 1; 450278#factFINAL assume true; 451548#factEXIT >#72#return; 451551#L30-3 [2023-02-18 08:57:18,267 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:18,267 INFO L85 PathProgramCache]: Analyzing trace with hash -1390588028, now seen corresponding path program 60 times [2023-02-18 08:57:18,267 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:18,267 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1759902068] [2023-02-18 08:57:18,267 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:18,267 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:18,284 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:18,284 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [809142595] [2023-02-18 08:57:18,284 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:57:18,284 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:18,285 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:18,290 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-18 08:57:18,312 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-18 08:57:18,774 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 19 check-sat command(s) [2023-02-18 08:57:18,774 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:18,779 INFO L263 TraceCheckSpWp]: Trace formula consists of 833 conjuncts, 28 conjunts are in the unsatisfiable core [2023-02-18 08:57:18,784 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:18,868 INFO L134 CoverageAnalysis]: Checked inductivity of 62055 backedges. 33325 proven. 271 refuted. 0 times theorem prover too weak. 28459 trivial. 0 not checked. [2023-02-18 08:57:18,868 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:19,110 INFO L134 CoverageAnalysis]: Checked inductivity of 62055 backedges. 3385 proven. 2851 refuted. 0 times theorem prover too weak. 55819 trivial. 0 not checked. [2023-02-18 08:57:19,110 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:19,110 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1759902068] [2023-02-18 08:57:19,110 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:19,110 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [809142595] [2023-02-18 08:57:19,110 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [809142595] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:19,110 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:19,111 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 25] total 30 [2023-02-18 08:57:19,111 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1302782723] [2023-02-18 08:57:19,111 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:19,111 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:57:19,112 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:19,112 INFO L85 PathProgramCache]: Analyzing trace with hash 1497524117, now seen corresponding path program 60 times [2023-02-18 08:57:19,112 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:19,112 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1976948898] [2023-02-18 08:57:19,112 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:19,112 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:19,123 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:19,123 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [546783943] [2023-02-18 08:57:19,123 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:57:19,123 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:19,123 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:19,125 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-18 08:57:19,126 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-18 08:57:19,578 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 25 check-sat command(s) [2023-02-18 08:57:19,578 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:19,582 INFO L263 TraceCheckSpWp]: Trace formula consists of 890 conjuncts, 29 conjunts are in the unsatisfiable core [2023-02-18 08:57:19,586 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:19,674 INFO L134 CoverageAnalysis]: Checked inductivity of 23935 backedges. 4362 proven. 360 refuted. 0 times theorem prover too weak. 19213 trivial. 0 not checked. [2023-02-18 08:57:19,675 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:19,954 INFO L134 CoverageAnalysis]: Checked inductivity of 23935 backedges. 3982 proven. 434 refuted. 0 times theorem prover too weak. 19519 trivial. 0 not checked. [2023-02-18 08:57:19,954 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:19,954 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1976948898] [2023-02-18 08:57:19,954 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:19,954 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [546783943] [2023-02-18 08:57:19,954 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [546783943] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:19,954 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:19,955 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 28] total 31 [2023-02-18 08:57:19,955 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [769312825] [2023-02-18 08:57:19,955 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:19,955 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:57:19,955 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:57:19,955 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 31 interpolants. [2023-02-18 08:57:19,956 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=134, Invalid=796, Unknown=0, NotChecked=0, Total=930 [2023-02-18 08:57:19,956 INFO L87 Difference]: Start difference. First operand 4077 states and 6549 transitions. cyclomatic complexity: 2504 Second operand has 31 states, 28 states have (on average 2.6785714285714284) internal successors, (75), 31 states have internal predecessors, (75), 18 states have call successors, (28), 2 states have call predecessors, (28), 13 states have return successors, (35), 16 states have call predecessors, (35), 18 states have call successors, (35) [2023-02-18 08:57:20,897 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:57:20,898 INFO L93 Difference]: Finished difference Result 4590 states and 7414 transitions. [2023-02-18 08:57:20,898 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4590 states and 7414 transitions. [2023-02-18 08:57:20,920 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 1280 [2023-02-18 08:57:20,947 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4590 states to 4590 states and 7414 transitions. [2023-02-18 08:57:20,947 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 515 [2023-02-18 08:57:20,947 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 515 [2023-02-18 08:57:20,947 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4590 states and 7414 transitions. [2023-02-18 08:57:20,948 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:57:20,948 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4590 states and 7414 transitions. [2023-02-18 08:57:20,949 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4590 states and 7414 transitions. [2023-02-18 08:57:20,996 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4590 to 4273. [2023-02-18 08:57:20,999 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4273 states, 2588 states have (on average 1.0482998454404946) internal successors, (2713), 2581 states have internal predecessors, (2713), 1418 states have call successors, (1434), 370 states have call predecessors, (1434), 267 states have return successors, (2742), 1321 states have call predecessors, (2742), 1418 states have call successors, (2742) [2023-02-18 08:57:21,012 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4273 states to 4273 states and 6889 transitions. [2023-02-18 08:57:21,012 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4273 states and 6889 transitions. [2023-02-18 08:57:21,013 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2023-02-18 08:57:21,013 INFO L428 stractBuchiCegarLoop]: Abstraction has 4273 states and 6889 transitions. [2023-02-18 08:57:21,013 INFO L335 stractBuchiCegarLoop]: ======== Iteration 73 ============ [2023-02-18 08:57:21,013 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4273 states and 6889 transitions. [2023-02-18 08:57:21,022 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 1068 [2023-02-18 08:57:21,022 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:57:21,022 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:57:21,025 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [158, 158, 104, 104, 104, 104, 54, 18, 17, 12, 12, 12, 12, 12, 12, 12, 11, 11, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-18 08:57:21,025 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [90, 90, 69, 69, 69, 69, 21, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:57:21,025 INFO L748 eck$LassoCheckResult]: Stem: 468578#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 468525#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; 468526#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 468547#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; 468579#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 468744#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 468742#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 468738#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 468739#$Ultimate##0 ~n := #in~n; 468743#L25 assume ~n <= 0;#res := 1; 468741#factFINAL assume true; 468737#factEXIT >#68#return; 468733#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 468734#$Ultimate##0 ~n := #in~n; 468740#L25 assume ~n <= 0;#res := 1; 468736#factFINAL assume true; 468732#factEXIT >#70#return; 468729#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 468730#$Ultimate##0 ~n := #in~n; 468735#L25 assume ~n <= 0;#res := 1; 468731#factFINAL assume true; 468728#factEXIT >#72#return; 468727#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 468725#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 468722#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 468718#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 468716#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 468712#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 468713#$Ultimate##0 ~n := #in~n; 468724#L25 assume !(~n <= 0); 468720#L26 call #t~ret0 := fact(~n - 1);< 468721#$Ultimate##0 ~n := #in~n; 468726#L25 assume ~n <= 0;#res := 1; 468723#factFINAL assume true; 468719#factEXIT >#66#return; 468717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468715#factFINAL assume true; 468711#factEXIT >#74#return; 468707#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 468708#$Ultimate##0 ~n := #in~n; 468714#L25 assume ~n <= 0;#res := 1; 468710#factFINAL assume true; 468706#factEXIT >#76#return; 468686#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 468687#$Ultimate##0 ~n := #in~n; 468703#L25 assume !(~n <= 0); 468699#L26 call #t~ret0 := fact(~n - 1);< 468700#$Ultimate##0 ~n := #in~n; 468704#L25 assume ~n <= 0;#res := 1; 468702#factFINAL assume true; 468698#factEXIT >#66#return; 468696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468693#factFINAL assume true; 468685#factEXIT >#78#return; 468678#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 468672#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 468669#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 468665#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 468658#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 468649#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 468652#$Ultimate##0 ~n := #in~n; 468668#L25 assume !(~n <= 0); 468662#L26 call #t~ret0 := fact(~n - 1);< 468664#$Ultimate##0 ~n := #in~n; 468689#L25 assume !(~n <= 0); 468661#L26 call #t~ret0 := fact(~n - 1);< 468677#$Ultimate##0 ~n := #in~n; 468701#L25 assume ~n <= 0;#res := 1; 468697#factFINAL assume true; 468694#factEXIT >#66#return; 468690#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468682#factFINAL assume true; 468674#factEXIT >#66#return; 468676#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468709#factFINAL assume true; 468705#factEXIT >#74#return; 468651#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 468684#$Ultimate##0 ~n := #in~n; 468695#L25 assume ~n <= 0;#res := 1; 468692#factFINAL assume true; 468683#factEXIT >#76#return; 468680#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 468681#$Ultimate##0 ~n := #in~n; 468691#L25 assume !(~n <= 0); 468663#L26 call #t~ret0 := fact(~n - 1);< 468664#$Ultimate##0 ~n := #in~n; 468689#L25 assume !(~n <= 0); 468661#L26 call #t~ret0 := fact(~n - 1);< 468677#$Ultimate##0 ~n := #in~n; 468701#L25 assume ~n <= 0;#res := 1; 468697#factFINAL assume true; 468694#factEXIT >#66#return; 468690#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468682#factFINAL assume true; 468674#factEXIT >#66#return; 468675#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468688#factFINAL assume true; 468679#factEXIT >#78#return; 468673#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 468670#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 468666#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 468659#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 468655#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 468656#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 468808#$Ultimate##0 ~n := #in~n; 468817#L25 assume !(~n <= 0); 468814#L26 call #t~ret0 := fact(~n - 1);< 468815#$Ultimate##0 ~n := #in~n; 468822#L25 assume !(~n <= 0); 468813#L26 call #t~ret0 := fact(~n - 1);< 468820#$Ultimate##0 ~n := #in~n; 468822#L25 assume !(~n <= 0); 468813#L26 call #t~ret0 := fact(~n - 1);< 468820#$Ultimate##0 ~n := #in~n; 468826#L25 assume ~n <= 0;#res := 1; 468825#factFINAL assume true; 468824#factEXIT >#66#return; 468823#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468821#factFINAL assume true; 468819#factEXIT >#66#return; 468818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468816#factFINAL assume true; 468812#factEXIT >#66#return; 468811#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468810#factFINAL assume true; 468807#factEXIT >#74#return; 468804#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 468805#$Ultimate##0 ~n := #in~n; 468809#L25 assume ~n <= 0;#res := 1; 468806#factFINAL assume true; 468803#factEXIT >#76#return; 468798#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 468802#$Ultimate##0 ~n := #in~n; 468831#L25 assume !(~n <= 0); 468752#L26 call #t~ret0 := fact(~n - 1);< 468755#$Ultimate##0 ~n := #in~n; 468799#L25 assume !(~n <= 0); 468750#L26 call #t~ret0 := fact(~n - 1);< 468837#$Ultimate##0 ~n := #in~n; 468799#L25 assume !(~n <= 0); 468750#L26 call #t~ret0 := fact(~n - 1);< 468837#$Ultimate##0 ~n := #in~n; 468839#L25 assume ~n <= 0;#res := 1; 468838#factFINAL assume true; 468836#factEXIT >#66#return; 468835#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468834#factFINAL assume true; 468833#factEXIT >#66#return; 468832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468830#factFINAL assume true; 468827#factEXIT >#66#return; 468754#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468856#factFINAL assume true; 468848#factEXIT >#78#return; 468849#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 468603#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 470070#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 470069#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 470068#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 470067#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 469965#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 469962#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 469793#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 469797#$Ultimate##0 ~n := #in~n; 469899#L25 assume !(~n <= 0); 469821#L26 call #t~ret0 := fact(~n - 1);< 469829#$Ultimate##0 ~n := #in~n; 470120#L25 assume ~n <= 0;#res := 1; 470631#factFINAL assume true; 470624#factEXIT >#66#return; 470622#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470620#factFINAL assume true; 470619#factEXIT >#68#return; 470618#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 469556#$Ultimate##0 ~n := #in~n; 470623#L25 assume ~n <= 0;#res := 1; 470621#factFINAL assume true; 470617#factEXIT >#70#return; 468484#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 470615#$Ultimate##0 ~n := #in~n; 470614#L25 assume !(~n <= 0); 469811#L26 call #t~ret0 := fact(~n - 1);< 470612#$Ultimate##0 ~n := #in~n; 470120#L25 assume ~n <= 0;#res := 1; 470631#factFINAL assume true; 470624#factEXIT >#66#return; 470629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 472629#factFINAL assume true; 468483#factEXIT >#72#return; 468485#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 472126#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 472125#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 472124#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 472123#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 470653#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 471432#$Ultimate##0 ~n := #in~n; 471431#L25 assume !(~n <= 0); 469812#L26 call #t~ret0 := fact(~n - 1);< 470612#$Ultimate##0 ~n := #in~n; 470120#L25 assume ~n <= 0;#res := 1; 470631#factFINAL assume true; 470624#factEXIT >#66#return; 470630#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 472239#factFINAL assume true; 472238#factEXIT >#68#return; 470640#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 471414#$Ultimate##0 ~n := #in~n; 471413#L25 assume !(~n <= 0); 469820#L26 call #t~ret0 := fact(~n - 1);< 469829#$Ultimate##0 ~n := #in~n; 470120#L25 assume ~n <= 0;#res := 1; 470631#factFINAL assume true; 470624#factEXIT >#66#return; 470627#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 472006#factFINAL assume true; 471605#factEXIT >#70#return; 471614#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 471635#$Ultimate##0 ~n := #in~n; 472002#L25 assume ~n <= 0;#res := 1; 472000#factFINAL assume true; 471630#factEXIT >#72#return; 471634#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 472232#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 472227#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 472226#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 472224#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 471422#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 471596#$Ultimate##0 ~n := #in~n; 472121#L25 assume !(~n <= 0); 468512#L26 call #t~ret0 := fact(~n - 1);< 471407#$Ultimate##0 ~n := #in~n; 470530#L25 assume !(~n <= 0); 468519#L26 call #t~ret0 := fact(~n - 1);< 469897#$Ultimate##0 ~n := #in~n; 469944#L25 assume ~n <= 0;#res := 1; 469942#factFINAL assume true; 469895#factEXIT >#66#return; 469878#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469836#factFINAL assume true; 469806#factEXIT >#66#return; 469825#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 472054#factFINAL assume true; 471588#factEXIT >#74#return; 470647#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 471414#$Ultimate##0 ~n := #in~n; 471413#L25 assume !(~n <= 0); 469820#L26 call #t~ret0 := fact(~n - 1);< 469829#$Ultimate##0 ~n := #in~n; 470120#L25 assume ~n <= 0;#res := 1; 470631#factFINAL assume true; 470624#factEXIT >#66#return; 470627#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 472006#factFINAL assume true; 471605#factEXIT >#76#return; 471591#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 471619#$Ultimate##0 ~n := #in~n; 472011#L25 assume !(~n <= 0); 470625#L26 call #t~ret0 := fact(~n - 1);< 470661#$Ultimate##0 ~n := #in~n; 470120#L25 assume ~n <= 0;#res := 1; 470631#factFINAL assume true; 470624#factEXIT >#66#return; 470627#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 472006#factFINAL assume true; 471605#factEXIT >#78#return; 471615#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 471643#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 471638#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 471637#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 471636#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 470854#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 470910#$Ultimate##0 ~n := #in~n; 472364#L25 assume !(~n <= 0); 470922#L26 call #t~ret0 := fact(~n - 1);< 472356#$Ultimate##0 ~n := #in~n; 472353#L25 assume !(~n <= 0); 470919#L26 call #t~ret0 := fact(~n - 1);< 472304#$Ultimate##0 ~n := #in~n; 472353#L25 assume !(~n <= 0); 470919#L26 call #t~ret0 := fact(~n - 1);< 472304#$Ultimate##0 ~n := #in~n; 472288#L25 assume ~n <= 0;#res := 1; 472351#factFINAL assume true; 472303#factEXIT >#66#return; 472302#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 472175#factFINAL assume true; 472162#factEXIT >#66#return; 472161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 472156#factFINAL assume true; 472140#factEXIT >#66#return; 472139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 472133#factFINAL assume true; 470882#factEXIT >#74#return; 470887#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 470901#$Ultimate##0 ~n := #in~n; 472221#L25 assume !(~n <= 0); 472142#L26 call #t~ret0 := fact(~n - 1);< 472217#$Ultimate##0 ~n := #in~n; 472253#L25 assume ~n <= 0;#res := 1; 472222#factFINAL assume true; 472213#factEXIT >#66#return; 472212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 472203#factFINAL assume true; 472196#factEXIT >#76#return; 470856#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 470872#$Ultimate##0 ~n := #in~n; 472247#L25 assume !(~n <= 0); 472146#L26 call #t~ret0 := fact(~n - 1);< 472246#$Ultimate##0 ~n := #in~n; 472410#L25 assume !(~n <= 0); 472144#L26 call #t~ret0 := fact(~n - 1);< 472166#$Ultimate##0 ~n := #in~n; 472288#L25 assume ~n <= 0;#res := 1; 472351#factFINAL assume true; 472303#factEXIT >#66#return; 472302#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 472175#factFINAL assume true; 472162#factEXIT >#66#return; 472164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 472562#factFINAL assume true; 472559#factEXIT >#78#return; 472560#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 472704#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 468596#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 468595#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 468546#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 468539#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 468540#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 472115#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 469794#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 469797#$Ultimate##0 ~n := #in~n; 469899#L25 assume !(~n <= 0); 469821#L26 call #t~ret0 := fact(~n - 1);< 469829#$Ultimate##0 ~n := #in~n; 470073#L25 assume !(~n <= 0); 469819#L26 call #t~ret0 := fact(~n - 1);< 469960#$Ultimate##0 ~n := #in~n; 469944#L25 assume ~n <= 0;#res := 1; 469942#factFINAL assume true; 469895#factEXIT >#66#return; 469878#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469836#factFINAL assume true; 469806#factEXIT >#66#return; 469804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469801#factFINAL assume true; 469789#factEXIT >#68#return; 469551#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 469554#$Ultimate##0 ~n := #in~n; 469788#L25 assume ~n <= 0;#res := 1; 469787#factFINAL assume true; 469549#factEXIT >#70#return; 469541#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 469547#$Ultimate##0 ~n := #in~n; 469773#L25 assume !(~n <= 0); 469161#L26 call #t~ret0 := fact(~n - 1);< 469256#$Ultimate##0 ~n := #in~n; 469281#L25 assume !(~n <= 0); 469270#L26 call #t~ret0 := fact(~n - 1);< 469271#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469183#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469766#factFINAL assume true; 469539#factEXIT >#72#return; 469544#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 471381#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 471380#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 471379#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 471378#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 469516#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 469523#$Ultimate##0 ~n := #in~n; 469532#L25 assume !(~n <= 0); 469159#L26 call #t~ret0 := fact(~n - 1);< 469256#$Ultimate##0 ~n := #in~n; 469281#L25 assume !(~n <= 0); 469270#L26 call #t~ret0 := fact(~n - 1);< 469271#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469182#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469526#factFINAL assume true; 469514#factEXIT >#68#return; 469435#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 469444#$Ultimate##0 ~n := #in~n; 469491#L25 assume !(~n <= 0); 469149#L26 call #t~ret0 := fact(~n - 1);< 469405#$Ultimate##0 ~n := #in~n; 469559#L25 assume ~n <= 0;#res := 1; 469475#factFINAL assume true; 469464#factEXIT >#66#return; 469458#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469445#factFINAL assume true; 469417#factEXIT >#70#return; 469426#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 469446#$Ultimate##0 ~n := #in~n; 469512#L25 assume !(~n <= 0); 469465#L26 call #t~ret0 := fact(~n - 1);< 469471#$Ultimate##0 ~n := #in~n; 469559#L25 assume ~n <= 0;#res := 1; 469475#factFINAL assume true; 469464#factEXIT >#66#return; 469458#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469445#factFINAL assume true; 469417#factEXIT >#72#return; 469442#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 471377#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 471376#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 471375#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 471374#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 469520#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 469523#$Ultimate##0 ~n := #in~n; 469532#L25 assume !(~n <= 0); 469159#L26 call #t~ret0 := fact(~n - 1);< 469256#$Ultimate##0 ~n := #in~n; 469281#L25 assume !(~n <= 0); 469270#L26 call #t~ret0 := fact(~n - 1);< 469271#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469182#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469526#factFINAL assume true; 469514#factEXIT >#68#return; 469257#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 469513#$Ultimate##0 ~n := #in~n; 469833#L25 assume !(~n <= 0); 469173#L26 call #t~ret0 := fact(~n - 1);< 469184#$Ultimate##0 ~n := #in~n; 469289#L25 assume !(~n <= 0); 469155#L26 call #t~ret0 := fact(~n - 1);< 469273#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469180#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469761#factFINAL assume true; 469482#factEXIT >#70#return; 469488#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 469507#$Ultimate##0 ~n := #in~n; 469765#L25 assume ~n <= 0;#res := 1; 469536#factFINAL assume true; 469503#factEXIT >#72#return; 469504#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 471369#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 471368#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 471367#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 471366#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 469495#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 471258#$Ultimate##0 ~n := #in~n; 471394#L25 assume !(~n <= 0); 468491#L26 call #t~ret0 := fact(~n - 1);< 471004#$Ultimate##0 ~n := #in~n; 471677#L25 assume !(~n <= 0); 468490#L26 call #t~ret0 := fact(~n - 1);< 471030#$Ultimate##0 ~n := #in~n; 471677#L25 assume !(~n <= 0); 468490#L26 call #t~ret0 := fact(~n - 1);< 471030#$Ultimate##0 ~n := #in~n; 471399#L25 assume ~n <= 0;#res := 1; 471671#factFINAL assume true; 471027#factEXIT >#66#return; 471026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 471006#factFINAL assume true; 470995#factEXIT >#66#return; 471000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 471277#factFINAL assume true; 471259#factEXIT >#66#return; 471261#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 471364#factFINAL assume true; 471289#factEXIT >#74#return; 471246#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 471249#$Ultimate##0 ~n := #in~n; 471280#L25 assume !(~n <= 0); 470998#L26 call #t~ret0 := fact(~n - 1);< 471034#$Ultimate##0 ~n := #in~n; 471033#L25 assume !(~n <= 0); 470997#L26 call #t~ret0 := fact(~n - 1);< 471032#$Ultimate##0 ~n := #in~n; 471689#L25 assume !(~n <= 0); 471029#L26 call #t~ret0 := fact(~n - 1);< 471031#$Ultimate##0 ~n := #in~n; 471399#L25 assume ~n <= 0;#res := 1; 471671#factFINAL assume true; 471027#factEXIT >#66#return; 471026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 471006#factFINAL assume true; 470995#factEXIT >#66#return; 471000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 471277#factFINAL assume true; 471259#factEXIT >#66#return; 471261#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 471364#factFINAL assume true; 471289#factEXIT >#76#return; 471067#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 471251#$Ultimate##0 ~n := #in~n; 472154#L25 assume !(~n <= 0); 470976#L26 call #t~ret0 := fact(~n - 1);< 470986#$Ultimate##0 ~n := #in~n; 470992#L25 assume ~n <= 0;#res := 1; 470988#factFINAL assume true; 470975#factEXIT >#66#return; 470984#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 472098#factFINAL assume true; 471066#factEXIT >#78#return; 471068#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 472682#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 472391#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 472390#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 472389#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 472388#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 472387#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 471327#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 469755#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 469758#$Ultimate##0 ~n := #in~n; 469756#L25 assume !(~n <= 0); 469231#L26 call #t~ret0 := fact(~n - 1);< 469753#$Ultimate##0 ~n := #in~n; 469751#L25 assume !(~n <= 0); 469210#L26 call #t~ret0 := fact(~n - 1);< 469232#$Ultimate##0 ~n := #in~n; 469312#L25 assume !(~n <= 0); 469236#L26 call #t~ret0 := fact(~n - 1);< 469286#$Ultimate##0 ~n := #in~n; 469284#L25 assume !(~n <= 0); 469158#L26 call #t~ret0 := fact(~n - 1);< 469273#$Ultimate##0 ~n := #in~n; 469281#L25 assume !(~n <= 0); 469270#L26 call #t~ret0 := fact(~n - 1);< 469271#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469226#factFINAL assume true; 469206#factEXIT >#66#return; 469217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469658#factFINAL assume true; 469636#factEXIT >#66#return; 469641#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 471005#factFINAL assume true; 470424#factEXIT >#68#return; 470328#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 470335#$Ultimate##0 ~n := #in~n; 470378#L25 assume ~n <= 0;#res := 1; 470377#factFINAL assume true; 470324#factEXIT >#70#return; 470306#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 470323#$Ultimate##0 ~n := #in~n; 470927#L25 assume !(~n <= 0); 469188#L26 call #t~ret0 := fact(~n - 1);< 469221#$Ultimate##0 ~n := #in~n; 469665#L25 assume !(~n <= 0); 469187#L26 call #t~ret0 := fact(~n - 1);< 469275#$Ultimate##0 ~n := #in~n; 469268#L25 assume !(~n <= 0); 469186#L26 call #t~ret0 := fact(~n - 1);< 469245#$Ultimate##0 ~n := #in~n; 469288#L25 assume !(~n <= 0); 469164#L26 call #t~ret0 := fact(~n - 1);< 469222#$Ultimate##0 ~n := #in~n; 469283#L25 assume !(~n <= 0); 469170#L26 call #t~ret0 := fact(~n - 1);< 469272#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469226#factFINAL assume true; 469206#factEXIT >#66#return; 469217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469658#factFINAL assume true; 469636#factEXIT >#66#return; 469204#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470912#factFINAL assume true; 470303#factEXIT >#72#return; 470316#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 470694#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 470693#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 470692#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 470691#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 470024#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 470072#$Ultimate##0 ~n := #in~n; 470078#L25 assume !(~n <= 0); 469318#L26 call #t~ret0 := fact(~n - 1);< 469664#$Ultimate##0 ~n := #in~n; 470121#L25 assume !(~n <= 0); 469208#L26 call #t~ret0 := fact(~n - 1);< 469315#$Ultimate##0 ~n := #in~n; 469311#L25 assume !(~n <= 0); 469237#L26 call #t~ret0 := fact(~n - 1);< 469244#$Ultimate##0 ~n := #in~n; 469752#L25 assume !(~n <= 0); 469153#L26 call #t~ret0 := fact(~n - 1);< 469256#$Ultimate##0 ~n := #in~n; 469281#L25 assume !(~n <= 0); 469270#L26 call #t~ret0 := fact(~n - 1);< 469271#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469226#factFINAL assume true; 469206#factEXIT >#66#return; 469217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469658#factFINAL assume true; 469636#factEXIT >#66#return; 469640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470071#factFINAL assume true; 469966#factEXIT >#68#return; 468593#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 468594#$Ultimate##0 ~n := #in~n; 469902#L25 assume !(~n <= 0); 469466#L26 call #t~ret0 := fact(~n - 1);< 469471#$Ultimate##0 ~n := #in~n; 469559#L25 assume ~n <= 0;#res := 1; 469475#factFINAL assume true; 469464#factEXIT >#66#return; 469468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470122#factFINAL assume true; 470096#factEXIT >#70#return; 469302#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 469317#$Ultimate##0 ~n := #in~n; 469313#L25 assume !(~n <= 0); 469207#L26 call #t~ret0 := fact(~n - 1);< 469297#$Ultimate##0 ~n := #in~n; 469287#L25 assume !(~n <= 0); 469138#L26 call #t~ret0 := fact(~n - 1);< 469184#$Ultimate##0 ~n := #in~n; 469289#L25 assume !(~n <= 0); 469155#L26 call #t~ret0 := fact(~n - 1);< 469273#$Ultimate##0 ~n := #in~n; 469281#L25 assume !(~n <= 0); 469270#L26 call #t~ret0 := fact(~n - 1);< 469271#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469226#factFINAL assume true; 469206#factEXIT >#66#return; 469214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469910#factFINAL assume true; 469879#factEXIT >#72#return; 469886#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 472539#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 472538#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 472537#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 472536#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 470019#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 470072#$Ultimate##0 ~n := #in~n; 470078#L25 assume !(~n <= 0); 469318#L26 call #t~ret0 := fact(~n - 1);< 469664#$Ultimate##0 ~n := #in~n; 470121#L25 assume !(~n <= 0); 469208#L26 call #t~ret0 := fact(~n - 1);< 469315#$Ultimate##0 ~n := #in~n; 469311#L25 assume !(~n <= 0); 469237#L26 call #t~ret0 := fact(~n - 1);< 469244#$Ultimate##0 ~n := #in~n; 469752#L25 assume !(~n <= 0); 469153#L26 call #t~ret0 := fact(~n - 1);< 469256#$Ultimate##0 ~n := #in~n; 469281#L25 assume !(~n <= 0); 469270#L26 call #t~ret0 := fact(~n - 1);< 469271#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469226#factFINAL assume true; 469206#factEXIT >#66#return; 469217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469658#factFINAL assume true; 469636#factEXIT >#66#return; 469640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470071#factFINAL assume true; 469966#factEXIT >#68#return; 468946#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 469125#$Ultimate##0 ~n := #in~n; 469723#L25 assume !(~n <= 0); 469140#L26 call #t~ret0 := fact(~n - 1);< 469222#$Ultimate##0 ~n := #in~n; 469283#L25 assume !(~n <= 0); 469170#L26 call #t~ret0 := fact(~n - 1);< 469272#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469403#factFINAL assume true; 469339#factEXIT >#70#return; 469396#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 469747#$Ultimate##0 ~n := #in~n; 469746#L25 assume !(~n <= 0); 469235#L26 call #t~ret0 := fact(~n - 1);< 469244#$Ultimate##0 ~n := #in~n; 469752#L25 assume !(~n <= 0); 469153#L26 call #t~ret0 := fact(~n - 1);< 469256#$Ultimate##0 ~n := #in~n; 469281#L25 assume !(~n <= 0); 469270#L26 call #t~ret0 := fact(~n - 1);< 469271#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469240#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470165#factFINAL assume true; 470146#factEXIT >#72#return; 470147#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 472531#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 472530#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 472529#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 472528#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 470039#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 470072#$Ultimate##0 ~n := #in~n; 470078#L25 assume !(~n <= 0); 469318#L26 call #t~ret0 := fact(~n - 1);< 469664#$Ultimate##0 ~n := #in~n; 470121#L25 assume !(~n <= 0); 469208#L26 call #t~ret0 := fact(~n - 1);< 469315#$Ultimate##0 ~n := #in~n; 469311#L25 assume !(~n <= 0); 469237#L26 call #t~ret0 := fact(~n - 1);< 469244#$Ultimate##0 ~n := #in~n; 469752#L25 assume !(~n <= 0); 469153#L26 call #t~ret0 := fact(~n - 1);< 469256#$Ultimate##0 ~n := #in~n; 469281#L25 assume !(~n <= 0); 469270#L26 call #t~ret0 := fact(~n - 1);< 469271#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469226#factFINAL assume true; 469206#factEXIT >#66#return; 469217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469658#factFINAL assume true; 469636#factEXIT >#66#return; 469640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470071#factFINAL assume true; 469966#factEXIT >#68#return; 468903#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 469125#$Ultimate##0 ~n := #in~n; 469723#L25 assume !(~n <= 0); 469140#L26 call #t~ret0 := fact(~n - 1);< 469222#$Ultimate##0 ~n := #in~n; 469283#L25 assume !(~n <= 0); 469170#L26 call #t~ret0 := fact(~n - 1);< 469272#$Ultimate##0 ~n := #in~n; 469283#L25 assume !(~n <= 0); 469170#L26 call #t~ret0 := fact(~n - 1);< 469272#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469240#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470165#factFINAL assume true; 470146#factEXIT >#70#return; 469347#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 469404#$Ultimate##0 ~n := #in~n; 469408#L25 assume !(~n <= 0); 469146#L26 call #t~ret0 := fact(~n - 1);< 469405#$Ultimate##0 ~n := #in~n; 469289#L25 assume !(~n <= 0); 469155#L26 call #t~ret0 := fact(~n - 1);< 469273#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469403#factFINAL assume true; 469339#factEXIT >#72#return; 469386#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 472523#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 472522#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 472521#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 472520#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 470040#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 470072#$Ultimate##0 ~n := #in~n; 470078#L25 assume !(~n <= 0); 469318#L26 call #t~ret0 := fact(~n - 1);< 469664#$Ultimate##0 ~n := #in~n; 470121#L25 assume !(~n <= 0); 469208#L26 call #t~ret0 := fact(~n - 1);< 469315#$Ultimate##0 ~n := #in~n; 469311#L25 assume !(~n <= 0); 469237#L26 call #t~ret0 := fact(~n - 1);< 469244#$Ultimate##0 ~n := #in~n; 469752#L25 assume !(~n <= 0); 469153#L26 call #t~ret0 := fact(~n - 1);< 469256#$Ultimate##0 ~n := #in~n; 469281#L25 assume !(~n <= 0); 469270#L26 call #t~ret0 := fact(~n - 1);< 469271#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469226#factFINAL assume true; 469206#factEXIT >#66#return; 469217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469658#factFINAL assume true; 469636#factEXIT >#66#return; 469640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470071#factFINAL assume true; 469966#factEXIT >#68#return; 468970#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 469125#$Ultimate##0 ~n := #in~n; 469723#L25 assume !(~n <= 0); 469140#L26 call #t~ret0 := fact(~n - 1);< 469222#$Ultimate##0 ~n := #in~n; 469283#L25 assume !(~n <= 0); 469170#L26 call #t~ret0 := fact(~n - 1);< 469272#$Ultimate##0 ~n := #in~n; 469283#L25 assume !(~n <= 0); 469170#L26 call #t~ret0 := fact(~n - 1);< 469272#$Ultimate##0 ~n := #in~n; 469283#L25 assume !(~n <= 0); 469170#L26 call #t~ret0 := fact(~n - 1);< 469272#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469226#factFINAL assume true; 469206#factEXIT >#66#return; 469214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469910#factFINAL assume true; 469879#factEXIT >#70#return; 469356#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 469404#$Ultimate##0 ~n := #in~n; 469408#L25 assume !(~n <= 0); 469146#L26 call #t~ret0 := fact(~n - 1);< 469405#$Ultimate##0 ~n := #in~n; 469559#L25 assume ~n <= 0;#res := 1; 469475#factFINAL assume true; 469464#factEXIT >#66#return; 469468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470122#factFINAL assume true; 470096#factEXIT >#72#return; 470099#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 470423#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 470422#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 470414#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 470412#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 469992#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 470072#$Ultimate##0 ~n := #in~n; 470078#L25 assume !(~n <= 0); 469318#L26 call #t~ret0 := fact(~n - 1);< 469664#$Ultimate##0 ~n := #in~n; 470121#L25 assume !(~n <= 0); 469208#L26 call #t~ret0 := fact(~n - 1);< 469315#$Ultimate##0 ~n := #in~n; 469311#L25 assume !(~n <= 0); 469237#L26 call #t~ret0 := fact(~n - 1);< 469244#$Ultimate##0 ~n := #in~n; 469752#L25 assume !(~n <= 0); 469153#L26 call #t~ret0 := fact(~n - 1);< 469256#$Ultimate##0 ~n := #in~n; 469281#L25 assume !(~n <= 0); 469270#L26 call #t~ret0 := fact(~n - 1);< 469271#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469226#factFINAL assume true; 469206#factEXIT >#66#return; 469217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469658#factFINAL assume true; 469636#factEXIT >#66#return; 469640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470071#factFINAL assume true; 469966#factEXIT >#68#return; 469011#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 469125#$Ultimate##0 ~n := #in~n; 469723#L25 assume !(~n <= 0); 469140#L26 call #t~ret0 := fact(~n - 1);< 469222#$Ultimate##0 ~n := #in~n; 469283#L25 assume !(~n <= 0); 469170#L26 call #t~ret0 := fact(~n - 1);< 469272#$Ultimate##0 ~n := #in~n; 469283#L25 assume !(~n <= 0); 469170#L26 call #t~ret0 := fact(~n - 1);< 469272#$Ultimate##0 ~n := #in~n; 469283#L25 assume !(~n <= 0); 469170#L26 call #t~ret0 := fact(~n - 1);< 469272#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469226#factFINAL assume true; 469206#factEXIT >#66#return; 469214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469910#factFINAL assume true; 469879#factEXIT >#70#return; 469366#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 469409#$Ultimate##0 ~n := #in~n; 469406#L25 assume ~n <= 0;#res := 1; 469407#factFINAL assume true; 469852#factEXIT >#72#return; 468541#L30-3 [2023-02-18 08:57:21,026 INFO L750 eck$LassoCheckResult]: Loop: 468541#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 468542#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 468555#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 468847#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 472412#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 469842#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 471038#$Ultimate##0 ~n := #in~n; 471273#L25 assume !(~n <= 0); 468501#L26 call #t~ret0 := fact(~n - 1);< 471079#$Ultimate##0 ~n := #in~n; 471086#L25 assume !(~n <= 0); 468500#L26 call #t~ret0 := fact(~n - 1);< 471084#$Ultimate##0 ~n := #in~n; 471069#L25 assume !(~n <= 0); 468496#L26 call #t~ret0 := fact(~n - 1);< 471059#$Ultimate##0 ~n := #in~n; 471057#L25 assume !(~n <= 0); 468495#L26 call #t~ret0 := fact(~n - 1);< 471007#$Ultimate##0 ~n := #in~n; 471677#L25 assume !(~n <= 0); 468490#L26 call #t~ret0 := fact(~n - 1);< 471030#$Ultimate##0 ~n := #in~n; 471399#L25 assume ~n <= 0;#res := 1; 471671#factFINAL assume true; 471027#factEXIT >#66#return; 471026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 471006#factFINAL assume true; 470995#factEXIT >#66#return; 471000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 471277#factFINAL assume true; 471259#factEXIT >#66#return; 471260#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 472110#factFINAL assume true; 471264#factEXIT >#66#return; 471266#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 471080#factFINAL assume true; 471075#factEXIT >#66#return; 471073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 471051#factFINAL assume true; 470947#factEXIT >#74#return; 470964#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 471253#$Ultimate##0 ~n := #in~n; 471275#L25 assume !(~n <= 0); 471265#L26 call #t~ret0 := fact(~n - 1);< 468532#$Ultimate##0 ~n := #in~n; 471284#L25 assume !(~n <= 0); 471028#L26 call #t~ret0 := fact(~n - 1);< 471398#$Ultimate##0 ~n := #in~n; 471396#L25 assume !(~n <= 0); 470999#L26 call #t~ret0 := fact(~n - 1);< 471032#$Ultimate##0 ~n := #in~n; 471689#L25 assume !(~n <= 0); 471029#L26 call #t~ret0 := fact(~n - 1);< 471031#$Ultimate##0 ~n := #in~n; 471399#L25 assume ~n <= 0;#res := 1; 471671#factFINAL assume true; 471027#factEXIT >#66#return; 471026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 471006#factFINAL assume true; 470995#factEXIT >#66#return; 471000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 471277#factFINAL assume true; 471259#factEXIT >#66#return; 471260#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 472110#factFINAL assume true; 471264#factEXIT >#66#return; 471267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 472447#factFINAL assume true; 472420#factEXIT >#76#return; 470403#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 470408#$Ultimate##0 ~n := #in~n; 470987#L25 assume !(~n <= 0); 470982#L26 call #t~ret0 := fact(~n - 1);< 470986#$Ultimate##0 ~n := #in~n; 470992#L25 assume ~n <= 0;#res := 1; 470988#factFINAL assume true; 470975#factEXIT >#66#return; 470974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470973#factFINAL assume true; 470401#factEXIT >#78#return; 468482#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 468527#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 468548#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 472681#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 472680#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 472679#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 472677#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 472396#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 469659#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 470221#$Ultimate##0 ~n := #in~n; 470216#L25 assume !(~n <= 0); 469319#L26 call #t~ret0 := fact(~n - 1);< 469664#$Ultimate##0 ~n := #in~n; 470121#L25 assume !(~n <= 0); 469208#L26 call #t~ret0 := fact(~n - 1);< 469315#$Ultimate##0 ~n := #in~n; 469311#L25 assume !(~n <= 0); 469237#L26 call #t~ret0 := fact(~n - 1);< 469244#$Ultimate##0 ~n := #in~n; 469752#L25 assume !(~n <= 0); 469153#L26 call #t~ret0 := fact(~n - 1);< 469256#$Ultimate##0 ~n := #in~n; 469281#L25 assume !(~n <= 0); 469270#L26 call #t~ret0 := fact(~n - 1);< 469271#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469226#factFINAL assume true; 469206#factEXIT >#66#return; 469217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469658#factFINAL assume true; 469636#factEXIT >#66#return; 469641#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 471005#factFINAL assume true; 470424#factEXIT >#68#return; 470330#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 470335#$Ultimate##0 ~n := #in~n; 470378#L25 assume ~n <= 0;#res := 1; 470377#factFINAL assume true; 470324#factEXIT >#70#return; 470313#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 470323#$Ultimate##0 ~n := #in~n; 470927#L25 assume !(~n <= 0); 469188#L26 call #t~ret0 := fact(~n - 1);< 469221#$Ultimate##0 ~n := #in~n; 469665#L25 assume !(~n <= 0); 469187#L26 call #t~ret0 := fact(~n - 1);< 469275#$Ultimate##0 ~n := #in~n; 469268#L25 assume !(~n <= 0); 469186#L26 call #t~ret0 := fact(~n - 1);< 469245#$Ultimate##0 ~n := #in~n; 469288#L25 assume !(~n <= 0); 469164#L26 call #t~ret0 := fact(~n - 1);< 469222#$Ultimate##0 ~n := #in~n; 469283#L25 assume !(~n <= 0); 469170#L26 call #t~ret0 := fact(~n - 1);< 469272#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469226#factFINAL assume true; 469206#factEXIT >#66#return; 469217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469658#factFINAL assume true; 469636#factEXIT >#66#return; 469204#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470912#factFINAL assume true; 470303#factEXIT >#72#return; 470322#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 472395#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 472394#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 472393#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 472392#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 469979#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 470072#$Ultimate##0 ~n := #in~n; 470078#L25 assume !(~n <= 0); 469318#L26 call #t~ret0 := fact(~n - 1);< 469664#$Ultimate##0 ~n := #in~n; 470121#L25 assume !(~n <= 0); 469208#L26 call #t~ret0 := fact(~n - 1);< 469315#$Ultimate##0 ~n := #in~n; 469311#L25 assume !(~n <= 0); 469237#L26 call #t~ret0 := fact(~n - 1);< 469244#$Ultimate##0 ~n := #in~n; 469752#L25 assume !(~n <= 0); 469153#L26 call #t~ret0 := fact(~n - 1);< 469256#$Ultimate##0 ~n := #in~n; 469281#L25 assume !(~n <= 0); 469270#L26 call #t~ret0 := fact(~n - 1);< 469271#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469226#factFINAL assume true; 469206#factEXIT >#66#return; 469217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469658#factFINAL assume true; 469636#factEXIT >#66#return; 469640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470071#factFINAL assume true; 469966#factEXIT >#68#return; 469857#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 468594#$Ultimate##0 ~n := #in~n; 469902#L25 assume !(~n <= 0); 469466#L26 call #t~ret0 := fact(~n - 1);< 469471#$Ultimate##0 ~n := #in~n; 469559#L25 assume ~n <= 0;#res := 1; 469475#factFINAL assume true; 469464#factEXIT >#66#return; 469468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470122#factFINAL assume true; 470096#factEXIT >#70#return; 469323#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 469330#$Ultimate##0 ~n := #in~n; 469328#L25 assume !(~n <= 0); 469212#L26 call #t~ret0 := fact(~n - 1);< 469315#$Ultimate##0 ~n := #in~n; 469311#L25 assume !(~n <= 0); 469237#L26 call #t~ret0 := fact(~n - 1);< 469244#$Ultimate##0 ~n := #in~n; 469752#L25 assume !(~n <= 0); 469153#L26 call #t~ret0 := fact(~n - 1);< 469256#$Ultimate##0 ~n := #in~n; 469281#L25 assume !(~n <= 0); 469270#L26 call #t~ret0 := fact(~n - 1);< 469271#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469226#factFINAL assume true; 469206#factEXIT >#66#return; 469214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469910#factFINAL assume true; 469879#factEXIT >#72#return; 469886#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 472539#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 472538#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 472537#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 472536#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 470019#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 470072#$Ultimate##0 ~n := #in~n; 470078#L25 assume !(~n <= 0); 469318#L26 call #t~ret0 := fact(~n - 1);< 469664#$Ultimate##0 ~n := #in~n; 470121#L25 assume !(~n <= 0); 469208#L26 call #t~ret0 := fact(~n - 1);< 469315#$Ultimate##0 ~n := #in~n; 469311#L25 assume !(~n <= 0); 469237#L26 call #t~ret0 := fact(~n - 1);< 469244#$Ultimate##0 ~n := #in~n; 469752#L25 assume !(~n <= 0); 469153#L26 call #t~ret0 := fact(~n - 1);< 469256#$Ultimate##0 ~n := #in~n; 469281#L25 assume !(~n <= 0); 469270#L26 call #t~ret0 := fact(~n - 1);< 469271#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469226#factFINAL assume true; 469206#factEXIT >#66#return; 469217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469658#factFINAL assume true; 469636#factEXIT >#66#return; 469640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470071#factFINAL assume true; 469966#factEXIT >#68#return; 468946#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 469125#$Ultimate##0 ~n := #in~n; 469723#L25 assume !(~n <= 0); 469140#L26 call #t~ret0 := fact(~n - 1);< 469222#$Ultimate##0 ~n := #in~n; 469283#L25 assume !(~n <= 0); 469170#L26 call #t~ret0 := fact(~n - 1);< 469272#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469403#factFINAL assume true; 469339#factEXIT >#70#return; 469396#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 469747#$Ultimate##0 ~n := #in~n; 469746#L25 assume !(~n <= 0); 469235#L26 call #t~ret0 := fact(~n - 1);< 469244#$Ultimate##0 ~n := #in~n; 469752#L25 assume !(~n <= 0); 469153#L26 call #t~ret0 := fact(~n - 1);< 469256#$Ultimate##0 ~n := #in~n; 469281#L25 assume !(~n <= 0); 469270#L26 call #t~ret0 := fact(~n - 1);< 469271#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469240#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470165#factFINAL assume true; 470146#factEXIT >#72#return; 470147#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 472531#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 472530#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 472529#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 472528#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 470039#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 470072#$Ultimate##0 ~n := #in~n; 470078#L25 assume !(~n <= 0); 469318#L26 call #t~ret0 := fact(~n - 1);< 469664#$Ultimate##0 ~n := #in~n; 470121#L25 assume !(~n <= 0); 469208#L26 call #t~ret0 := fact(~n - 1);< 469315#$Ultimate##0 ~n := #in~n; 469311#L25 assume !(~n <= 0); 469237#L26 call #t~ret0 := fact(~n - 1);< 469244#$Ultimate##0 ~n := #in~n; 469752#L25 assume !(~n <= 0); 469153#L26 call #t~ret0 := fact(~n - 1);< 469256#$Ultimate##0 ~n := #in~n; 469281#L25 assume !(~n <= 0); 469270#L26 call #t~ret0 := fact(~n - 1);< 469271#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469226#factFINAL assume true; 469206#factEXIT >#66#return; 469217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469658#factFINAL assume true; 469636#factEXIT >#66#return; 469640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470071#factFINAL assume true; 469966#factEXIT >#68#return; 468903#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 469125#$Ultimate##0 ~n := #in~n; 469723#L25 assume !(~n <= 0); 469140#L26 call #t~ret0 := fact(~n - 1);< 469222#$Ultimate##0 ~n := #in~n; 469283#L25 assume !(~n <= 0); 469170#L26 call #t~ret0 := fact(~n - 1);< 469272#$Ultimate##0 ~n := #in~n; 469283#L25 assume !(~n <= 0); 469170#L26 call #t~ret0 := fact(~n - 1);< 469272#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469240#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470165#factFINAL assume true; 470146#factEXIT >#70#return; 469347#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 469404#$Ultimate##0 ~n := #in~n; 469408#L25 assume !(~n <= 0); 469146#L26 call #t~ret0 := fact(~n - 1);< 469405#$Ultimate##0 ~n := #in~n; 469289#L25 assume !(~n <= 0); 469155#L26 call #t~ret0 := fact(~n - 1);< 469273#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469403#factFINAL assume true; 469339#factEXIT >#72#return; 469386#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 472523#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 472522#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 472521#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 472520#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 470040#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 470072#$Ultimate##0 ~n := #in~n; 470078#L25 assume !(~n <= 0); 469318#L26 call #t~ret0 := fact(~n - 1);< 469664#$Ultimate##0 ~n := #in~n; 470121#L25 assume !(~n <= 0); 469208#L26 call #t~ret0 := fact(~n - 1);< 469315#$Ultimate##0 ~n := #in~n; 469311#L25 assume !(~n <= 0); 469237#L26 call #t~ret0 := fact(~n - 1);< 469244#$Ultimate##0 ~n := #in~n; 469752#L25 assume !(~n <= 0); 469153#L26 call #t~ret0 := fact(~n - 1);< 469256#$Ultimate##0 ~n := #in~n; 469281#L25 assume !(~n <= 0); 469270#L26 call #t~ret0 := fact(~n - 1);< 469271#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469226#factFINAL assume true; 469206#factEXIT >#66#return; 469217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469658#factFINAL assume true; 469636#factEXIT >#66#return; 469640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470071#factFINAL assume true; 469966#factEXIT >#68#return; 468970#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 469125#$Ultimate##0 ~n := #in~n; 469723#L25 assume !(~n <= 0); 469140#L26 call #t~ret0 := fact(~n - 1);< 469222#$Ultimate##0 ~n := #in~n; 469283#L25 assume !(~n <= 0); 469170#L26 call #t~ret0 := fact(~n - 1);< 469272#$Ultimate##0 ~n := #in~n; 469283#L25 assume !(~n <= 0); 469170#L26 call #t~ret0 := fact(~n - 1);< 469272#$Ultimate##0 ~n := #in~n; 469283#L25 assume !(~n <= 0); 469170#L26 call #t~ret0 := fact(~n - 1);< 469272#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469226#factFINAL assume true; 469206#factEXIT >#66#return; 469214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469910#factFINAL assume true; 469879#factEXIT >#70#return; 469356#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 469404#$Ultimate##0 ~n := #in~n; 469408#L25 assume !(~n <= 0); 469146#L26 call #t~ret0 := fact(~n - 1);< 469405#$Ultimate##0 ~n := #in~n; 469559#L25 assume ~n <= 0;#res := 1; 469475#factFINAL assume true; 469464#factEXIT >#66#return; 469468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470122#factFINAL assume true; 470096#factEXIT >#72#return; 470099#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 470423#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 470422#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 470414#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 470412#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 469992#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 470072#$Ultimate##0 ~n := #in~n; 470078#L25 assume !(~n <= 0); 469318#L26 call #t~ret0 := fact(~n - 1);< 469664#$Ultimate##0 ~n := #in~n; 470121#L25 assume !(~n <= 0); 469208#L26 call #t~ret0 := fact(~n - 1);< 469315#$Ultimate##0 ~n := #in~n; 469311#L25 assume !(~n <= 0); 469237#L26 call #t~ret0 := fact(~n - 1);< 469244#$Ultimate##0 ~n := #in~n; 469752#L25 assume !(~n <= 0); 469153#L26 call #t~ret0 := fact(~n - 1);< 469256#$Ultimate##0 ~n := #in~n; 469281#L25 assume !(~n <= 0); 469270#L26 call #t~ret0 := fact(~n - 1);< 469271#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469226#factFINAL assume true; 469206#factEXIT >#66#return; 469217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469658#factFINAL assume true; 469636#factEXIT >#66#return; 469640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 470071#factFINAL assume true; 469966#factEXIT >#68#return; 469011#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 469125#$Ultimate##0 ~n := #in~n; 469723#L25 assume !(~n <= 0); 469140#L26 call #t~ret0 := fact(~n - 1);< 469222#$Ultimate##0 ~n := #in~n; 469283#L25 assume !(~n <= 0); 469170#L26 call #t~ret0 := fact(~n - 1);< 469272#$Ultimate##0 ~n := #in~n; 469283#L25 assume !(~n <= 0); 469170#L26 call #t~ret0 := fact(~n - 1);< 469272#$Ultimate##0 ~n := #in~n; 469283#L25 assume !(~n <= 0); 469170#L26 call #t~ret0 := fact(~n - 1);< 469272#$Ultimate##0 ~n := #in~n; 469279#L25 assume ~n <= 0;#res := 1; 469276#factFINAL assume true; 469269#factEXIT >#66#return; 469267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469246#factFINAL assume true; 469137#factEXIT >#66#return; 469177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469743#factFINAL assume true; 469234#factEXIT >#66#return; 469233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469226#factFINAL assume true; 469206#factEXIT >#66#return; 469214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469910#factFINAL assume true; 469879#factEXIT >#70#return; 469366#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 469409#$Ultimate##0 ~n := #in~n; 469406#L25 assume ~n <= 0;#res := 1; 469407#factFINAL assume true; 469852#factEXIT >#72#return; 468541#L30-3 [2023-02-18 08:57:21,026 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:21,026 INFO L85 PathProgramCache]: Analyzing trace with hash 1670428604, now seen corresponding path program 61 times [2023-02-18 08:57:21,026 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:21,026 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1711501939] [2023-02-18 08:57:21,026 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:21,026 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:21,043 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:21,044 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2062218087] [2023-02-18 08:57:21,044 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:57:21,044 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:21,044 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:21,046 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-18 08:57:21,046 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-18 08:57:21,571 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:57:21,579 INFO L263 TraceCheckSpWp]: Trace formula consists of 2194 conjuncts, 12 conjunts are in the unsatisfiable core [2023-02-18 08:57:21,585 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:21,626 INFO L134 CoverageAnalysis]: Checked inductivity of 61215 backedges. 31604 proven. 257 refuted. 0 times theorem prover too weak. 29354 trivial. 0 not checked. [2023-02-18 08:57:21,626 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:21,692 INFO L134 CoverageAnalysis]: Checked inductivity of 61215 backedges. 1360 proven. 1332 refuted. 0 times theorem prover too weak. 58523 trivial. 0 not checked. [2023-02-18 08:57:21,692 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:21,692 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1711501939] [2023-02-18 08:57:21,692 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:21,692 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2062218087] [2023-02-18 08:57:21,693 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2062218087] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:21,693 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:21,693 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 12] total 13 [2023-02-18 08:57:21,693 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1324375564] [2023-02-18 08:57:21,693 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:21,693 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:57:21,693 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:21,694 INFO L85 PathProgramCache]: Analyzing trace with hash 382381269, now seen corresponding path program 61 times [2023-02-18 08:57:21,694 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:21,694 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1963183088] [2023-02-18 08:57:21,694 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:21,694 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:21,705 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:21,705 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [662714388] [2023-02-18 08:57:21,705 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:57:21,705 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:21,705 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:21,707 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-18 08:57:21,708 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-18 08:57:22,126 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:57:22,131 INFO L263 TraceCheckSpWp]: Trace formula consists of 1193 conjuncts, 19 conjunts are in the unsatisfiable core [2023-02-18 08:57:22,134 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:22,187 INFO L134 CoverageAnalysis]: Checked inductivity of 20857 backedges. 2269 proven. 36 refuted. 0 times theorem prover too weak. 18552 trivial. 0 not checked. [2023-02-18 08:57:22,187 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:22,306 INFO L134 CoverageAnalysis]: Checked inductivity of 20857 backedges. 1913 proven. 67 refuted. 0 times theorem prover too weak. 18877 trivial. 0 not checked. [2023-02-18 08:57:22,306 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:22,306 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1963183088] [2023-02-18 08:57:22,306 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:22,306 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [662714388] [2023-02-18 08:57:22,306 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [662714388] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:22,306 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:22,306 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 19] total 20 [2023-02-18 08:57:22,307 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [79980217] [2023-02-18 08:57:22,307 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:22,307 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:57:22,307 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:57:22,307 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 20 interpolants. [2023-02-18 08:57:22,307 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=82, Invalid=298, Unknown=0, NotChecked=0, Total=380 [2023-02-18 08:57:22,307 INFO L87 Difference]: Start difference. First operand 4273 states and 6889 transitions. cyclomatic complexity: 2648 Second operand has 20 states, 19 states have (on average 3.526315789473684) internal successors, (67), 20 states have internal predecessors, (67), 13 states have call successors, (28), 2 states have call predecessors, (28), 7 states have return successors, (31), 12 states have call predecessors, (31), 13 states have call successors, (31) [2023-02-18 08:57:22,804 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:57:22,804 INFO L93 Difference]: Finished difference Result 4261 states and 6747 transitions. [2023-02-18 08:57:22,804 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4261 states and 6747 transitions. [2023-02-18 08:57:22,823 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 924 [2023-02-18 08:57:22,845 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4261 states to 4261 states and 6747 transitions. [2023-02-18 08:57:22,845 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 450 [2023-02-18 08:57:22,845 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 450 [2023-02-18 08:57:22,845 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4261 states and 6747 transitions. [2023-02-18 08:57:22,846 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:57:22,846 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4261 states and 6747 transitions. [2023-02-18 08:57:22,847 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4261 states and 6747 transitions. [2023-02-18 08:57:22,888 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4261 to 4090. [2023-02-18 08:57:22,890 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4090 states, 2500 states have (on average 1.0488) internal successors, (2622), 2491 states have internal predecessors, (2622), 1323 states have call successors, (1339), 366 states have call predecessors, (1339), 267 states have return successors, (2519), 1232 states have call predecessors, (2519), 1323 states have call successors, (2519) [2023-02-18 08:57:22,902 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4090 states to 4090 states and 6480 transitions. [2023-02-18 08:57:22,902 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4090 states and 6480 transitions. [2023-02-18 08:57:22,902 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2023-02-18 08:57:22,902 INFO L428 stractBuchiCegarLoop]: Abstraction has 4090 states and 6480 transitions. [2023-02-18 08:57:22,902 INFO L335 stractBuchiCegarLoop]: ======== Iteration 74 ============ [2023-02-18 08:57:22,903 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4090 states and 6480 transitions. [2023-02-18 08:57:22,910 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 900 [2023-02-18 08:57:22,910 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:57:22,910 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:57:22,913 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [159, 159, 105, 105, 105, 105, 54, 18, 17, 12, 12, 12, 12, 12, 12, 12, 11, 11, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-18 08:57:22,913 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [91, 91, 70, 70, 70, 70, 21, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:57:22,913 INFO L748 eck$LassoCheckResult]: Stem: 486466#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 486406#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; 486407#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 486430#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; 486418#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 486419#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 489810#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 486386#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 486387#$Ultimate##0 ~n := #in~n; 489894#L25 assume ~n <= 0;#res := 1; 489891#factFINAL assume true; 489887#factEXIT >#68#return; 486455#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 486456#$Ultimate##0 ~n := #in~n; 489888#L25 assume ~n <= 0;#res := 1; 489884#factFINAL assume true; 489882#factEXIT >#70#return; 486382#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 486383#$Ultimate##0 ~n := #in~n; 490089#L25 assume ~n <= 0;#res := 1; 490087#factFINAL assume true; 490074#factEXIT >#72#return; 490072#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 490068#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 490066#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 490064#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 490063#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 490061#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 490062#$Ultimate##0 ~n := #in~n; 490073#L25 assume !(~n <= 0); 490070#L26 call #t~ret0 := fact(~n - 1);< 490071#$Ultimate##0 ~n := #in~n; 490093#L25 assume ~n <= 0;#res := 1; 490091#factFINAL assume true; 490069#factEXIT >#66#return; 490067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 490065#factFINAL assume true; 490060#factEXIT >#74#return; 490058#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 490059#$Ultimate##0 ~n := #in~n; 490110#L25 assume ~n <= 0;#res := 1; 490090#factFINAL assume true; 490057#factEXIT >#76#return; 490055#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 490056#$Ultimate##0 ~n := #in~n; 490085#L25 assume !(~n <= 0); 490083#L26 call #t~ret0 := fact(~n - 1);< 490084#$Ultimate##0 ~n := #in~n; 490088#L25 assume ~n <= 0;#res := 1; 490086#factFINAL assume true; 490082#factEXIT >#66#return; 490080#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 490079#factFINAL assume true; 490054#factEXIT >#78#return; 490053#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 490052#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 490050#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 490049#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 490046#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 490021#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 490023#$Ultimate##0 ~n := #in~n; 490096#L25 assume !(~n <= 0); 490034#L26 call #t~ret0 := fact(~n - 1);< 490039#$Ultimate##0 ~n := #in~n; 490099#L25 assume !(~n <= 0); 490036#L26 call #t~ret0 := fact(~n - 1);< 490042#$Ultimate##0 ~n := #in~n; 490098#L25 assume ~n <= 0;#res := 1; 490097#factFINAL assume true; 490095#factEXIT >#66#return; 490075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 490041#factFINAL assume true; 490033#factEXIT >#66#return; 490038#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 490094#factFINAL assume true; 490092#factEXIT >#74#return; 490022#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 490028#$Ultimate##0 ~n := #in~n; 490031#L25 assume ~n <= 0;#res := 1; 490029#factFINAL assume true; 490027#factEXIT >#76#return; 490025#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 490026#$Ultimate##0 ~n := #in~n; 490040#L25 assume !(~n <= 0); 490035#L26 call #t~ret0 := fact(~n - 1);< 490039#$Ultimate##0 ~n := #in~n; 490099#L25 assume !(~n <= 0); 490036#L26 call #t~ret0 := fact(~n - 1);< 490042#$Ultimate##0 ~n := #in~n; 490098#L25 assume ~n <= 0;#res := 1; 490097#factFINAL assume true; 490095#factEXIT >#66#return; 490075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 490041#factFINAL assume true; 490033#factEXIT >#66#return; 490032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 490030#factFINAL assume true; 490024#factEXIT >#78#return; 490019#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 490015#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 490007#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 490005#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 490001#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 489953#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 489954#$Ultimate##0 ~n := #in~n; 489963#L25 assume !(~n <= 0); 489959#L26 call #t~ret0 := fact(~n - 1);< 489961#$Ultimate##0 ~n := #in~n; 489981#L25 assume !(~n <= 0); 489960#L26 call #t~ret0 := fact(~n - 1);< 489971#$Ultimate##0 ~n := #in~n; 489981#L25 assume !(~n <= 0); 489960#L26 call #t~ret0 := fact(~n - 1);< 489971#$Ultimate##0 ~n := #in~n; 489990#L25 assume ~n <= 0;#res := 1; 489987#factFINAL assume true; 489985#factEXIT >#66#return; 489983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 489980#factFINAL assume true; 489970#factEXIT >#66#return; 489967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 489965#factFINAL assume true; 489958#factEXIT >#66#return; 489957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 489956#factFINAL assume true; 489952#factEXIT >#74#return; 489950#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 489951#$Ultimate##0 ~n := #in~n; 489964#L25 assume ~n <= 0;#res := 1; 489962#factFINAL assume true; 489949#factEXIT >#76#return; 486441#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 489947#$Ultimate##0 ~n := #in~n; 489989#L25 assume !(~n <= 0); 489976#L26 call #t~ret0 := fact(~n - 1);< 489979#$Ultimate##0 ~n := #in~n; 489994#L25 assume !(~n <= 0); 489974#L26 call #t~ret0 := fact(~n - 1);< 489993#$Ultimate##0 ~n := #in~n; 489994#L25 assume !(~n <= 0); 489974#L26 call #t~ret0 := fact(~n - 1);< 489993#$Ultimate##0 ~n := #in~n; 489998#L25 assume ~n <= 0;#res := 1; 489996#factFINAL assume true; 489992#factEXIT >#66#return; 489991#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 489988#factFINAL assume true; 489986#factEXIT >#66#return; 489984#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 489982#factFINAL assume true; 489972#factEXIT >#66#return; 486440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486442#factFINAL assume true; 489945#factEXIT >#78#return; 489918#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 489905#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 488256#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 488250#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 488247#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 487532#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 487531#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 487529#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 487226#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 487233#$Ultimate##0 ~n := #in~n; 487526#L25 assume !(~n <= 0); 487247#L26 call #t~ret0 := fact(~n - 1);< 487273#$Ultimate##0 ~n := #in~n; 487558#L25 assume ~n <= 0;#res := 1; 487958#factFINAL assume true; 487951#factEXIT >#66#return; 487950#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487949#factFINAL assume true; 487947#factEXIT >#68#return; 487941#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 487224#$Ultimate##0 ~n := #in~n; 487948#L25 assume ~n <= 0;#res := 1; 487946#factFINAL assume true; 487940#factEXIT >#70#return; 487931#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 487938#$Ultimate##0 ~n := #in~n; 487936#L25 assume !(~n <= 0); 487256#L26 call #t~ret0 := fact(~n - 1);< 487932#$Ultimate##0 ~n := #in~n; 487558#L25 assume ~n <= 0;#res := 1; 487958#factFINAL assume true; 487951#factEXIT >#66#return; 487954#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488956#factFINAL assume true; 488930#factEXIT >#72#return; 488929#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 488927#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 488925#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 488922#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 488902#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 487989#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 487996#$Ultimate##0 ~n := #in~n; 487991#L25 assume !(~n <= 0); 487249#L26 call #t~ret0 := fact(~n - 1);< 487932#$Ultimate##0 ~n := #in~n; 487558#L25 assume ~n <= 0;#res := 1; 487958#factFINAL assume true; 487951#factEXIT >#66#return; 487957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488973#factFINAL assume true; 488901#factEXIT >#68#return; 487960#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 487995#$Ultimate##0 ~n := #in~n; 487990#L25 assume !(~n <= 0); 487242#L26 call #t~ret0 := fact(~n - 1);< 487273#$Ultimate##0 ~n := #in~n; 487558#L25 assume ~n <= 0;#res := 1; 487958#factFINAL assume true; 487951#factEXIT >#66#return; 487955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488883#factFINAL assume true; 488813#factEXIT >#70#return; 488815#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 488898#$Ultimate##0 ~n := #in~n; 489003#L25 assume ~n <= 0;#res := 1; 488971#factFINAL assume true; 488893#factEXIT >#72#return; 488891#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 488889#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 488888#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 488887#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 488886#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 488014#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 488691#$Ultimate##0 ~n := #in~n; 488267#L25 assume !(~n <= 0); 487254#L26 call #t~ret0 := fact(~n - 1);< 487994#$Ultimate##0 ~n := #in~n; 487937#L25 assume !(~n <= 0); 487250#L26 call #t~ret0 := fact(~n - 1);< 487525#$Ultimate##0 ~n := #in~n; 487535#L25 assume ~n <= 0;#res := 1; 487533#factFINAL assume true; 487522#factEXIT >#66#return; 487520#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487514#factFINAL assume true; 487241#factEXIT >#66#return; 487268#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 489258#factFINAL assume true; 488805#factEXIT >#74#return; 487978#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 487995#$Ultimate##0 ~n := #in~n; 487990#L25 assume !(~n <= 0); 487242#L26 call #t~ret0 := fact(~n - 1);< 487273#$Ultimate##0 ~n := #in~n; 487558#L25 assume ~n <= 0;#res := 1; 487958#factFINAL assume true; 487951#factEXIT >#66#return; 487955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488883#factFINAL assume true; 488813#factEXIT >#76#return; 488007#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 488539#$Ultimate##0 ~n := #in~n; 488538#L25 assume !(~n <= 0); 487953#L26 call #t~ret0 := fact(~n - 1);< 487993#$Ultimate##0 ~n := #in~n; 487558#L25 assume ~n <= 0;#res := 1; 487958#factFINAL assume true; 487951#factEXIT >#66#return; 487955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488883#factFINAL assume true; 488813#factEXIT >#78#return; 488814#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 488957#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 488827#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 488824#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 488823#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 488136#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 488760#$Ultimate##0 ~n := #in~n; 489068#L25 assume !(~n <= 0); 488612#L26 call #t~ret0 := fact(~n - 1);< 489051#$Ultimate##0 ~n := #in~n; 489309#L25 assume !(~n <= 0); 488619#L26 call #t~ret0 := fact(~n - 1);< 488690#$Ultimate##0 ~n := #in~n; 489309#L25 assume !(~n <= 0); 488619#L26 call #t~ret0 := fact(~n - 1);< 488690#$Ultimate##0 ~n := #in~n; 488695#L25 assume ~n <= 0;#res := 1; 488694#factFINAL assume true; 488687#factEXIT >#66#return; 488686#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488680#factFINAL assume true; 488657#factEXIT >#66#return; 488655#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488635#factFINAL assume true; 488605#factEXIT >#66#return; 488604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488174#factFINAL assume true; 488153#factEXIT >#74#return; 488163#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 488173#$Ultimate##0 ~n := #in~n; 488998#L25 assume !(~n <= 0); 488620#L26 call #t~ret0 := fact(~n - 1);< 488910#$Ultimate##0 ~n := #in~n; 488693#L25 assume ~n <= 0;#res := 1; 488923#factFINAL assume true; 488905#factEXIT >#66#return; 488904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488868#factFINAL assume true; 488756#factEXIT >#76#return; 488155#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 488753#$Ultimate##0 ~n := #in~n; 488751#L25 assume !(~n <= 0); 488615#L26 call #t~ret0 := fact(~n - 1);< 488747#$Ultimate##0 ~n := #in~n; 488746#L25 assume !(~n <= 0); 488614#L26 call #t~ret0 := fact(~n - 1);< 488696#$Ultimate##0 ~n := #in~n; 488695#L25 assume ~n <= 0;#res := 1; 488694#factFINAL assume true; 488687#factEXIT >#66#return; 488686#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488680#factFINAL assume true; 488657#factEXIT >#66#return; 488660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 489338#factFINAL assume true; 489336#factEXIT >#78#return; 489337#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 490139#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 489434#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 489433#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 489424#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 486420#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 486421#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 488903#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 487227#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 487233#$Ultimate##0 ~n := #in~n; 487526#L25 assume !(~n <= 0); 487247#L26 call #t~ret0 := fact(~n - 1);< 487273#$Ultimate##0 ~n := #in~n; 487551#L25 assume !(~n <= 0); 487245#L26 call #t~ret0 := fact(~n - 1);< 487548#$Ultimate##0 ~n := #in~n; 487535#L25 assume ~n <= 0;#res := 1; 487533#factFINAL assume true; 487522#factEXIT >#66#return; 487520#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487514#factFINAL assume true; 487241#factEXIT >#66#return; 487239#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487235#factFINAL assume true; 487225#factEXIT >#68#return; 487217#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 487221#$Ultimate##0 ~n := #in~n; 487513#L25 assume ~n <= 0;#res := 1; 487510#factFINAL assume true; 487216#factEXIT >#70#return; 487209#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 487215#$Ultimate##0 ~n := #in~n; 487483#L25 assume !(~n <= 0); 486832#L26 call #t~ret0 := fact(~n - 1);< 486846#$Ultimate##0 ~n := #in~n; 486875#L25 assume !(~n <= 0); 486860#L26 call #t~ret0 := fact(~n - 1);< 486862#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486842#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487481#factFINAL assume true; 487207#factEXIT >#72#return; 487214#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 489414#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 489413#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 489412#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 489411#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 487132#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 487136#$Ultimate##0 ~n := #in~n; 487159#L25 assume !(~n <= 0); 486831#L26 call #t~ret0 := fact(~n - 1);< 486846#$Ultimate##0 ~n := #in~n; 486875#L25 assume !(~n <= 0); 486860#L26 call #t~ret0 := fact(~n - 1);< 486862#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486840#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487137#factFINAL assume true; 487127#factEXIT >#68#return; 486973#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 487020#$Ultimate##0 ~n := #in~n; 487083#L25 assume !(~n <= 0); 486802#L26 call #t~ret0 := fact(~n - 1);< 487037#$Ultimate##0 ~n := #in~n; 487093#L25 assume ~n <= 0;#res := 1; 487059#factFINAL assume true; 487030#factEXIT >#66#return; 487027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487021#factFINAL assume true; 486969#factEXIT >#70#return; 486983#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 487022#$Ultimate##0 ~n := #in~n; 487084#L25 assume !(~n <= 0); 487032#L26 call #t~ret0 := fact(~n - 1);< 487038#$Ultimate##0 ~n := #in~n; 487093#L25 assume ~n <= 0;#res := 1; 487059#factFINAL assume true; 487030#factEXIT >#66#return; 487027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487021#factFINAL assume true; 486969#factEXIT >#72#return; 486994#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 489410#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 489409#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 489408#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 489407#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 487131#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 487136#$Ultimate##0 ~n := #in~n; 487159#L25 assume !(~n <= 0); 486831#L26 call #t~ret0 := fact(~n - 1);< 486846#$Ultimate##0 ~n := #in~n; 486875#L25 assume !(~n <= 0); 486860#L26 call #t~ret0 := fact(~n - 1);< 486862#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486840#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487137#factFINAL assume true; 487127#factEXIT >#68#return; 487002#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 487024#$Ultimate##0 ~n := #in~n; 487384#L25 assume !(~n <= 0); 486804#L26 call #t~ret0 := fact(~n - 1);< 486847#$Ultimate##0 ~n := #in~n; 486877#L25 assume !(~n <= 0); 486835#L26 call #t~ret0 := fact(~n - 1);< 486864#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486843#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487023#factFINAL assume true; 486997#factEXIT >#70#return; 487018#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 487058#$Ultimate##0 ~n := #in~n; 487163#L25 assume ~n <= 0;#res := 1; 487124#factFINAL assume true; 487056#factEXIT >#72#return; 487057#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 489393#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 489388#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 489359#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 489358#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 487045#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 486355#$Ultimate##0 ~n := #in~n; 489328#L25 assume !(~n <= 0); 488531#L26 call #t~ret0 := fact(~n - 1);< 488569#$Ultimate##0 ~n := #in~n; 488703#L25 assume !(~n <= 0); 488527#L26 call #t~ret0 := fact(~n - 1);< 488701#$Ultimate##0 ~n := #in~n; 488703#L25 assume !(~n <= 0); 488527#L26 call #t~ret0 := fact(~n - 1);< 488701#$Ultimate##0 ~n := #in~n; 488741#L25 assume ~n <= 0;#res := 1; 488740#factFINAL assume true; 488698#factEXIT >#66#return; 488697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488650#factFINAL assume true; 488640#factEXIT >#66#return; 488638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488593#factFINAL assume true; 488576#factEXIT >#66#return; 488583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488850#factFINAL assume true; 488842#factEXIT >#74#return; 488651#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 488851#$Ultimate##0 ~n := #in~n; 489308#L25 assume !(~n <= 0); 488577#L26 call #t~ret0 := fact(~n - 1);< 488586#$Ultimate##0 ~n := #in~n; 488702#L25 assume !(~n <= 0); 488643#L26 call #t~ret0 := fact(~n - 1);< 488649#$Ultimate##0 ~n := #in~n; 488737#L25 assume !(~n <= 0); 488699#L26 call #t~ret0 := fact(~n - 1);< 488700#$Ultimate##0 ~n := #in~n; 488741#L25 assume ~n <= 0;#res := 1; 488740#factFINAL assume true; 488698#factEXIT >#66#return; 488697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488650#factFINAL assume true; 488640#factEXIT >#66#return; 488638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488593#factFINAL assume true; 488576#factEXIT >#66#return; 488583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488850#factFINAL assume true; 488842#factEXIT >#76#return; 488667#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 489355#$Ultimate##0 ~n := #in~n; 489392#L25 assume !(~n <= 0); 489194#L26 call #t~ret0 := fact(~n - 1);< 486416#$Ultimate##0 ~n := #in~n; 488738#L25 assume ~n <= 0;#res := 1; 489199#factFINAL assume true; 489192#factEXIT >#66#return; 489196#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 489354#factFINAL assume true; 488666#factEXIT >#78#return; 486367#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 486408#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 486431#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 489436#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 489435#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 487381#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 487379#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 487380#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 486902#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 486907#$Ultimate##0 ~n := #in~n; 486905#L25 assume !(~n <= 0); 486730#L26 call #t~ret0 := fact(~n - 1);< 486901#$Ultimate##0 ~n := #in~n; 486899#L25 assume !(~n <= 0); 486770#L26 call #t~ret0 := fact(~n - 1);< 486893#$Ultimate##0 ~n := #in~n; 486890#L25 assume !(~n <= 0); 486809#L26 call #t~ret0 := fact(~n - 1);< 486882#$Ultimate##0 ~n := #in~n; 486880#L25 assume !(~n <= 0); 486836#L26 call #t~ret0 := fact(~n - 1);< 486864#$Ultimate##0 ~n := #in~n; 486875#L25 assume !(~n <= 0); 486860#L26 call #t~ret0 := fact(~n - 1);< 486862#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486789#factFINAL assume true; 486766#factEXIT >#66#return; 486780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487530#factFINAL assume true; 486716#factEXIT >#66#return; 486749#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488828#factFINAL assume true; 488459#factEXIT >#68#return; 488204#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 488208#$Ultimate##0 ~n := #in~n; 488628#L25 assume ~n <= 0;#res := 1; 488626#factFINAL assume true; 488197#factEXIT >#70#return; 486758#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 488194#$Ultimate##0 ~n := #in~n; 488918#L25 assume !(~n <= 0); 486721#L26 call #t~ret0 := fact(~n - 1);< 486753#$Ultimate##0 ~n := #in~n; 486952#L25 assume !(~n <= 0); 486719#L26 call #t~ret0 := fact(~n - 1);< 486787#$Ultimate##0 ~n := #in~n; 487234#L25 assume !(~n <= 0); 486741#L26 call #t~ret0 := fact(~n - 1);< 486819#$Ultimate##0 ~n := #in~n; 487521#L25 assume !(~n <= 0); 486720#L26 call #t~ret0 := fact(~n - 1);< 486793#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486789#factFINAL assume true; 486766#factEXIT >#66#return; 486780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487530#factFINAL assume true; 486716#factEXIT >#66#return; 486747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488625#factFINAL assume true; 488184#factEXIT >#72#return; 488187#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 489432#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 489430#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 489428#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 489426#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 486924#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 488328#$Ultimate##0 ~n := #in~n; 488368#L25 assume !(~n <= 0); 486728#L26 call #t~ret0 := fact(~n - 1);< 486906#$Ultimate##0 ~n := #in~n; 486904#L25 assume !(~n <= 0); 486768#L26 call #t~ret0 := fact(~n - 1);< 486788#$Ultimate##0 ~n := #in~n; 487482#L25 assume !(~n <= 0); 486812#L26 call #t~ret0 := fact(~n - 1);< 486820#$Ultimate##0 ~n := #in~n; 487484#L25 assume !(~n <= 0); 486838#L26 call #t~ret0 := fact(~n - 1);< 486846#$Ultimate##0 ~n := #in~n; 486875#L25 assume !(~n <= 0); 486860#L26 call #t~ret0 := fact(~n - 1);< 486862#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486789#factFINAL assume true; 486766#factEXIT >#66#return; 486780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487530#factFINAL assume true; 486716#factEXIT >#66#return; 486751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487382#factFINAL assume true; 487383#factEXIT >#68#return; 486488#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 486549#$Ultimate##0 ~n := #in~n; 486547#L25 assume !(~n <= 0); 486548#L26 call #t~ret0 := fact(~n - 1);< 487038#$Ultimate##0 ~n := #in~n; 487093#L25 assume ~n <= 0;#res := 1; 487059#factFINAL assume true; 487030#factEXIT >#66#return; 487034#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487686#factFINAL assume true; 487648#factEXIT >#70#return; 486872#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 486879#$Ultimate##0 ~n := #in~n; 486878#L25 assume !(~n <= 0); 486769#L26 call #t~ret0 := fact(~n - 1);< 486870#$Ultimate##0 ~n := #in~n; 486869#L25 assume !(~n <= 0); 486808#L26 call #t~ret0 := fact(~n - 1);< 486847#$Ultimate##0 ~n := #in~n; 486877#L25 assume !(~n <= 0); 486835#L26 call #t~ret0 := fact(~n - 1);< 486864#$Ultimate##0 ~n := #in~n; 486875#L25 assume !(~n <= 0); 486860#L26 call #t~ret0 := fact(~n - 1);< 486862#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486789#factFINAL assume true; 486766#factEXIT >#66#return; 486779#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487608#factFINAL assume true; 487316#factEXIT >#72#return; 487322#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 489295#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 489294#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 489293#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 489292#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 486917#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 488328#$Ultimate##0 ~n := #in~n; 488368#L25 assume !(~n <= 0); 486728#L26 call #t~ret0 := fact(~n - 1);< 486906#$Ultimate##0 ~n := #in~n; 486904#L25 assume !(~n <= 0); 486768#L26 call #t~ret0 := fact(~n - 1);< 486788#$Ultimate##0 ~n := #in~n; 487482#L25 assume !(~n <= 0); 486812#L26 call #t~ret0 := fact(~n - 1);< 486820#$Ultimate##0 ~n := #in~n; 487484#L25 assume !(~n <= 0); 486838#L26 call #t~ret0 := fact(~n - 1);< 486846#$Ultimate##0 ~n := #in~n; 486875#L25 assume !(~n <= 0); 486860#L26 call #t~ret0 := fact(~n - 1);< 486862#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486789#factFINAL assume true; 486766#factEXIT >#66#return; 486780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487530#factFINAL assume true; 486716#factEXIT >#66#return; 486751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487382#factFINAL assume true; 487383#factEXIT >#68#return; 486665#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 486709#$Ultimate##0 ~n := #in~n; 487145#L25 assume !(~n <= 0); 486729#L26 call #t~ret0 := fact(~n - 1);< 486793#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486841#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487314#factFINAL assume true; 487289#factEXIT >#70#return; 486823#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 488429#$Ultimate##0 ~n := #in~n; 489649#L25 assume !(~n <= 0); 486803#L26 call #t~ret0 := fact(~n - 1);< 486820#$Ultimate##0 ~n := #in~n; 487484#L25 assume !(~n <= 0); 486838#L26 call #t~ret0 := fact(~n - 1);< 486846#$Ultimate##0 ~n := #in~n; 486875#L25 assume !(~n <= 0); 486860#L26 call #t~ret0 := fact(~n - 1);< 486862#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486816#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488739#factFINAL assume true; 488408#factEXIT >#72#return; 488410#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 489288#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 489286#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 489285#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 489284#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 486909#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 488328#$Ultimate##0 ~n := #in~n; 488368#L25 assume !(~n <= 0); 486728#L26 call #t~ret0 := fact(~n - 1);< 486906#$Ultimate##0 ~n := #in~n; 486904#L25 assume !(~n <= 0); 486768#L26 call #t~ret0 := fact(~n - 1);< 486788#$Ultimate##0 ~n := #in~n; 487482#L25 assume !(~n <= 0); 486812#L26 call #t~ret0 := fact(~n - 1);< 486820#$Ultimate##0 ~n := #in~n; 487484#L25 assume !(~n <= 0); 486838#L26 call #t~ret0 := fact(~n - 1);< 486846#$Ultimate##0 ~n := #in~n; 486875#L25 assume !(~n <= 0); 486860#L26 call #t~ret0 := fact(~n - 1);< 486862#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486789#factFINAL assume true; 486766#factEXIT >#66#return; 486780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487530#factFINAL assume true; 486716#factEXIT >#66#return; 486751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487382#factFINAL assume true; 487383#factEXIT >#68#return; 486598#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 486709#$Ultimate##0 ~n := #in~n; 487145#L25 assume !(~n <= 0); 486729#L26 call #t~ret0 := fact(~n - 1);< 486793#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486816#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488739#factFINAL assume true; 488408#factEXIT >#70#return; 487072#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 487081#$Ultimate##0 ~n := #in~n; 487080#L25 assume !(~n <= 0); 486811#L26 call #t~ret0 := fact(~n - 1);< 487037#$Ultimate##0 ~n := #in~n; 486877#L25 assume !(~n <= 0); 486835#L26 call #t~ret0 := fact(~n - 1);< 486864#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486841#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487314#factFINAL assume true; 487289#factEXIT >#72#return; 487312#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 489299#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 489298#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 489297#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 489296#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 486930#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 488328#$Ultimate##0 ~n := #in~n; 488368#L25 assume !(~n <= 0); 486728#L26 call #t~ret0 := fact(~n - 1);< 486906#$Ultimate##0 ~n := #in~n; 486904#L25 assume !(~n <= 0); 486768#L26 call #t~ret0 := fact(~n - 1);< 486788#$Ultimate##0 ~n := #in~n; 487482#L25 assume !(~n <= 0); 486812#L26 call #t~ret0 := fact(~n - 1);< 486820#$Ultimate##0 ~n := #in~n; 487484#L25 assume !(~n <= 0); 486838#L26 call #t~ret0 := fact(~n - 1);< 486846#$Ultimate##0 ~n := #in~n; 486875#L25 assume !(~n <= 0); 486860#L26 call #t~ret0 := fact(~n - 1);< 486862#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486789#factFINAL assume true; 486766#factEXIT >#66#return; 486780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487530#factFINAL assume true; 486716#factEXIT >#66#return; 486751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487382#factFINAL assume true; 487383#factEXIT >#68#return; 486596#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 486709#$Ultimate##0 ~n := #in~n; 487145#L25 assume !(~n <= 0); 486729#L26 call #t~ret0 := fact(~n - 1);< 486793#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486789#factFINAL assume true; 486766#factEXIT >#66#return; 486779#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487608#factFINAL assume true; 487316#factEXIT >#70#return; 487074#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 487081#$Ultimate##0 ~n := #in~n; 487080#L25 assume !(~n <= 0); 486811#L26 call #t~ret0 := fact(~n - 1);< 487037#$Ultimate##0 ~n := #in~n; 487093#L25 assume ~n <= 0;#res := 1; 487059#factFINAL assume true; 487030#factEXIT >#66#return; 487034#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487686#factFINAL assume true; 487648#factEXIT >#72#return; 487664#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 489672#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 489669#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 489667#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 489665#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 486935#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 488328#$Ultimate##0 ~n := #in~n; 488368#L25 assume !(~n <= 0); 486728#L26 call #t~ret0 := fact(~n - 1);< 486906#$Ultimate##0 ~n := #in~n; 486904#L25 assume !(~n <= 0); 486768#L26 call #t~ret0 := fact(~n - 1);< 486788#$Ultimate##0 ~n := #in~n; 487482#L25 assume !(~n <= 0); 486812#L26 call #t~ret0 := fact(~n - 1);< 486820#$Ultimate##0 ~n := #in~n; 487484#L25 assume !(~n <= 0); 486838#L26 call #t~ret0 := fact(~n - 1);< 486846#$Ultimate##0 ~n := #in~n; 486875#L25 assume !(~n <= 0); 486860#L26 call #t~ret0 := fact(~n - 1);< 486862#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486789#factFINAL assume true; 486766#factEXIT >#66#return; 486780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487530#factFINAL assume true; 486716#factEXIT >#66#return; 486751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487382#factFINAL assume true; 487383#factEXIT >#68#return; 486645#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 486709#$Ultimate##0 ~n := #in~n; 487145#L25 assume !(~n <= 0); 486729#L26 call #t~ret0 := fact(~n - 1);< 486793#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486789#factFINAL assume true; 486766#factEXIT >#66#return; 486780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487530#factFINAL assume true; 486716#factEXIT >#66#return; 486715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486711#factFINAL assume true; 486712#factEXIT >#70#return; 486496#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 487082#$Ultimate##0 ~n := #in~n; 487079#L25 assume ~n <= 0;#res := 1; 486545#factFINAL assume true; 486470#factEXIT >#72#return; 486540#L30-3 [2023-02-18 08:57:22,914 INFO L750 eck$LassoCheckResult]: Loop: 486540#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 488979#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 488977#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 488975#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 488974#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 488794#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 488882#$Ultimate##0 ~n := #in~n; 489000#L25 assume !(~n <= 0); 488532#L26 call #t~ret0 := fact(~n - 1);< 488537#$Ultimate##0 ~n := #in~n; 489396#L25 assume !(~n <= 0); 488523#L26 call #t~ret0 := fact(~n - 1);< 488555#$Ultimate##0 ~n := #in~n; 489384#L25 assume !(~n <= 0); 488521#L26 call #t~ret0 := fact(~n - 1);< 488594#$Ultimate##0 ~n := #in~n; 489307#L25 assume !(~n <= 0); 488515#L26 call #t~ret0 := fact(~n - 1);< 488648#$Ultimate##0 ~n := #in~n; 488703#L25 assume !(~n <= 0); 488527#L26 call #t~ret0 := fact(~n - 1);< 488701#$Ultimate##0 ~n := #in~n; 488741#L25 assume ~n <= 0;#res := 1; 488740#factFINAL assume true; 488698#factEXIT >#66#return; 488697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488650#factFINAL assume true; 488640#factEXIT >#66#return; 488638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488593#factFINAL assume true; 488576#factEXIT >#66#return; 488582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488568#factFINAL assume true; 488557#factEXIT >#66#return; 488560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488921#factFINAL assume true; 488913#factEXIT >#66#return; 488911#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488884#factFINAL assume true; 488881#factEXIT >#74#return; 488571#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 488864#$Ultimate##0 ~n := #in~n; 488863#L25 assume !(~n <= 0); 488530#L26 call #t~ret0 := fact(~n - 1);< 488569#$Ultimate##0 ~n := #in~n; 488703#L25 assume !(~n <= 0); 488527#L26 call #t~ret0 := fact(~n - 1);< 488701#$Ultimate##0 ~n := #in~n; 488703#L25 assume !(~n <= 0); 488527#L26 call #t~ret0 := fact(~n - 1);< 488701#$Ultimate##0 ~n := #in~n; 488703#L25 assume !(~n <= 0); 488527#L26 call #t~ret0 := fact(~n - 1);< 488701#$Ultimate##0 ~n := #in~n; 488741#L25 assume ~n <= 0;#res := 1; 488740#factFINAL assume true; 488698#factEXIT >#66#return; 488697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488650#factFINAL assume true; 488640#factEXIT >#66#return; 488638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488593#factFINAL assume true; 488576#factEXIT >#66#return; 488582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488568#factFINAL assume true; 488557#factEXIT >#66#return; 488564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 489186#factFINAL assume true; 489183#factEXIT >#76#return; 486415#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 486467#$Ultimate##0 ~n := #in~n; 489375#L25 assume !(~n <= 0); 486411#L26 call #t~ret0 := fact(~n - 1);< 486416#$Ultimate##0 ~n := #in~n; 488738#L25 assume ~n <= 0;#res := 1; 489199#factFINAL assume true; 489192#factEXIT >#66#return; 489195#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 489664#factFINAL assume true; 488238#factEXIT >#78#return; 488240#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 489027#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 489025#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 489023#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 489021#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 489020#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 489019#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 489018#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 488460#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 488369#$Ultimate##0 ~n := #in~n; 488829#L25 assume !(~n <= 0); 486723#L26 call #t~ret0 := fact(~n - 1);< 486906#$Ultimate##0 ~n := #in~n; 486904#L25 assume !(~n <= 0); 486768#L26 call #t~ret0 := fact(~n - 1);< 486788#$Ultimate##0 ~n := #in~n; 487482#L25 assume !(~n <= 0); 486812#L26 call #t~ret0 := fact(~n - 1);< 486820#$Ultimate##0 ~n := #in~n; 487484#L25 assume !(~n <= 0); 486838#L26 call #t~ret0 := fact(~n - 1);< 486846#$Ultimate##0 ~n := #in~n; 486875#L25 assume !(~n <= 0); 486860#L26 call #t~ret0 := fact(~n - 1);< 486862#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486789#factFINAL assume true; 486766#factEXIT >#66#return; 486780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487530#factFINAL assume true; 486716#factEXIT >#66#return; 486749#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488828#factFINAL assume true; 488459#factEXIT >#68#return; 488201#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 488208#$Ultimate##0 ~n := #in~n; 488628#L25 assume ~n <= 0;#res := 1; 488626#factFINAL assume true; 488197#factEXIT >#70#return; 486757#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 488194#$Ultimate##0 ~n := #in~n; 488918#L25 assume !(~n <= 0); 486721#L26 call #t~ret0 := fact(~n - 1);< 486753#$Ultimate##0 ~n := #in~n; 486952#L25 assume !(~n <= 0); 486719#L26 call #t~ret0 := fact(~n - 1);< 486787#$Ultimate##0 ~n := #in~n; 487234#L25 assume !(~n <= 0); 486741#L26 call #t~ret0 := fact(~n - 1);< 486819#$Ultimate##0 ~n := #in~n; 487521#L25 assume !(~n <= 0); 486720#L26 call #t~ret0 := fact(~n - 1);< 486793#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486789#factFINAL assume true; 486766#factEXIT >#66#return; 486780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487530#factFINAL assume true; 486716#factEXIT >#66#return; 486747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488625#factFINAL assume true; 488184#factEXIT >#72#return; 488186#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 489012#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 489011#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 489009#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 489007#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 486931#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 488328#$Ultimate##0 ~n := #in~n; 488368#L25 assume !(~n <= 0); 486728#L26 call #t~ret0 := fact(~n - 1);< 486906#$Ultimate##0 ~n := #in~n; 486904#L25 assume !(~n <= 0); 486768#L26 call #t~ret0 := fact(~n - 1);< 486788#$Ultimate##0 ~n := #in~n; 487482#L25 assume !(~n <= 0); 486812#L26 call #t~ret0 := fact(~n - 1);< 486820#$Ultimate##0 ~n := #in~n; 487484#L25 assume !(~n <= 0); 486838#L26 call #t~ret0 := fact(~n - 1);< 486846#$Ultimate##0 ~n := #in~n; 486875#L25 assume !(~n <= 0); 486860#L26 call #t~ret0 := fact(~n - 1);< 486862#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486789#factFINAL assume true; 486766#factEXIT >#66#return; 486780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487530#factFINAL assume true; 486716#factEXIT >#66#return; 486751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487382#factFINAL assume true; 487383#factEXIT >#68#return; 486489#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 486549#$Ultimate##0 ~n := #in~n; 486547#L25 assume !(~n <= 0); 486548#L26 call #t~ret0 := fact(~n - 1);< 487038#$Ultimate##0 ~n := #in~n; 487093#L25 assume ~n <= 0;#res := 1; 487059#factFINAL assume true; 487030#factEXIT >#66#return; 487034#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487686#factFINAL assume true; 487648#factEXIT >#70#return; 486795#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 487609#$Ultimate##0 ~n := #in~n; 488716#L25 assume !(~n <= 0); 486775#L26 call #t~ret0 := fact(~n - 1);< 486788#$Ultimate##0 ~n := #in~n; 487482#L25 assume !(~n <= 0); 486812#L26 call #t~ret0 := fact(~n - 1);< 486820#$Ultimate##0 ~n := #in~n; 487484#L25 assume !(~n <= 0); 486838#L26 call #t~ret0 := fact(~n - 1);< 486846#$Ultimate##0 ~n := #in~n; 486875#L25 assume !(~n <= 0); 486860#L26 call #t~ret0 := fact(~n - 1);< 486862#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486789#factFINAL assume true; 486766#factEXIT >#66#return; 486779#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487608#factFINAL assume true; 487316#factEXIT >#72#return; 487322#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 489295#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 489294#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 489293#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 489292#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 486917#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 488328#$Ultimate##0 ~n := #in~n; 488368#L25 assume !(~n <= 0); 486728#L26 call #t~ret0 := fact(~n - 1);< 486906#$Ultimate##0 ~n := #in~n; 486904#L25 assume !(~n <= 0); 486768#L26 call #t~ret0 := fact(~n - 1);< 486788#$Ultimate##0 ~n := #in~n; 487482#L25 assume !(~n <= 0); 486812#L26 call #t~ret0 := fact(~n - 1);< 486820#$Ultimate##0 ~n := #in~n; 487484#L25 assume !(~n <= 0); 486838#L26 call #t~ret0 := fact(~n - 1);< 486846#$Ultimate##0 ~n := #in~n; 486875#L25 assume !(~n <= 0); 486860#L26 call #t~ret0 := fact(~n - 1);< 486862#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486789#factFINAL assume true; 486766#factEXIT >#66#return; 486780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487530#factFINAL assume true; 486716#factEXIT >#66#return; 486751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487382#factFINAL assume true; 487383#factEXIT >#68#return; 486665#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 486709#$Ultimate##0 ~n := #in~n; 487145#L25 assume !(~n <= 0); 486729#L26 call #t~ret0 := fact(~n - 1);< 486793#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486841#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487314#factFINAL assume true; 487289#factEXIT >#70#return; 486823#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 488429#$Ultimate##0 ~n := #in~n; 489649#L25 assume !(~n <= 0); 486803#L26 call #t~ret0 := fact(~n - 1);< 486820#$Ultimate##0 ~n := #in~n; 487484#L25 assume !(~n <= 0); 486838#L26 call #t~ret0 := fact(~n - 1);< 486846#$Ultimate##0 ~n := #in~n; 486875#L25 assume !(~n <= 0); 486860#L26 call #t~ret0 := fact(~n - 1);< 486862#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486816#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488739#factFINAL assume true; 488408#factEXIT >#72#return; 488410#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 489288#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 489286#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 489285#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 489284#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 486909#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 488328#$Ultimate##0 ~n := #in~n; 488368#L25 assume !(~n <= 0); 486728#L26 call #t~ret0 := fact(~n - 1);< 486906#$Ultimate##0 ~n := #in~n; 486904#L25 assume !(~n <= 0); 486768#L26 call #t~ret0 := fact(~n - 1);< 486788#$Ultimate##0 ~n := #in~n; 487482#L25 assume !(~n <= 0); 486812#L26 call #t~ret0 := fact(~n - 1);< 486820#$Ultimate##0 ~n := #in~n; 487484#L25 assume !(~n <= 0); 486838#L26 call #t~ret0 := fact(~n - 1);< 486846#$Ultimate##0 ~n := #in~n; 486875#L25 assume !(~n <= 0); 486860#L26 call #t~ret0 := fact(~n - 1);< 486862#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486789#factFINAL assume true; 486766#factEXIT >#66#return; 486780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487530#factFINAL assume true; 486716#factEXIT >#66#return; 486751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487382#factFINAL assume true; 487383#factEXIT >#68#return; 486598#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 486709#$Ultimate##0 ~n := #in~n; 487145#L25 assume !(~n <= 0); 486729#L26 call #t~ret0 := fact(~n - 1);< 486793#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486816#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 488739#factFINAL assume true; 488408#factEXIT >#70#return; 487072#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 487081#$Ultimate##0 ~n := #in~n; 487080#L25 assume !(~n <= 0); 486811#L26 call #t~ret0 := fact(~n - 1);< 487037#$Ultimate##0 ~n := #in~n; 486877#L25 assume !(~n <= 0); 486835#L26 call #t~ret0 := fact(~n - 1);< 486864#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486841#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487314#factFINAL assume true; 487289#factEXIT >#72#return; 487312#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 489299#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 489298#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 489297#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 489296#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 486930#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 488328#$Ultimate##0 ~n := #in~n; 488368#L25 assume !(~n <= 0); 486728#L26 call #t~ret0 := fact(~n - 1);< 486906#$Ultimate##0 ~n := #in~n; 486904#L25 assume !(~n <= 0); 486768#L26 call #t~ret0 := fact(~n - 1);< 486788#$Ultimate##0 ~n := #in~n; 487482#L25 assume !(~n <= 0); 486812#L26 call #t~ret0 := fact(~n - 1);< 486820#$Ultimate##0 ~n := #in~n; 487484#L25 assume !(~n <= 0); 486838#L26 call #t~ret0 := fact(~n - 1);< 486846#$Ultimate##0 ~n := #in~n; 486875#L25 assume !(~n <= 0); 486860#L26 call #t~ret0 := fact(~n - 1);< 486862#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486789#factFINAL assume true; 486766#factEXIT >#66#return; 486780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487530#factFINAL assume true; 486716#factEXIT >#66#return; 486751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487382#factFINAL assume true; 487383#factEXIT >#68#return; 486596#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 486709#$Ultimate##0 ~n := #in~n; 487145#L25 assume !(~n <= 0); 486729#L26 call #t~ret0 := fact(~n - 1);< 486793#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486789#factFINAL assume true; 486766#factEXIT >#66#return; 486779#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487608#factFINAL assume true; 487316#factEXIT >#70#return; 487074#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 487081#$Ultimate##0 ~n := #in~n; 487080#L25 assume !(~n <= 0); 486811#L26 call #t~ret0 := fact(~n - 1);< 487037#$Ultimate##0 ~n := #in~n; 487093#L25 assume ~n <= 0;#res := 1; 487059#factFINAL assume true; 487030#factEXIT >#66#return; 487034#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487686#factFINAL assume true; 487648#factEXIT >#72#return; 487664#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 489672#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 489669#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 489667#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 489665#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 486935#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 488328#$Ultimate##0 ~n := #in~n; 488368#L25 assume !(~n <= 0); 486728#L26 call #t~ret0 := fact(~n - 1);< 486906#$Ultimate##0 ~n := #in~n; 486904#L25 assume !(~n <= 0); 486768#L26 call #t~ret0 := fact(~n - 1);< 486788#$Ultimate##0 ~n := #in~n; 487482#L25 assume !(~n <= 0); 486812#L26 call #t~ret0 := fact(~n - 1);< 486820#$Ultimate##0 ~n := #in~n; 487484#L25 assume !(~n <= 0); 486838#L26 call #t~ret0 := fact(~n - 1);< 486846#$Ultimate##0 ~n := #in~n; 486875#L25 assume !(~n <= 0); 486860#L26 call #t~ret0 := fact(~n - 1);< 486862#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486789#factFINAL assume true; 486766#factEXIT >#66#return; 486780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487530#factFINAL assume true; 486716#factEXIT >#66#return; 486751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487382#factFINAL assume true; 487383#factEXIT >#68#return; 486645#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 486709#$Ultimate##0 ~n := #in~n; 487145#L25 assume !(~n <= 0); 486729#L26 call #t~ret0 := fact(~n - 1);< 486793#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486868#L25 assume !(~n <= 0); 486718#L26 call #t~ret0 := fact(~n - 1);< 486861#$Ultimate##0 ~n := #in~n; 486867#L25 assume ~n <= 0;#res := 1; 486866#factFINAL assume true; 486859#factEXIT >#66#return; 486857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486848#factFINAL assume true; 486830#factEXIT >#66#return; 486829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486821#factFINAL assume true; 486799#factEXIT >#66#return; 486798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486789#factFINAL assume true; 486766#factEXIT >#66#return; 486780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 487530#factFINAL assume true; 486716#factEXIT >#66#return; 486715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 486711#factFINAL assume true; 486712#factEXIT >#70#return; 486496#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 487082#$Ultimate##0 ~n := #in~n; 487079#L25 assume ~n <= 0;#res := 1; 486545#factFINAL assume true; 486470#factEXIT >#72#return; 486540#L30-3 [2023-02-18 08:57:22,914 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:22,914 INFO L85 PathProgramCache]: Analyzing trace with hash -439016524, now seen corresponding path program 62 times [2023-02-18 08:57:22,914 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:22,914 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1936079073] [2023-02-18 08:57:22,914 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:22,914 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:22,932 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:22,933 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1920029668] [2023-02-18 08:57:22,933 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:57:22,933 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:22,933 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:22,936 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-18 08:57:22,937 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-18 08:57:23,469 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:57:23,469 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:23,477 INFO L263 TraceCheckSpWp]: Trace formula consists of 2206 conjuncts, 12 conjunts are in the unsatisfiable core [2023-02-18 08:57:23,483 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:23,518 INFO L134 CoverageAnalysis]: Checked inductivity of 62055 backedges. 32008 proven. 257 refuted. 0 times theorem prover too weak. 29790 trivial. 0 not checked. [2023-02-18 08:57:23,518 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:23,583 INFO L134 CoverageAnalysis]: Checked inductivity of 62055 backedges. 1360 proven. 1347 refuted. 0 times theorem prover too weak. 59348 trivial. 0 not checked. [2023-02-18 08:57:23,583 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:23,583 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1936079073] [2023-02-18 08:57:23,583 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:23,583 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1920029668] [2023-02-18 08:57:23,583 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1920029668] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:23,583 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:23,583 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 12] total 13 [2023-02-18 08:57:23,584 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [751839301] [2023-02-18 08:57:23,584 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:23,584 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:57:23,584 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:23,584 INFO L85 PathProgramCache]: Analyzing trace with hash 192881165, now seen corresponding path program 62 times [2023-02-18 08:57:23,584 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:23,584 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [63597141] [2023-02-18 08:57:23,584 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:23,584 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:23,596 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:23,596 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [692719484] [2023-02-18 08:57:23,596 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:57:23,596 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:23,596 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:23,598 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-18 08:57:23,599 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-18 08:57:25,200 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:57:25,200 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-18 08:57:25,200 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-18 08:57:32,167 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-18 08:57:32,225 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-18 08:57:32,412 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:57:32,412 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:57:32,412 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:57:32,412 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:57:32,412 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-18 08:57:32,412 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:57:32,412 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:57:32,413 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:57:32,413 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration74_Loop [2023-02-18 08:57:32,413 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:57:32,413 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:57:32,417 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-18 08:57:32,418 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-18 08:57:32,422 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-18 08:57:32,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-18 08:57:32,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-18 08:57:32,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-18 08:57:32,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-18 08:57:32,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-18 08:57:32,428 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:57:32,428 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-18 08:57:32,429 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:57:32,429 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:32,432 INFO L229 MonitoredProcess]: Starting monitored process 241 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-18 08:57:32,433 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (241)] Waiting until timeout for monitored process [2023-02-18 08:57:32,434 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:57:32,434 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:57:32,455 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:57:32,455 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_binomialCoefficient_#t~ret3#1=1} Honda state: {ULTIMATE.start_binomialCoefficient_#t~ret3#1=1} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-18 08:57:32,464 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (241)] Forceful destruction successful, exit code 0 [2023-02-18 08:57:32,465 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:57:32,465 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:32,467 INFO L229 MonitoredProcess]: Starting monitored process 242 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-18 08:57:32,469 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (242)] Waiting until timeout for monitored process [2023-02-18 08:57:32,470 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:57:32,470 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:57:32,495 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (242)] Forceful destruction successful, exit code 0 [2023-02-18 08:57:32,495 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:57:32,495 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:32,497 INFO L229 MonitoredProcess]: Starting monitored process 243 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-18 08:57:32,499 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (243)] Waiting until timeout for monitored process [2023-02-18 08:57:32,500 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-18 08:57:32,501 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:57:32,517 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-18 08:57:32,519 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (243)] Ended with exit code 0 [2023-02-18 08:57:32,520 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:57:32,520 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:57:32,520 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:57:32,520 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:57:32,520 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-18 08:57:32,520 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:57:32,520 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:57:32,520 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:57:32,520 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration74_Loop [2023-02-18 08:57:32,520 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:57:32,520 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:57:32,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-18 08:57:32,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-18 08:57:32,524 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-18 08:57:32,524 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-18 08:57:32,525 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-18 08:57:32,526 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-18 08:57:32,544 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-18 08:57:32,545 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-18 08:57:32,550 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:57:32,550 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-18 08:57:32,550 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:57:32,551 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:32,553 INFO L229 MonitoredProcess]: Starting monitored process 244 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-18 08:57:32,555 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (244)] Waiting until timeout for monitored process [2023-02-18 08:57:32,556 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-18 08:57:32,562 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:57:32,562 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:57:32,562 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:57:32,562 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:57:32,562 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:57:32,563 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:57:32,563 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:57:32,579 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:57:32,582 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (244)] Ended with exit code 0 [2023-02-18 08:57:32,582 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:57:32,583 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:32,584 INFO L229 MonitoredProcess]: Starting monitored process 245 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-18 08:57:32,585 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (245)] Waiting until timeout for monitored process [2023-02-18 08:57:32,587 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-18 08:57:32,593 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:57:32,593 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:57:32,593 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:57:32,593 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:57:32,593 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:57:32,593 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:57:32,593 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:57:32,594 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:57:32,597 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (245)] Ended with exit code 0 [2023-02-18 08:57:32,597 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:57:32,597 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:32,599 INFO L229 MonitoredProcess]: Starting monitored process 246 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-18 08:57:32,599 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (246)] Waiting until timeout for monitored process [2023-02-18 08:57:32,601 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-18 08:57:32,606 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:57:32,607 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:57:32,607 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:57:32,607 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:57:32,607 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:57:32,607 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:57:32,607 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:57:32,608 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:57:32,610 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (246)] Forceful destruction successful, exit code 0 [2023-02-18 08:57:32,611 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:57:32,611 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:32,612 INFO L229 MonitoredProcess]: Starting monitored process 247 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-18 08:57:32,613 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (247)] Waiting until timeout for monitored process [2023-02-18 08:57:32,615 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-18 08:57:32,621 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:57:32,621 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:57:32,621 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:57:32,621 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:57:32,621 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:57:32,621 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:57:32,621 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:57:32,630 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:57:32,633 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (247)] Ended with exit code 0 [2023-02-18 08:57:32,633 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:57:32,633 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:32,635 INFO L229 MonitoredProcess]: Starting monitored process 248 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-18 08:57:32,636 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (248)] Waiting until timeout for monitored process [2023-02-18 08:57:32,638 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-18 08:57:32,643 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:57:32,643 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:57:32,643 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:57:32,643 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:57:32,643 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:57:32,644 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:57:32,644 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:57:32,644 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:57:32,647 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (248)] Forceful destruction successful, exit code 0 [2023-02-18 08:57:32,647 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:57:32,647 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:32,649 INFO L229 MonitoredProcess]: Starting monitored process 249 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-18 08:57:32,649 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (249)] Waiting until timeout for monitored process [2023-02-18 08:57:32,652 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-18 08:57:32,657 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:57:32,658 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:57:32,658 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:57:32,658 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:57:32,658 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:57:32,664 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:57:32,664 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:57:32,671 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-18 08:57:32,675 INFO L443 ModelExtractionUtils]: Simplification made 3 calls to the SMT solver. [2023-02-18 08:57:32,675 INFO L444 ModelExtractionUtils]: 8 out of 11 variables were initially zero. Simplification set additionally 0 variables to zero. [2023-02-18 08:57:32,675 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:57:32,675 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:32,677 INFO L229 MonitoredProcess]: Starting monitored process 250 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-18 08:57:32,678 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (250)] Waiting until timeout for monitored process [2023-02-18 08:57:32,680 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-18 08:57:32,680 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-18 08:57:32,680 INFO L513 LassoAnalysis]: Proved termination. [2023-02-18 08:57:32,680 INFO L515 LassoAnalysis]: Termination argument consisting of: Ranking function f(ULTIMATE.start_main_~n~0#1) = -2*ULTIMATE.start_main_~n~0#1 + 9 Supporting invariants [] [2023-02-18 08:57:32,683 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (249)] Forceful destruction successful, exit code 0 [2023-02-18 08:57:32,683 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-18 08:57:32,691 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:33,435 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:57:33,469 INFO L263 TraceCheckSpWp]: Trace formula consists of 6658 conjuncts, 320 conjunts are in the unsatisfiable core [2023-02-18 08:57:33,480 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:34,165 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:57:34,195 INFO L263 TraceCheckSpWp]: Trace formula consists of 3753 conjuncts, 201 conjunts are in the unsatisfiable core [2023-02-18 08:57:34,201 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:34,457 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (250)] Ended with exit code 0 [2023-02-18 08:57:34,801 INFO L134 CoverageAnalysis]: Checked inductivity of 21355 backedges. 29 proven. 2231 refuted. 0 times theorem prover too weak. 19095 trivial. 0 not checked. [2023-02-18 08:57:34,802 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and without honda bouncer for loop.2 stem predicates 12 loop predicates [2023-02-18 08:57:34,802 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 4090 states and 6480 transitions. cyclomatic complexity: 2422 Second operand has 15 states, 14 states have (on average 3.9285714285714284) internal successors, (55), 14 states have internal predecessors, (55), 7 states have call successors, (15), 2 states have call predecessors, (15), 8 states have return successors, (21), 11 states have call predecessors, (21), 7 states have call successors, (21) [2023-02-18 08:57:35,257 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 4090 states and 6480 transitions. cyclomatic complexity: 2422. Second operand has 15 states, 14 states have (on average 3.9285714285714284) internal successors, (55), 14 states have internal predecessors, (55), 7 states have call successors, (15), 2 states have call predecessors, (15), 8 states have return successors, (21), 11 states have call predecessors, (21), 7 states have call successors, (21) Result 9226 states and 14377 transitions. Complement of second has 71 states. [2023-02-18 08:57:35,258 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 14 states 2 stem states 11 non-accepting loop states 1 accepting loop states [2023-02-18 08:57:35,258 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 15 states, 14 states have (on average 3.9285714285714284) internal successors, (55), 14 states have internal predecessors, (55), 7 states have call successors, (15), 2 states have call predecessors, (15), 8 states have return successors, (21), 11 states have call predecessors, (21), 7 states have call successors, (21) [2023-02-18 08:57:35,258 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 125 transitions. [2023-02-18 08:57:35,258 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 14 states and 125 transitions. Stem has 1001 letters. Loop has 563 letters. [2023-02-18 08:57:35,260 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:57:35,260 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 14 states and 125 transitions. Stem has 1564 letters. Loop has 563 letters. [2023-02-18 08:57:35,262 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:57:35,262 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 14 states and 125 transitions. Stem has 1001 letters. Loop has 1126 letters. [2023-02-18 08:57:35,264 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:57:35,264 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 9226 states and 14377 transitions. [2023-02-18 08:57:35,314 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 467 [2023-02-18 08:57:35,352 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 9226 states to 5641 states and 8884 transitions. [2023-02-18 08:57:35,352 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 154 [2023-02-18 08:57:35,353 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 162 [2023-02-18 08:57:35,353 INFO L73 IsDeterministic]: Start isDeterministic. Operand 5641 states and 8884 transitions. [2023-02-18 08:57:35,353 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:57:35,353 INFO L218 hiAutomatonCegarLoop]: Abstraction has 5641 states and 8884 transitions. [2023-02-18 08:57:35,356 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 5641 states and 8884 transitions. [2023-02-18 08:57:35,414 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 5641 to 5552. [2023-02-18 08:57:35,419 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5552 states, 3434 states have (on average 1.0436808386721026) internal successors, (3584), 3430 states have internal predecessors, (3584), 1749 states have call successors, (1765), 473 states have call predecessors, (1765), 369 states have return successors, (3282), 1648 states have call predecessors, (3282), 1749 states have call successors, (3282) [2023-02-18 08:57:35,436 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5552 states to 5552 states and 8631 transitions. [2023-02-18 08:57:35,437 INFO L240 hiAutomatonCegarLoop]: Abstraction has 5552 states and 8631 transitions. [2023-02-18 08:57:35,437 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:57:35,437 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2023-02-18 08:57:35,437 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=38, Invalid=118, Unknown=0, NotChecked=0, Total=156 [2023-02-18 08:57:35,437 INFO L87 Difference]: Start difference. First operand 5552 states and 8631 transitions. Second operand has 13 states, 12 states have (on average 5.666666666666667) internal successors, (68), 13 states have internal predecessors, (68), 10 states have call successors, (31), 2 states have call predecessors, (31), 5 states have return successors, (32), 9 states have call predecessors, (32), 10 states have call successors, (32) [2023-02-18 08:57:35,728 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:57:35,728 INFO L93 Difference]: Finished difference Result 5936 states and 9228 transitions. [2023-02-18 08:57:35,728 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 5936 states and 9228 transitions. [2023-02-18 08:57:35,754 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 467 [2023-02-18 08:57:35,787 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 5936 states to 5920 states and 9196 transitions. [2023-02-18 08:57:35,788 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 160 [2023-02-18 08:57:35,788 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 160 [2023-02-18 08:57:35,788 INFO L73 IsDeterministic]: Start isDeterministic. Operand 5920 states and 9196 transitions. [2023-02-18 08:57:35,788 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:57:35,788 INFO L218 hiAutomatonCegarLoop]: Abstraction has 5920 states and 9196 transitions. [2023-02-18 08:57:35,790 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 5920 states and 9196 transitions. [2023-02-18 08:57:35,845 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 5920 to 5826. [2023-02-18 08:57:35,849 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5826 states, 3594 states have (on average 1.0450751252086812) internal successors, (3756), 3598 states have internal predecessors, (3756), 1863 states have call successors, (1885), 473 states have call predecessors, (1885), 369 states have return successors, (3414), 1754 states have call predecessors, (3414), 1863 states have call successors, (3414) [2023-02-18 08:57:35,867 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5826 states to 5826 states and 9055 transitions. [2023-02-18 08:57:35,867 INFO L240 hiAutomatonCegarLoop]: Abstraction has 5826 states and 9055 transitions. [2023-02-18 08:57:35,868 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2023-02-18 08:57:35,868 INFO L428 stractBuchiCegarLoop]: Abstraction has 5826 states and 9055 transitions. [2023-02-18 08:57:35,868 INFO L335 stractBuchiCegarLoop]: ======== Iteration 75 ============ [2023-02-18 08:57:35,868 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 5826 states and 9055 transitions. [2023-02-18 08:57:35,879 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 467 [2023-02-18 08:57:35,879 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:57:35,879 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:57:35,882 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [157, 157, 103, 103, 103, 103, 54, 18, 17, 12, 12, 12, 12, 12, 12, 12, 11, 11, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-18 08:57:35,882 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [99, 99, 78, 78, 78, 78, 21, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:57:35,882 INFO L748 eck$LassoCheckResult]: Stem: 522079#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 522027#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; 522028#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 522049#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; 522080#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 522334#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 522333#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522319#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522320#$Ultimate##0 ~n := #in~n; 522323#L25 assume ~n <= 0;#res := 1; 522322#factFINAL assume true; 522318#factEXIT >#68#return; 522316#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522317#$Ultimate##0 ~n := #in~n; 522329#L25 assume ~n <= 0;#res := 1; 522328#factFINAL assume true; 522315#factEXIT >#70#return; 522312#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522313#$Ultimate##0 ~n := #in~n; 522332#L25 assume ~n <= 0;#res := 1; 522331#factFINAL assume true; 522311#factEXIT >#72#return; 522308#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 522303#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 522297#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 522293#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 522291#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522284#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522285#$Ultimate##0 ~n := #in~n; 522302#L25 assume !(~n <= 0); 522295#L26 call #t~ret0 := fact(~n - 1);< 522296#$Ultimate##0 ~n := #in~n; 522307#L25 assume ~n <= 0;#res := 1; 522301#factFINAL assume true; 522294#factEXIT >#66#return; 522292#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522290#factFINAL assume true; 522283#factEXIT >#74#return; 522279#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522280#$Ultimate##0 ~n := #in~n; 522289#L25 assume ~n <= 0;#res := 1; 522282#factFINAL assume true; 522278#factEXIT >#76#return; 522276#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522277#$Ultimate##0 ~n := #in~n; 522340#L25 assume !(~n <= 0); 522338#L26 call #t~ret0 := fact(~n - 1);< 522339#$Ultimate##0 ~n := #in~n; 522342#L25 assume ~n <= 0;#res := 1; 522341#factFINAL assume true; 522337#factEXIT >#66#return; 522336#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522335#factFINAL assume true; 522275#factEXIT >#78#return; 522273#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 522271#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 522270#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 522269#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 522268#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522266#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522267#$Ultimate##0 ~n := #in~n; 522324#L25 assume !(~n <= 0); 522250#L26 call #t~ret0 := fact(~n - 1);< 522255#$Ultimate##0 ~n := #in~n; 522351#L25 assume !(~n <= 0); 522252#L26 call #t~ret0 := fact(~n - 1);< 522259#$Ultimate##0 ~n := #in~n; 522349#L25 assume ~n <= 0;#res := 1; 522347#factFINAL assume true; 522346#factEXIT >#66#return; 522345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522258#factFINAL assume true; 522249#factEXIT >#66#return; 522254#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522321#factFINAL assume true; 522265#factEXIT >#74#return; 522262#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522263#$Ultimate##0 ~n := #in~n; 522344#L25 assume ~n <= 0;#res := 1; 522343#factFINAL assume true; 522261#factEXIT >#76#return; 522233#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522234#$Ultimate##0 ~n := #in~n; 522257#L25 assume !(~n <= 0); 522251#L26 call #t~ret0 := fact(~n - 1);< 522255#$Ultimate##0 ~n := #in~n; 522351#L25 assume !(~n <= 0); 522252#L26 call #t~ret0 := fact(~n - 1);< 522259#$Ultimate##0 ~n := #in~n; 522349#L25 assume ~n <= 0;#res := 1; 522347#factFINAL assume true; 522346#factEXIT >#66#return; 522345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522258#factFINAL assume true; 522249#factEXIT >#66#return; 522247#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522245#factFINAL assume true; 522232#factEXIT >#78#return; 522226#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 522225#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 522224#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 522222#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 522219#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522212#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522213#$Ultimate##0 ~n := #in~n; 522241#L25 assume !(~n <= 0); 522229#L26 call #t~ret0 := fact(~n - 1);< 522231#$Ultimate##0 ~n := #in~n; 522256#L25 assume !(~n <= 0); 522230#L26 call #t~ret0 := fact(~n - 1);< 522240#$Ultimate##0 ~n := #in~n; 522256#L25 assume !(~n <= 0); 522230#L26 call #t~ret0 := fact(~n - 1);< 522240#$Ultimate##0 ~n := #in~n; 522248#L25 assume ~n <= 0;#res := 1; 522246#factFINAL assume true; 522244#factEXIT >#66#return; 522243#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522242#factFINAL assume true; 522239#factEXIT >#66#return; 522238#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522236#factFINAL assume true; 522228#factEXIT >#66#return; 522218#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522217#factFINAL assume true; 522211#factEXIT >#74#return; 522207#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522208#$Ultimate##0 ~n := #in~n; 522216#L25 assume ~n <= 0;#res := 1; 522210#factFINAL assume true; 522206#factEXIT >#76#return; 522190#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522203#$Ultimate##0 ~n := #in~n; 522201#L25 assume !(~n <= 0); 522179#L26 call #t~ret0 := fact(~n - 1);< 522186#$Ultimate##0 ~n := #in~n; 522198#L25 assume !(~n <= 0); 522182#L26 call #t~ret0 := fact(~n - 1);< 522215#$Ultimate##0 ~n := #in~n; 522198#L25 assume !(~n <= 0); 522182#L26 call #t~ret0 := fact(~n - 1);< 522215#$Ultimate##0 ~n := #in~n; 522223#L25 assume ~n <= 0;#res := 1; 522221#factFINAL assume true; 522214#factEXIT >#66#return; 522209#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522205#factFINAL assume true; 522204#factEXIT >#66#return; 522202#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522197#factFINAL assume true; 522194#factEXIT >#66#return; 522185#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 525832#factFINAL assume true; 525822#factEXIT >#78#return; 525820#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 522030#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 525816#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 525815#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 525814#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 525813#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 525810#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 525806#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 525663#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 525670#$Ultimate##0 ~n := #in~n; 525793#L25 assume !(~n <= 0); 525760#L26 call #t~ret0 := fact(~n - 1);< 525783#$Ultimate##0 ~n := #in~n; 525847#L25 assume ~n <= 0;#res := 1; 526604#factFINAL assume true; 526563#factEXIT >#66#return; 526568#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 526686#factFINAL assume true; 526684#factEXIT >#68#return; 526676#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 525661#$Ultimate##0 ~n := #in~n; 527065#L25 assume ~n <= 0;#res := 1; 527064#factFINAL assume true; 526675#factEXIT >#70#return; 526663#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 526673#$Ultimate##0 ~n := #in~n; 526672#L25 assume !(~n <= 0); 525744#L26 call #t~ret0 := fact(~n - 1);< 526613#$Ultimate##0 ~n := #in~n; 525847#L25 assume ~n <= 0;#res := 1; 526604#factFINAL assume true; 526563#factEXIT >#66#return; 526569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 527133#factFINAL assume true; 527130#factEXIT >#72#return; 527128#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 527126#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 527124#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 527122#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 527121#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 526610#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 526615#$Ultimate##0 ~n := #in~n; 526614#L25 assume !(~n <= 0); 525773#L26 call #t~ret0 := fact(~n - 1);< 526613#$Ultimate##0 ~n := #in~n; 525847#L25 assume ~n <= 0;#res := 1; 526604#factFINAL assume true; 526563#factEXIT >#66#return; 526572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 527143#factFINAL assume true; 527142#factEXIT >#68#return; 526634#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 526915#$Ultimate##0 ~n := #in~n; 527223#L25 assume !(~n <= 0); 525750#L26 call #t~ret0 := fact(~n - 1);< 525783#$Ultimate##0 ~n := #in~n; 525847#L25 assume ~n <= 0;#res := 1; 526604#factFINAL assume true; 526563#factEXIT >#66#return; 526570#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 526941#factFINAL assume true; 526902#factEXIT >#70#return; 526655#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 526662#$Ultimate##0 ~n := #in~n; 527067#L25 assume ~n <= 0;#res := 1; 527066#factFINAL assume true; 526648#factEXIT >#72#return; 526620#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 526603#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 526602#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 526600#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 526598#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 526557#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 526561#$Ultimate##0 ~n := #in~n; 527119#L25 assume !(~n <= 0); 525770#L26 call #t~ret0 := fact(~n - 1);< 526580#$Ultimate##0 ~n := #in~n; 526349#L25 assume !(~n <= 0); 525767#L26 call #t~ret0 := fact(~n - 1);< 525801#$Ultimate##0 ~n := #in~n; 525808#L25 assume ~n <= 0;#res := 1; 525804#factFINAL assume true; 525798#factEXIT >#66#return; 525795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 525785#factFINAL assume true; 525743#factEXIT >#66#return; 525782#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 526578#factFINAL assume true; 526576#factEXIT >#74#return; 526507#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 526525#$Ultimate##0 ~n := #in~n; 526577#L25 assume !(~n <= 0); 525772#L26 call #t~ret0 := fact(~n - 1);< 525783#$Ultimate##0 ~n := #in~n; 525847#L25 assume ~n <= 0;#res := 1; 526604#factFINAL assume true; 526563#factEXIT >#66#return; 526553#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 526524#factFINAL assume true; 526491#factEXIT >#76#return; 526505#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 526518#$Ultimate##0 ~n := #in~n; 526575#L25 assume !(~n <= 0); 526565#L26 call #t~ret0 := fact(~n - 1);< 526574#$Ultimate##0 ~n := #in~n; 525847#L25 assume ~n <= 0;#res := 1; 526604#factFINAL assume true; 526563#factEXIT >#66#return; 526553#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 526524#factFINAL assume true; 526491#factEXIT >#78#return; 526482#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 526474#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 526472#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 526465#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 526440#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 525705#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 526432#$Ultimate##0 ~n := #in~n; 527025#L25 assume !(~n <= 0); 526458#L26 call #t~ret0 := fact(~n - 1);< 526718#$Ultimate##0 ~n := #in~n; 527135#L25 assume !(~n <= 0); 526446#L26 call #t~ret0 := fact(~n - 1);< 526521#$Ultimate##0 ~n := #in~n; 527135#L25 assume !(~n <= 0); 526446#L26 call #t~ret0 := fact(~n - 1);< 526521#$Ultimate##0 ~n := #in~n; 526579#L25 assume ~n <= 0;#res := 1; 526551#factFINAL assume true; 526519#factEXIT >#66#return; 526489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 526484#factFINAL assume true; 526476#factEXIT >#66#return; 526473#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 526467#factFINAL assume true; 526443#factEXIT >#66#return; 526439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 526431#factFINAL assume true; 526401#factEXIT >#74#return; 526416#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 526421#$Ultimate##0 ~n := #in~n; 527221#L25 assume !(~n <= 0); 526447#L26 call #t~ret0 := fact(~n - 1);< 526692#$Ultimate##0 ~n := #in~n; 526562#L25 assume ~n <= 0;#res := 1; 526697#factFINAL assume true; 526687#factEXIT >#66#return; 526685#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 526624#factFINAL assume true; 526616#factEXIT >#76#return; 526408#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 526601#$Ultimate##0 ~n := #in~n; 526599#L25 assume !(~n <= 0); 526448#L26 call #t~ret0 := fact(~n - 1);< 526597#$Ultimate##0 ~n := #in~n; 526595#L25 assume !(~n <= 0); 526445#L26 call #t~ret0 := fact(~n - 1);< 526581#$Ultimate##0 ~n := #in~n; 526579#L25 assume ~n <= 0;#res := 1; 526551#factFINAL assume true; 526519#factEXIT >#66#return; 526489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 526484#factFINAL assume true; 526476#factEXIT >#66#return; 526479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 527070#factFINAL assume true; 527068#factEXIT >#78#return; 527069#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 527134#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 527132#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 527131#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 527129#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 527127#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 527125#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 527123#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 525667#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 525670#$Ultimate##0 ~n := #in~n; 525793#L25 assume !(~n <= 0); 525760#L26 call #t~ret0 := fact(~n - 1);< 525783#$Ultimate##0 ~n := #in~n; 525836#L25 assume !(~n <= 0); 525769#L26 call #t~ret0 := fact(~n - 1);< 525812#$Ultimate##0 ~n := #in~n; 525808#L25 assume ~n <= 0;#res := 1; 525804#factFINAL assume true; 525798#factEXIT >#66#return; 525795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 525785#factFINAL assume true; 525743#factEXIT >#66#return; 525740#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 525672#factFINAL assume true; 525662#factEXIT >#68#return; 525653#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 525659#$Ultimate##0 ~n := #in~n; 525741#L25 assume ~n <= 0;#res := 1; 525673#factFINAL assume true; 525651#factEXIT >#70#return; 524703#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 525515#$Ultimate##0 ~n := #in~n; 525513#L25 assume !(~n <= 0); 523935#L26 call #t~ret0 := fact(~n - 1);< 523952#$Ultimate##0 ~n := #in~n; 524146#L25 assume !(~n <= 0); 524127#L26 call #t~ret0 := fact(~n - 1);< 524131#$Ultimate##0 ~n := #in~n; 524366#L25 assume ~n <= 0;#res := 1; 524362#factFINAL assume true; 524126#factEXIT >#66#return; 524124#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523967#factFINAL assume true; 523931#factEXIT >#66#return; 523945#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 525738#factFINAL assume true; 525645#factEXIT >#72#return; 525650#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 527165#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 527163#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 527161#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 527160#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 525621#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 525518#$Ultimate##0 ~n := #in~n; 525642#L25 assume !(~n <= 0); 523934#L26 call #t~ret0 := fact(~n - 1);< 523952#$Ultimate##0 ~n := #in~n; 524146#L25 assume !(~n <= 0); 524127#L26 call #t~ret0 := fact(~n - 1);< 524131#$Ultimate##0 ~n := #in~n; 524366#L25 assume ~n <= 0;#res := 1; 524362#factFINAL assume true; 524126#factEXIT >#66#return; 524124#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523967#factFINAL assume true; 523931#factEXIT >#66#return; 523944#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 525629#factFINAL assume true; 525612#factEXIT >#68#return; 524377#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 524385#$Ultimate##0 ~n := #in~n; 524383#L25 assume !(~n <= 0); 523891#L26 call #t~ret0 := fact(~n - 1);< 524193#$Ultimate##0 ~n := #in~n; 524292#L25 assume ~n <= 0;#res := 1; 524174#factFINAL assume true; 524035#factEXIT >#66#return; 524048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 525865#factFINAL assume true; 525631#factEXIT >#70#return; 524178#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 525637#$Ultimate##0 ~n := #in~n; 525895#L25 assume !(~n <= 0); 524036#L26 call #t~ret0 := fact(~n - 1);< 524053#$Ultimate##0 ~n := #in~n; 524292#L25 assume ~n <= 0;#res := 1; 524174#factFINAL assume true; 524035#factEXIT >#66#return; 524048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 525865#factFINAL assume true; 525631#factEXIT >#72#return; 525636#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 527154#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 527152#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 527150#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 527149#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 525613#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 525518#$Ultimate##0 ~n := #in~n; 525642#L25 assume !(~n <= 0); 523934#L26 call #t~ret0 := fact(~n - 1);< 523952#$Ultimate##0 ~n := #in~n; 524146#L25 assume !(~n <= 0); 524127#L26 call #t~ret0 := fact(~n - 1);< 524131#$Ultimate##0 ~n := #in~n; 524366#L25 assume ~n <= 0;#res := 1; 524362#factFINAL assume true; 524126#factEXIT >#66#return; 524124#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523967#factFINAL assume true; 523931#factEXIT >#66#return; 523944#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 525629#factFINAL assume true; 525612#factEXIT >#68#return; 523968#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 525454#$Ultimate##0 ~n := #in~n; 525453#L25 assume !(~n <= 0); 523888#L26 call #t~ret0 := fact(~n - 1);< 523905#$Ultimate##0 ~n := #in~n; 524365#L25 assume !(~n <= 0); 523932#L26 call #t~ret0 := fact(~n - 1);< 524129#$Ultimate##0 ~n := #in~n; 524366#L25 assume ~n <= 0;#res := 1; 524362#factFINAL assume true; 524126#factEXIT >#66#return; 524124#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523967#factFINAL assume true; 523931#factEXIT >#66#return; 523951#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 525583#factFINAL assume true; 525579#factEXIT >#70#return; 525568#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 525577#$Ultimate##0 ~n := #in~n; 525589#L25 assume ~n <= 0;#res := 1; 525584#factFINAL assume true; 525565#factEXIT >#72#return; 525575#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 527208#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 527206#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 527205#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 527204#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 523500#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 523638#$Ultimate##0 ~n := #in~n; 523636#L25 assume !(~n <= 0); 523463#L26 call #t~ret0 := fact(~n - 1);< 523472#$Ultimate##0 ~n := #in~n; 523553#L25 assume !(~n <= 0); 523461#L26 call #t~ret0 := fact(~n - 1);< 523513#$Ultimate##0 ~n := #in~n; 523553#L25 assume !(~n <= 0); 523461#L26 call #t~ret0 := fact(~n - 1);< 523513#$Ultimate##0 ~n := #in~n; 523548#L25 assume ~n <= 0;#res := 1; 523547#factFINAL assume true; 523510#factEXIT >#66#return; 523508#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523501#factFINAL assume true; 523474#factEXIT >#66#return; 523483#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523497#factFINAL assume true; 523488#factEXIT >#66#return; 523495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 525875#factFINAL assume true; 525557#factEXIT >#74#return; 523504#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 525460#$Ultimate##0 ~n := #in~n; 525459#L25 assume !(~n <= 0); 523478#L26 call #t~ret0 := fact(~n - 1);< 523496#$Ultimate##0 ~n := #in~n; 523549#L25 assume !(~n <= 0); 523475#L26 call #t~ret0 := fact(~n - 1);< 523512#$Ultimate##0 ~n := #in~n; 523548#L25 assume ~n <= 0;#res := 1; 523547#factFINAL assume true; 523510#factEXIT >#66#return; 523508#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523501#factFINAL assume true; 523474#factEXIT >#66#return; 523486#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 525885#factFINAL assume true; 525548#factEXIT >#76#return; 525547#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 525549#$Ultimate##0 ~n := #in~n; 525902#L25 assume !(~n <= 0); 523561#L26 call #t~ret0 := fact(~n - 1);< 523566#$Ultimate##0 ~n := #in~n; 523518#L25 assume ~n <= 0;#res := 1; 523568#factFINAL assume true; 523557#factEXIT >#66#return; 523563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 525898#factFINAL assume true; 525546#factEXIT >#78#return; 523398#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 525545#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 525543#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 525541#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 525539#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 525536#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 525537#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 523366#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522646#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522649#$Ultimate##0 ~n := #in~n; 522648#L25 assume !(~n <= 0); 522516#L26 call #t~ret0 := fact(~n - 1);< 522640#$Ultimate##0 ~n := #in~n; 522638#L25 assume !(~n <= 0); 522541#L26 call #t~ret0 := fact(~n - 1);< 522544#$Ultimate##0 ~n := #in~n; 522728#L25 assume !(~n <= 0); 522562#L26 call #t~ret0 := fact(~n - 1);< 522570#$Ultimate##0 ~n := #in~n; 523059#L25 assume !(~n <= 0); 522586#L26 call #t~ret0 := fact(~n - 1);< 522592#$Ultimate##0 ~n := #in~n; 522623#L25 assume !(~n <= 0); 522618#L26 call #t~ret0 := fact(~n - 1);< 522621#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522545#factFINAL assume true; 522536#factEXIT >#66#return; 522534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522535#factFINAL assume true; 522503#factEXIT >#66#return; 522523#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523178#factFINAL assume true; 523171#factEXIT >#68#return; 522920#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522925#$Ultimate##0 ~n := #in~n; 522927#L25 assume ~n <= 0;#res := 1; 522926#factFINAL assume true; 522914#factEXIT >#70#return; 522879#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522911#$Ultimate##0 ~n := #in~n; 522878#L25 assume !(~n <= 0); 522513#L26 call #t~ret0 := fact(~n - 1);< 522533#$Ultimate##0 ~n := #in~n; 522877#L25 assume !(~n <= 0); 522511#L26 call #t~ret0 := fact(~n - 1);< 522527#$Ultimate##0 ~n := #in~n; 522727#L25 assume !(~n <= 0); 522510#L26 call #t~ret0 := fact(~n - 1);< 522571#$Ultimate##0 ~n := #in~n; 523051#L25 assume !(~n <= 0); 522519#L26 call #t~ret0 := fact(~n - 1);< 522591#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522545#factFINAL assume true; 522536#factEXIT >#66#return; 522534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522535#factFINAL assume true; 522503#factEXIT >#66#return; 522526#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522912#factFINAL assume true; 522901#factEXIT >#72#return; 522902#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 523352#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 523350#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 523345#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 523340#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522673#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522724#$Ultimate##0 ~n := #in~n; 522650#L25 assume !(~n <= 0); 522505#L26 call #t~ret0 := fact(~n - 1);< 522639#$Ultimate##0 ~n := #in~n; 522637#L25 assume !(~n <= 0); 522537#L26 call #t~ret0 := fact(~n - 1);< 522550#$Ultimate##0 ~n := #in~n; 522636#L25 assume !(~n <= 0); 522564#L26 call #t~ret0 := fact(~n - 1);< 522582#$Ultimate##0 ~n := #in~n; 522635#L25 assume !(~n <= 0); 522585#L26 call #t~ret0 := fact(~n - 1);< 522625#$Ultimate##0 ~n := #in~n; 522623#L25 assume !(~n <= 0); 522618#L26 call #t~ret0 := fact(~n - 1);< 522621#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522545#factFINAL assume true; 522536#factEXIT >#66#return; 522534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522535#factFINAL assume true; 522503#factEXIT >#66#return; 522522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522811#factFINAL assume true; 522812#factEXIT >#68#return; 522150#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522853#$Ultimate##0 ~n := #in~n; 522865#L25 assume !(~n <= 0); 522859#L26 call #t~ret0 := fact(~n - 1);< 522863#$Ultimate##0 ~n := #in~n; 522869#L25 assume ~n <= 0;#res := 1; 522864#factFINAL assume true; 522858#factEXIT >#66#return; 522857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522854#factFINAL assume true; 522838#factEXIT >#70#return; 522573#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522631#$Ultimate##0 ~n := #in~n; 522629#L25 assume !(~n <= 0); 522539#L26 call #t~ret0 := fact(~n - 1);< 522577#$Ultimate##0 ~n := #in~n; 523053#L25 assume !(~n <= 0); 522563#L26 call #t~ret0 := fact(~n - 1);< 522590#$Ultimate##0 ~n := #in~n; 522628#L25 assume !(~n <= 0); 522587#L26 call #t~ret0 := fact(~n - 1);< 522592#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522568#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522950#factFINAL assume true; 522932#factEXIT >#72#return; 522826#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 523332#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 523328#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 523324#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 523319#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522687#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522724#$Ultimate##0 ~n := #in~n; 522650#L25 assume !(~n <= 0); 522505#L26 call #t~ret0 := fact(~n - 1);< 522639#$Ultimate##0 ~n := #in~n; 522637#L25 assume !(~n <= 0); 522537#L26 call #t~ret0 := fact(~n - 1);< 522550#$Ultimate##0 ~n := #in~n; 522636#L25 assume !(~n <= 0); 522564#L26 call #t~ret0 := fact(~n - 1);< 522582#$Ultimate##0 ~n := #in~n; 522635#L25 assume !(~n <= 0); 522585#L26 call #t~ret0 := fact(~n - 1);< 522625#$Ultimate##0 ~n := #in~n; 522623#L25 assume !(~n <= 0); 522618#L26 call #t~ret0 := fact(~n - 1);< 522621#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522545#factFINAL assume true; 522536#factEXIT >#66#return; 522534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522535#factFINAL assume true; 522503#factEXIT >#66#return; 522522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522811#factFINAL assume true; 522812#factEXIT >#68#return; 522444#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522498#$Ultimate##0 ~n := #in~n; 523060#L25 assume !(~n <= 0); 522520#L26 call #t~ret0 := fact(~n - 1);< 522591#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522589#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522763#factFINAL assume true; 522732#factEXIT >#70#return; 522581#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522624#$Ultimate##0 ~n := #in~n; 522622#L25 assume !(~n <= 0); 522567#L26 call #t~ret0 := fact(~n - 1);< 522582#$Ultimate##0 ~n := #in~n; 522635#L25 assume !(~n <= 0); 522585#L26 call #t~ret0 := fact(~n - 1);< 522625#$Ultimate##0 ~n := #in~n; 522623#L25 assume !(~n <= 0); 522618#L26 call #t~ret0 := fact(~n - 1);< 522621#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522568#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522950#factFINAL assume true; 522932#factEXIT >#72#return; 522948#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 523305#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 523304#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 523303#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 523302#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522682#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522724#$Ultimate##0 ~n := #in~n; 522650#L25 assume !(~n <= 0); 522505#L26 call #t~ret0 := fact(~n - 1);< 522639#$Ultimate##0 ~n := #in~n; 522637#L25 assume !(~n <= 0); 522537#L26 call #t~ret0 := fact(~n - 1);< 522550#$Ultimate##0 ~n := #in~n; 522636#L25 assume !(~n <= 0); 522564#L26 call #t~ret0 := fact(~n - 1);< 522582#$Ultimate##0 ~n := #in~n; 522635#L25 assume !(~n <= 0); 522585#L26 call #t~ret0 := fact(~n - 1);< 522625#$Ultimate##0 ~n := #in~n; 522623#L25 assume !(~n <= 0); 522618#L26 call #t~ret0 := fact(~n - 1);< 522621#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522545#factFINAL assume true; 522536#factEXIT >#66#return; 522534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522535#factFINAL assume true; 522503#factEXIT >#66#return; 522522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522811#factFINAL assume true; 522812#factEXIT >#68#return; 522424#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522498#$Ultimate##0 ~n := #in~n; 523060#L25 assume !(~n <= 0); 522520#L26 call #t~ret0 := fact(~n - 1);< 522591#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522568#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522950#factFINAL assume true; 522932#factEXIT >#70#return; 522595#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522632#$Ultimate##0 ~n := #in~n; 522615#L25 assume !(~n <= 0); 522565#L26 call #t~ret0 := fact(~n - 1);< 522607#$Ultimate##0 ~n := #in~n; 522628#L25 assume !(~n <= 0); 522587#L26 call #t~ret0 := fact(~n - 1);< 522592#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522589#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522763#factFINAL assume true; 522732#factEXIT >#72#return; 522755#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 523293#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 523292#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 523291#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 523290#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522684#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522724#$Ultimate##0 ~n := #in~n; 522650#L25 assume !(~n <= 0); 522505#L26 call #t~ret0 := fact(~n - 1);< 522639#$Ultimate##0 ~n := #in~n; 522637#L25 assume !(~n <= 0); 522537#L26 call #t~ret0 := fact(~n - 1);< 522550#$Ultimate##0 ~n := #in~n; 522636#L25 assume !(~n <= 0); 522564#L26 call #t~ret0 := fact(~n - 1);< 522582#$Ultimate##0 ~n := #in~n; 522635#L25 assume !(~n <= 0); 522585#L26 call #t~ret0 := fact(~n - 1);< 522625#$Ultimate##0 ~n := #in~n; 522623#L25 assume !(~n <= 0); 522618#L26 call #t~ret0 := fact(~n - 1);< 522621#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522545#factFINAL assume true; 522536#factEXIT >#66#return; 522534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522535#factFINAL assume true; 522503#factEXIT >#66#return; 522522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522811#factFINAL assume true; 522812#factEXIT >#68#return; 522430#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522498#$Ultimate##0 ~n := #in~n; 523060#L25 assume !(~n <= 0); 522520#L26 call #t~ret0 := fact(~n - 1);< 522591#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522545#factFINAL assume true; 522536#factEXIT >#66#return; 522542#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522837#factFINAL assume true; 522825#factEXIT >#70#return; 522601#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522632#$Ultimate##0 ~n := #in~n; 522615#L25 assume !(~n <= 0); 522565#L26 call #t~ret0 := fact(~n - 1);< 522607#$Ultimate##0 ~n := #in~n; 522869#L25 assume ~n <= 0;#res := 1; 522864#factFINAL assume true; 522858#factEXIT >#66#return; 522857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522854#factFINAL assume true; 522838#factEXIT >#72#return; 522845#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 523094#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 523092#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 523090#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 523089#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522667#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522724#$Ultimate##0 ~n := #in~n; 522650#L25 assume !(~n <= 0); 522505#L26 call #t~ret0 := fact(~n - 1);< 522639#$Ultimate##0 ~n := #in~n; 522637#L25 assume !(~n <= 0); 522537#L26 call #t~ret0 := fact(~n - 1);< 522550#$Ultimate##0 ~n := #in~n; 522636#L25 assume !(~n <= 0); 522564#L26 call #t~ret0 := fact(~n - 1);< 522582#$Ultimate##0 ~n := #in~n; 522635#L25 assume !(~n <= 0); 522585#L26 call #t~ret0 := fact(~n - 1);< 522625#$Ultimate##0 ~n := #in~n; 522623#L25 assume !(~n <= 0); 522618#L26 call #t~ret0 := fact(~n - 1);< 522621#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522545#factFINAL assume true; 522536#factEXIT >#66#return; 522534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522535#factFINAL assume true; 522503#factEXIT >#66#return; 522522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522811#factFINAL assume true; 522812#factEXIT >#68#return; 522465#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522498#$Ultimate##0 ~n := #in~n; 523060#L25 assume !(~n <= 0); 522520#L26 call #t~ret0 := fact(~n - 1);< 522591#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522545#factFINAL assume true; 522536#factEXIT >#66#return; 522534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522535#factFINAL assume true; 522503#factEXIT >#66#return; 522502#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522499#factFINAL assume true; 522500#factEXIT >#70#return; 522111#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522630#$Ultimate##0 ~n := #in~n; 522614#L25 assume ~n <= 0;#res := 1; 522156#factFINAL assume true; 522083#factEXIT >#72#return; 522045#L30-3 [2023-02-18 08:57:35,882 INFO L750 eck$LassoCheckResult]: Loop: 522045#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 522046#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 522058#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 522077#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 523074#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522987#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 521988#$Ultimate##0 ~n := #in~n; 523012#L25 assume !(~n <= 0); 523008#L26 call #t~ret0 := fact(~n - 1);< 523009#$Ultimate##0 ~n := #in~n; 523040#L25 assume !(~n <= 0); 522999#L26 call #t~ret0 := fact(~n - 1);< 523011#$Ultimate##0 ~n := #in~n; 523048#L25 assume !(~n <= 0); 522998#L26 call #t~ret0 := fact(~n - 1);< 523018#$Ultimate##0 ~n := #in~n; 523038#L25 assume !(~n <= 0); 522996#L26 call #t~ret0 := fact(~n - 1);< 523037#$Ultimate##0 ~n := #in~n; 523042#L25 assume !(~n <= 0); 523001#L26 call #t~ret0 := fact(~n - 1);< 523021#$Ultimate##0 ~n := #in~n; 523042#L25 assume !(~n <= 0); 523001#L26 call #t~ret0 := fact(~n - 1);< 523021#$Ultimate##0 ~n := #in~n; 523046#L25 assume ~n <= 0;#res := 1; 523045#factFINAL assume true; 523044#factEXIT >#66#return; 523041#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523020#factFINAL assume true; 523005#factEXIT >#66#return; 523006#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523039#factFINAL assume true; 523035#factEXIT >#66#return; 523034#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523033#factFINAL assume true; 523016#factEXIT >#66#return; 523014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523010#factFINAL assume true; 522995#factEXIT >#66#return; 523002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523031#factFINAL assume true; 523007#factEXIT >#66#return; 522994#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522991#factFINAL assume true; 522985#factEXIT >#74#return; 522982#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 523061#$Ultimate##0 ~n := #in~n; 523070#L25 assume !(~n <= 0); 522997#L26 call #t~ret0 := fact(~n - 1);< 523003#$Ultimate##0 ~n := #in~n; 523042#L25 assume !(~n <= 0); 523001#L26 call #t~ret0 := fact(~n - 1);< 523021#$Ultimate##0 ~n := #in~n; 523042#L25 assume !(~n <= 0); 523001#L26 call #t~ret0 := fact(~n - 1);< 523021#$Ultimate##0 ~n := #in~n; 523042#L25 assume !(~n <= 0); 523001#L26 call #t~ret0 := fact(~n - 1);< 523021#$Ultimate##0 ~n := #in~n; 523042#L25 assume !(~n <= 0); 523001#L26 call #t~ret0 := fact(~n - 1);< 523021#$Ultimate##0 ~n := #in~n; 523046#L25 assume ~n <= 0;#res := 1; 523045#factFINAL assume true; 523044#factEXIT >#66#return; 523041#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523020#factFINAL assume true; 523005#factEXIT >#66#return; 523006#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523039#factFINAL assume true; 523035#factEXIT >#66#return; 523034#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523033#factFINAL assume true; 523016#factEXIT >#66#return; 523014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523010#factFINAL assume true; 522995#factEXIT >#66#return; 522993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522992#factFINAL assume true; 522980#factEXIT >#76#return; 522015#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522072#$Ultimate##0 ~n := #in~n; 522064#L25 assume !(~n <= 0); 521992#L26 call #t~ret0 := fact(~n - 1);< 522033#$Ultimate##0 ~n := #in~n; 523078#L25 assume ~n <= 0;#res := 1; 523076#factFINAL assume true; 521991#factEXIT >#66#return; 521994#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522013#factFINAL assume true; 522016#factEXIT >#78#return; 522977#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 522975#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 522973#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 522971#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 522969#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 522967#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 522965#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 522963#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522530#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522024#$Ultimate##0 ~n := #in~n; 522889#L25 assume !(~n <= 0); 522515#L26 call #t~ret0 := fact(~n - 1);< 522533#$Ultimate##0 ~n := #in~n; 522877#L25 assume !(~n <= 0); 522511#L26 call #t~ret0 := fact(~n - 1);< 522527#$Ultimate##0 ~n := #in~n; 522727#L25 assume !(~n <= 0); 522510#L26 call #t~ret0 := fact(~n - 1);< 522571#$Ultimate##0 ~n := #in~n; 523051#L25 assume !(~n <= 0); 522519#L26 call #t~ret0 := fact(~n - 1);< 522591#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522545#factFINAL assume true; 522536#factEXIT >#66#return; 522534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522535#factFINAL assume true; 522503#factEXIT >#66#return; 522523#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523178#factFINAL assume true; 523171#factEXIT >#68#return; 522917#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522925#$Ultimate##0 ~n := #in~n; 522927#L25 assume ~n <= 0;#res := 1; 522926#factFINAL assume true; 522914#factEXIT >#70#return; 522881#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522911#$Ultimate##0 ~n := #in~n; 522878#L25 assume !(~n <= 0); 522513#L26 call #t~ret0 := fact(~n - 1);< 522533#$Ultimate##0 ~n := #in~n; 522877#L25 assume !(~n <= 0); 522511#L26 call #t~ret0 := fact(~n - 1);< 522527#$Ultimate##0 ~n := #in~n; 522727#L25 assume !(~n <= 0); 522510#L26 call #t~ret0 := fact(~n - 1);< 522571#$Ultimate##0 ~n := #in~n; 523051#L25 assume !(~n <= 0); 522519#L26 call #t~ret0 := fact(~n - 1);< 522591#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522545#factFINAL assume true; 522536#factEXIT >#66#return; 522534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522535#factFINAL assume true; 522503#factEXIT >#66#return; 522526#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522912#factFINAL assume true; 522901#factEXIT >#72#return; 522900#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 522899#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 522898#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 522896#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 522894#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522775#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522810#$Ultimate##0 ~n := #in~n; 522818#L25 assume !(~n <= 0); 522512#L26 call #t~ret0 := fact(~n - 1);< 522533#$Ultimate##0 ~n := #in~n; 522877#L25 assume !(~n <= 0); 522511#L26 call #t~ret0 := fact(~n - 1);< 522527#$Ultimate##0 ~n := #in~n; 522727#L25 assume !(~n <= 0); 522510#L26 call #t~ret0 := fact(~n - 1);< 522571#$Ultimate##0 ~n := #in~n; 523051#L25 assume !(~n <= 0); 522519#L26 call #t~ret0 := fact(~n - 1);< 522591#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522545#factFINAL assume true; 522536#factEXIT >#66#return; 522534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522535#factFINAL assume true; 522503#factEXIT >#66#return; 522525#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522528#factFINAL assume true; 522529#factEXIT >#66#return; 522719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522815#factFINAL assume true; 522765#factEXIT >#68#return; 522085#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522853#$Ultimate##0 ~n := #in~n; 522865#L25 assume !(~n <= 0); 522859#L26 call #t~ret0 := fact(~n - 1);< 522863#$Ultimate##0 ~n := #in~n; 522869#L25 assume ~n <= 0;#res := 1; 522864#factFINAL assume true; 522858#factEXIT >#66#return; 522857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522854#factFINAL assume true; 522838#factEXIT >#70#return; 522428#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522501#$Ultimate##0 ~n := #in~n; 522870#L25 assume !(~n <= 0); 522506#L26 call #t~ret0 := fact(~n - 1);< 522527#$Ultimate##0 ~n := #in~n; 522727#L25 assume !(~n <= 0); 522510#L26 call #t~ret0 := fact(~n - 1);< 522571#$Ultimate##0 ~n := #in~n; 523051#L25 assume !(~n <= 0); 522519#L26 call #t~ret0 := fact(~n - 1);< 522591#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522545#factFINAL assume true; 522536#factEXIT >#66#return; 522534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522535#factFINAL assume true; 522503#factEXIT >#66#return; 522502#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522499#factFINAL assume true; 522500#factEXIT >#72#return; 522494#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 522822#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 522819#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 522817#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 522814#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522797#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522810#$Ultimate##0 ~n := #in~n; 522818#L25 assume !(~n <= 0); 522512#L26 call #t~ret0 := fact(~n - 1);< 522533#$Ultimate##0 ~n := #in~n; 522877#L25 assume !(~n <= 0); 522511#L26 call #t~ret0 := fact(~n - 1);< 522527#$Ultimate##0 ~n := #in~n; 522727#L25 assume !(~n <= 0); 522510#L26 call #t~ret0 := fact(~n - 1);< 522571#$Ultimate##0 ~n := #in~n; 523051#L25 assume !(~n <= 0); 522519#L26 call #t~ret0 := fact(~n - 1);< 522591#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522545#factFINAL assume true; 522536#factEXIT >#66#return; 522534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522535#factFINAL assume true; 522503#factEXIT >#66#return; 522525#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522528#factFINAL assume true; 522529#factEXIT >#66#return; 522719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522815#factFINAL assume true; 522765#factEXIT >#68#return; 522094#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522375#$Ultimate##0 ~n := #in~n; 522866#L25 assume !(~n <= 0); 522518#L26 call #t~ret0 := fact(~n - 1);< 522559#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522589#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522763#factFINAL assume true; 522732#factEXIT >#70#return; 522458#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522730#$Ultimate##0 ~n := #in~n; 522729#L25 assume !(~n <= 0); 522504#L26 call #t~ret0 := fact(~n - 1);< 522571#$Ultimate##0 ~n := #in~n; 523051#L25 assume !(~n <= 0); 522519#L26 call #t~ret0 := fact(~n - 1);< 522591#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522545#factFINAL assume true; 522536#factEXIT >#66#return; 522534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522535#factFINAL assume true; 522503#factEXIT >#66#return; 522502#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522499#factFINAL assume true; 522500#factEXIT >#72#return; 522482#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 522953#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 522952#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 522951#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 522949#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522799#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522810#$Ultimate##0 ~n := #in~n; 522818#L25 assume !(~n <= 0); 522512#L26 call #t~ret0 := fact(~n - 1);< 522533#$Ultimate##0 ~n := #in~n; 522877#L25 assume !(~n <= 0); 522511#L26 call #t~ret0 := fact(~n - 1);< 522527#$Ultimate##0 ~n := #in~n; 522727#L25 assume !(~n <= 0); 522510#L26 call #t~ret0 := fact(~n - 1);< 522571#$Ultimate##0 ~n := #in~n; 523051#L25 assume !(~n <= 0); 522519#L26 call #t~ret0 := fact(~n - 1);< 522591#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522545#factFINAL assume true; 522536#factEXIT >#66#return; 522534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522535#factFINAL assume true; 522503#factEXIT >#66#return; 522522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522811#factFINAL assume true; 522812#factEXIT >#68#return; 522114#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522375#$Ultimate##0 ~n := #in~n; 522866#L25 assume !(~n <= 0); 522518#L26 call #t~ret0 := fact(~n - 1);< 522559#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522568#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522950#factFINAL assume true; 522932#factEXIT >#70#return; 522452#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522856#$Ultimate##0 ~n := #in~n; 522867#L25 assume !(~n <= 0); 522518#L26 call #t~ret0 := fact(~n - 1);< 522559#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522589#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522763#factFINAL assume true; 522732#factEXIT >#72#return; 522751#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 522931#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 522930#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 522929#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 522928#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522780#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522810#$Ultimate##0 ~n := #in~n; 522818#L25 assume !(~n <= 0); 522512#L26 call #t~ret0 := fact(~n - 1);< 522533#$Ultimate##0 ~n := #in~n; 522877#L25 assume !(~n <= 0); 522511#L26 call #t~ret0 := fact(~n - 1);< 522527#$Ultimate##0 ~n := #in~n; 522727#L25 assume !(~n <= 0); 522510#L26 call #t~ret0 := fact(~n - 1);< 522571#$Ultimate##0 ~n := #in~n; 523051#L25 assume !(~n <= 0); 522519#L26 call #t~ret0 := fact(~n - 1);< 522591#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522545#factFINAL assume true; 522536#factEXIT >#66#return; 522534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522535#factFINAL assume true; 522503#factEXIT >#66#return; 522522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522811#factFINAL assume true; 522812#factEXIT >#68#return; 522106#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522375#$Ultimate##0 ~n := #in~n; 522866#L25 assume !(~n <= 0); 522518#L26 call #t~ret0 := fact(~n - 1);< 522559#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522545#factFINAL assume true; 522536#factEXIT >#66#return; 522542#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522837#factFINAL assume true; 522825#factEXIT >#70#return; 522419#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522856#$Ultimate##0 ~n := #in~n; 522867#L25 assume !(~n <= 0); 522518#L26 call #t~ret0 := fact(~n - 1);< 522559#$Ultimate##0 ~n := #in~n; 522869#L25 assume ~n <= 0;#res := 1; 522864#factFINAL assume true; 522858#factEXIT >#66#return; 522857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522854#factFINAL assume true; 522838#factEXIT >#72#return; 522843#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 522897#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 522895#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 522893#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 522892#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522803#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522810#$Ultimate##0 ~n := #in~n; 522818#L25 assume !(~n <= 0); 522512#L26 call #t~ret0 := fact(~n - 1);< 522533#$Ultimate##0 ~n := #in~n; 522877#L25 assume !(~n <= 0); 522511#L26 call #t~ret0 := fact(~n - 1);< 522527#$Ultimate##0 ~n := #in~n; 522727#L25 assume !(~n <= 0); 522510#L26 call #t~ret0 := fact(~n - 1);< 522571#$Ultimate##0 ~n := #in~n; 523051#L25 assume !(~n <= 0); 522519#L26 call #t~ret0 := fact(~n - 1);< 522591#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522545#factFINAL assume true; 522536#factEXIT >#66#return; 522534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522535#factFINAL assume true; 522503#factEXIT >#66#return; 522525#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522528#factFINAL assume true; 522529#factEXIT >#66#return; 522719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522815#factFINAL assume true; 522765#factEXIT >#68#return; 522140#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522375#$Ultimate##0 ~n := #in~n; 522866#L25 assume !(~n <= 0); 522518#L26 call #t~ret0 := fact(~n - 1);< 522559#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522627#L25 assume !(~n <= 0); 522517#L26 call #t~ret0 := fact(~n - 1);< 522620#$Ultimate##0 ~n := #in~n; 522634#L25 assume ~n <= 0;#res := 1; 522633#factFINAL assume true; 522617#factEXIT >#66#return; 522616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522594#factFINAL assume true; 522584#factEXIT >#66#return; 522583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522572#factFINAL assume true; 522561#factEXIT >#66#return; 522560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522545#factFINAL assume true; 522536#factEXIT >#66#return; 522534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522535#factFINAL assume true; 522503#factEXIT >#66#return; 522502#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522499#factFINAL assume true; 522500#factEXIT >#70#return; 522151#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522375#$Ultimate##0 ~n := #in~n; 522866#L25 assume ~n <= 0;#res := 1; 522156#factFINAL assume true; 522083#factEXIT >#72#return; 522045#L30-3 [2023-02-18 08:57:35,883 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:35,883 INFO L85 PathProgramCache]: Analyzing trace with hash 654545780, now seen corresponding path program 63 times [2023-02-18 08:57:35,883 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:35,883 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1348731681] [2023-02-18 08:57:35,883 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:35,883 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:35,900 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:35,901 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [434632787] [2023-02-18 08:57:35,901 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:57:35,901 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:35,901 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:35,903 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-18 08:57:35,904 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-18 08:57:36,372 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 11 check-sat command(s) [2023-02-18 08:57:36,373 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:36,377 INFO L263 TraceCheckSpWp]: Trace formula consists of 819 conjuncts, 26 conjunts are in the unsatisfiable core [2023-02-18 08:57:36,382 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:36,482 INFO L134 CoverageAnalysis]: Checked inductivity of 60381 backedges. 13213 proven. 1205 refuted. 0 times theorem prover too weak. 45963 trivial. 0 not checked. [2023-02-18 08:57:36,482 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:36,742 INFO L134 CoverageAnalysis]: Checked inductivity of 60381 backedges. 3836 proven. 1704 refuted. 0 times theorem prover too weak. 54841 trivial. 0 not checked. [2023-02-18 08:57:36,743 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:36,743 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1348731681] [2023-02-18 08:57:36,743 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:36,743 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [434632787] [2023-02-18 08:57:36,745 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [434632787] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:36,745 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:36,745 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 25] total 33 [2023-02-18 08:57:36,745 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1371718813] [2023-02-18 08:57:36,745 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:36,746 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:57:36,746 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:36,746 INFO L85 PathProgramCache]: Analyzing trace with hash -1830201523, now seen corresponding path program 63 times [2023-02-18 08:57:36,746 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:36,746 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [824277043] [2023-02-18 08:57:36,746 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:36,746 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:36,759 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:36,759 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1568305013] [2023-02-18 08:57:36,760 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:57:36,760 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:36,760 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:36,762 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-18 08:57:36,762 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-18 08:57:37,212 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 13 check-sat command(s) [2023-02-18 08:57:37,212 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:37,215 INFO L263 TraceCheckSpWp]: Trace formula consists of 782 conjuncts, 25 conjunts are in the unsatisfiable core [2023-02-18 08:57:37,219 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:37,291 INFO L134 CoverageAnalysis]: Checked inductivity of 25555 backedges. 1615 proven. 952 refuted. 0 times theorem prover too weak. 22988 trivial. 0 not checked. [2023-02-18 08:57:37,291 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:37,468 INFO L134 CoverageAnalysis]: Checked inductivity of 25555 backedges. 1615 proven. 968 refuted. 0 times theorem prover too weak. 22972 trivial. 0 not checked. [2023-02-18 08:57:37,468 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:37,468 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [824277043] [2023-02-18 08:57:37,468 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:37,469 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1568305013] [2023-02-18 08:57:37,469 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1568305013] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:37,469 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:37,469 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 19] total 24 [2023-02-18 08:57:37,469 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [125682264] [2023-02-18 08:57:37,469 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:37,469 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:57:37,469 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:57:37,469 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 25 interpolants. [2023-02-18 08:57:37,470 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=93, Invalid=507, Unknown=0, NotChecked=0, Total=600 [2023-02-18 08:57:37,470 INFO L87 Difference]: Start difference. First operand 5826 states and 9055 transitions. cyclomatic complexity: 3274 Second operand has 25 states, 20 states have (on average 3.35) internal successors, (67), 24 states have internal predecessors, (67), 14 states have call successors, (34), 1 states have call predecessors, (34), 7 states have return successors, (37), 15 states have call predecessors, (37), 14 states have call successors, (37) [2023-02-18 08:57:38,506 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:57:38,507 INFO L93 Difference]: Finished difference Result 7046 states and 11144 transitions. [2023-02-18 08:57:38,507 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 7046 states and 11144 transitions. [2023-02-18 08:57:38,545 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 839 [2023-02-18 08:57:38,590 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 7046 states to 6885 states and 10931 transitions. [2023-02-18 08:57:38,591 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 184 [2023-02-18 08:57:38,591 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 184 [2023-02-18 08:57:38,591 INFO L73 IsDeterministic]: Start isDeterministic. Operand 6885 states and 10931 transitions. [2023-02-18 08:57:38,592 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:57:38,592 INFO L218 hiAutomatonCegarLoop]: Abstraction has 6885 states and 10931 transitions. [2023-02-18 08:57:38,594 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 6885 states and 10931 transitions. [2023-02-18 08:57:38,680 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 6885 to 6268. [2023-02-18 08:57:38,684 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6268 states, 3898 states have (on average 1.0415597742432017) internal successors, (4060), 3902 states have internal predecessors, (4060), 2001 states have call successors, (2023), 475 states have call predecessors, (2023), 369 states have return successors, (3699), 1890 states have call predecessors, (3699), 2001 states have call successors, (3699) [2023-02-18 08:57:38,706 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6268 states to 6268 states and 9782 transitions. [2023-02-18 08:57:38,706 INFO L240 hiAutomatonCegarLoop]: Abstraction has 6268 states and 9782 transitions. [2023-02-18 08:57:38,706 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 25 states. [2023-02-18 08:57:38,707 INFO L428 stractBuchiCegarLoop]: Abstraction has 6268 states and 9782 transitions. [2023-02-18 08:57:38,707 INFO L335 stractBuchiCegarLoop]: ======== Iteration 76 ============ [2023-02-18 08:57:38,707 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 6268 states and 9782 transitions. [2023-02-18 08:57:38,724 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 653 [2023-02-18 08:57:38,724 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:57:38,724 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:57:38,728 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [157, 157, 103, 103, 103, 103, 54, 18, 17, 12, 12, 12, 12, 12, 12, 12, 11, 11, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-18 08:57:38,728 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [98, 98, 77, 77, 77, 77, 21, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:57:38,729 INFO L748 eck$LassoCheckResult]: Stem: 544689#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 544570#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; 544571#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 544596#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; 544585#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 544586#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 550149#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 544564#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 544565#$Ultimate##0 ~n := #in~n; 549994#L25 assume ~n <= 0;#res := 1; 549993#factFINAL assume true; 549988#factEXIT >#68#return; 544619#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544620#$Ultimate##0 ~n := #in~n; 550408#L25 assume ~n <= 0;#res := 1; 550406#factFINAL assume true; 550401#factEXIT >#70#return; 544560#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544561#$Ultimate##0 ~n := #in~n; 550544#L25 assume ~n <= 0;#res := 1; 550543#factFINAL assume true; 550542#factEXIT >#72#return; 550540#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 550536#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 550534#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 550532#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 550531#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 550529#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 550530#$Ultimate##0 ~n := #in~n; 550541#L25 assume !(~n <= 0); 550538#L26 call #t~ret0 := fact(~n - 1);< 550539#$Ultimate##0 ~n := #in~n; 550546#L25 assume ~n <= 0;#res := 1; 550545#factFINAL assume true; 550537#factEXIT >#66#return; 550535#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 550533#factFINAL assume true; 550528#factEXIT >#74#return; 544685#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544686#$Ultimate##0 ~n := #in~n; 550495#L25 assume ~n <= 0;#res := 1; 550494#factFINAL assume true; 550493#factEXIT >#76#return; 550490#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 550491#$Ultimate##0 ~n := #in~n; 550501#L25 assume !(~n <= 0); 550499#L26 call #t~ret0 := fact(~n - 1);< 550500#$Ultimate##0 ~n := #in~n; 550503#L25 assume ~n <= 0;#res := 1; 550502#factFINAL assume true; 550498#factEXIT >#66#return; 550497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 550496#factFINAL assume true; 550489#factEXIT >#78#return; 550487#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 550486#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 550485#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 550484#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 550483#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 550481#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 550482#$Ultimate##0 ~n := #in~n; 550647#L25 assume !(~n <= 0); 550515#L26 call #t~ret0 := fact(~n - 1);< 550520#$Ultimate##0 ~n := #in~n; 550551#L25 assume !(~n <= 0); 550517#L26 call #t~ret0 := fact(~n - 1);< 550550#$Ultimate##0 ~n := #in~n; 550553#L25 assume ~n <= 0;#res := 1; 550552#factFINAL assume true; 550549#factEXIT >#66#return; 550548#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 550524#factFINAL assume true; 550514#factEXIT >#66#return; 550518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 550623#factFINAL assume true; 550480#factEXIT >#74#return; 550477#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 550478#$Ultimate##0 ~n := #in~n; 550492#L25 assume ~n <= 0;#res := 1; 550488#factFINAL assume true; 550476#factEXIT >#76#return; 550470#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 550471#$Ultimate##0 ~n := #in~n; 550522#L25 assume !(~n <= 0); 550516#L26 call #t~ret0 := fact(~n - 1);< 550520#$Ultimate##0 ~n := #in~n; 550551#L25 assume !(~n <= 0); 550517#L26 call #t~ret0 := fact(~n - 1);< 550550#$Ultimate##0 ~n := #in~n; 550553#L25 assume ~n <= 0;#res := 1; 550552#factFINAL assume true; 550549#factEXIT >#66#return; 550548#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 550524#factFINAL assume true; 550514#factEXIT >#66#return; 550513#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 550511#factFINAL assume true; 550469#factEXIT >#78#return; 550467#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 550465#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 550464#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 550463#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 550461#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 550459#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 550460#$Ultimate##0 ~n := #in~n; 550479#L25 assume !(~n <= 0); 550474#L26 call #t~ret0 := fact(~n - 1);< 550475#$Ultimate##0 ~n := #in~n; 550508#L25 assume !(~n <= 0); 550473#L26 call #t~ret0 := fact(~n - 1);< 550507#$Ultimate##0 ~n := #in~n; 550508#L25 assume !(~n <= 0); 550473#L26 call #t~ret0 := fact(~n - 1);< 550507#$Ultimate##0 ~n := #in~n; 550523#L25 assume ~n <= 0;#res := 1; 550521#factFINAL assume true; 550512#factEXIT >#66#return; 550510#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 550509#factFINAL assume true; 550506#factEXIT >#66#return; 550505#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 550504#factFINAL assume true; 550472#factEXIT >#66#return; 550468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 550466#factFINAL assume true; 550458#factEXIT >#74#return; 550418#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 550419#$Ultimate##0 ~n := #in~n; 550456#L25 assume ~n <= 0;#res := 1; 550455#factFINAL assume true; 550417#factEXIT >#76#return; 544605#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 547081#$Ultimate##0 ~n := #in~n; 550603#L25 assume !(~n <= 0); 546817#L26 call #t~ret0 := fact(~n - 1);< 546821#$Ultimate##0 ~n := #in~n; 550599#L25 assume !(~n <= 0); 546814#L26 call #t~ret0 := fact(~n - 1);< 550606#$Ultimate##0 ~n := #in~n; 550599#L25 assume !(~n <= 0); 546814#L26 call #t~ret0 := fact(~n - 1);< 550606#$Ultimate##0 ~n := #in~n; 550614#L25 assume ~n <= 0;#res := 1; 550610#factFINAL assume true; 550605#factEXIT >#66#return; 550604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 550602#factFINAL assume true; 550597#factEXIT >#66#return; 550584#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 550583#factFINAL assume true; 550581#factEXIT >#66#return; 544604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544606#factFINAL assume true; 547079#factEXIT >#78#return; 547077#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 544573#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 547076#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547075#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 547073#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 547071#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 547069#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547067#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 546907#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 546914#$Ultimate##0 ~n := #in~n; 547061#L25 assume !(~n <= 0); 547034#L26 call #t~ret0 := fact(~n - 1);< 547056#$Ultimate##0 ~n := #in~n; 547328#L25 assume ~n <= 0;#res := 1; 547326#factFINAL assume true; 547292#factEXIT >#66#return; 547303#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547318#factFINAL assume true; 547317#factEXIT >#68#return; 547310#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 546903#$Ultimate##0 ~n := #in~n; 547321#L25 assume ~n <= 0;#res := 1; 547319#factFINAL assume true; 547309#factEXIT >#70#return; 547306#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 547307#$Ultimate##0 ~n := #in~n; 547329#L25 assume !(~n <= 0); 547020#L26 call #t~ret0 := fact(~n - 1);< 547304#$Ultimate##0 ~n := #in~n; 547328#L25 assume ~n <= 0;#res := 1; 547326#factFINAL assume true; 547292#factEXIT >#66#return; 547302#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547325#factFINAL assume true; 547305#factEXIT >#72#return; 547291#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547289#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 547287#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547286#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547285#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 547281#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 547284#$Ultimate##0 ~n := #in~n; 547308#L25 assume !(~n <= 0); 547021#L26 call #t~ret0 := fact(~n - 1);< 547304#$Ultimate##0 ~n := #in~n; 547328#L25 assume ~n <= 0;#res := 1; 547326#factFINAL assume true; 547292#factEXIT >#66#return; 547290#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547288#factFINAL assume true; 547276#factEXIT >#68#return; 547260#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 547274#$Ultimate##0 ~n := #in~n; 550294#L25 assume !(~n <= 0); 547023#L26 call #t~ret0 := fact(~n - 1);< 547056#$Ultimate##0 ~n := #in~n; 547328#L25 assume ~n <= 0;#res := 1; 547326#factFINAL assume true; 547292#factEXIT >#66#return; 547301#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547330#factFINAL assume true; 547254#factEXIT >#70#return; 547244#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 547251#$Ultimate##0 ~n := #in~n; 548471#L25 assume ~n <= 0;#res := 1; 548470#factFINAL assume true; 547237#factEXIT >#72#return; 547236#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547235#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 547234#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547232#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547231#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 547226#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 547230#$Ultimate##0 ~n := #in~n; 550282#L25 assume !(~n <= 0); 547044#L26 call #t~ret0 := fact(~n - 1);< 550281#$Ultimate##0 ~n := #in~n; 550290#L25 assume !(~n <= 0); 547046#L26 call #t~ret0 := fact(~n - 1);< 550288#$Ultimate##0 ~n := #in~n; 550309#L25 assume ~n <= 0;#res := 1; 550308#factFINAL assume true; 550285#factEXIT >#66#return; 550283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 550280#factFINAL assume true; 547016#factEXIT >#66#return; 547054#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 550439#factFINAL assume true; 550436#factEXIT >#74#return; 547169#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 547201#$Ultimate##0 ~n := #in~n; 548442#L25 assume !(~n <= 0); 547040#L26 call #t~ret0 := fact(~n - 1);< 547056#$Ultimate##0 ~n := #in~n; 547328#L25 assume ~n <= 0;#res := 1; 547326#factFINAL assume true; 547292#factEXIT >#66#return; 547299#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 550273#factFINAL assume true; 547195#factEXIT >#76#return; 547183#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 547213#$Ultimate##0 ~n := #in~n; 550378#L25 assume !(~n <= 0); 547296#L26 call #t~ret0 := fact(~n - 1);< 547327#$Ultimate##0 ~n := #in~n; 547328#L25 assume ~n <= 0;#res := 1; 547326#factFINAL assume true; 547292#factEXIT >#66#return; 547299#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 550273#factFINAL assume true; 547195#factEXIT >#78#return; 547200#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547211#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 547210#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547206#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547205#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 546950#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 546974#$Ultimate##0 ~n := #in~n; 548474#L25 assume !(~n <= 0); 546993#L26 call #t~ret0 := fact(~n - 1);< 547060#$Ultimate##0 ~n := #in~n; 547212#L25 assume !(~n <= 0); 547002#L26 call #t~ret0 := fact(~n - 1);< 547066#$Ultimate##0 ~n := #in~n; 547212#L25 assume !(~n <= 0); 547002#L26 call #t~ret0 := fact(~n - 1);< 547066#$Ultimate##0 ~n := #in~n; 547121#L25 assume ~n <= 0;#res := 1; 547120#factFINAL assume true; 547063#factEXIT >#66#return; 547062#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547057#factFINAL assume true; 546992#factEXIT >#66#return; 547012#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 549644#factFINAL assume true; 549638#factEXIT >#66#return; 549640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 549485#factFINAL assume true; 549480#factEXIT >#74#return; 546935#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 547123#$Ultimate##0 ~n := #in~n; 549958#L25 assume !(~n <= 0); 546997#L26 call #t~ret0 := fact(~n - 1);< 550010#$Ultimate##0 ~n := #in~n; 547115#L25 assume ~n <= 0;#res := 1; 550009#factFINAL assume true; 550002#factEXIT >#66#return; 550005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 550275#factFINAL assume true; 547193#factEXIT >#76#return; 546941#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 546968#$Ultimate##0 ~n := #in~n; 547140#L25 assume !(~n <= 0); 546998#L26 call #t~ret0 := fact(~n - 1);< 547135#$Ultimate##0 ~n := #in~n; 547124#L25 assume !(~n <= 0); 547006#L26 call #t~ret0 := fact(~n - 1);< 547122#$Ultimate##0 ~n := #in~n; 547121#L25 assume ~n <= 0;#res := 1; 547120#factFINAL assume true; 547063#factEXIT >#66#return; 547062#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547057#factFINAL assume true; 546992#factEXIT >#66#return; 546991#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546972#factFINAL assume true; 546927#factEXIT >#78#return; 546926#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 546925#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 546924#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 546922#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 546921#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 546919#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 546918#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 546916#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 546909#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 546914#$Ultimate##0 ~n := #in~n; 547061#L25 assume !(~n <= 0); 547034#L26 call #t~ret0 := fact(~n - 1);< 547056#$Ultimate##0 ~n := #in~n; 550291#L25 assume !(~n <= 0); 547036#L26 call #t~ret0 := fact(~n - 1);< 548460#$Ultimate##0 ~n := #in~n; 550309#L25 assume ~n <= 0;#res := 1; 550308#factFINAL assume true; 550285#factEXIT >#66#return; 550283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 550280#factFINAL assume true; 547016#factEXIT >#66#return; 547015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547014#factFINAL assume true; 546906#factEXIT >#68#return; 546897#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 546902#$Ultimate##0 ~n := #in~n; 550289#L25 assume ~n <= 0;#res := 1; 550284#factFINAL assume true; 546894#factEXIT >#70#return; 546882#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 546892#$Ultimate##0 ~n := #in~n; 550315#L25 assume !(~n <= 0); 546388#L26 call #t~ret0 := fact(~n - 1);< 546735#$Ultimate##0 ~n := #in~n; 546982#L25 assume !(~n <= 0); 546438#L26 call #t~ret0 := fact(~n - 1);< 546441#$Ultimate##0 ~n := #in~n; 546978#L25 assume ~n <= 0;#res := 1; 546976#factFINAL assume true; 546437#factEXIT >#66#return; 546435#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546405#factFINAL assume true; 546384#factEXIT >#66#return; 546397#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 550310#factFINAL assume true; 546880#factEXIT >#72#return; 546879#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 546878#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 546877#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 546876#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 546875#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 546361#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 546379#$Ultimate##0 ~n := #in~n; 546753#L25 assume !(~n <= 0); 546391#L26 call #t~ret0 := fact(~n - 1);< 546735#$Ultimate##0 ~n := #in~n; 546982#L25 assume !(~n <= 0); 546438#L26 call #t~ret0 := fact(~n - 1);< 546441#$Ultimate##0 ~n := #in~n; 546978#L25 assume ~n <= 0;#res := 1; 546976#factFINAL assume true; 546437#factEXIT >#66#return; 546435#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546405#factFINAL assume true; 546384#factEXIT >#66#return; 546401#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546743#factFINAL assume true; 546360#factEXIT >#68#return; 546373#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 546436#$Ultimate##0 ~n := #in~n; 550559#L25 assume !(~n <= 0); 546084#L26 call #t~ret0 := fact(~n - 1);< 546342#$Ultimate##0 ~n := #in~n; 550441#L25 assume ~n <= 0;#res := 1; 550434#factFINAL assume true; 546082#factEXIT >#66#return; 546108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546842#factFINAL assume true; 546422#factEXIT >#70#return; 546427#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 546434#$Ultimate##0 ~n := #in~n; 547110#L25 assume !(~n <= 0); 546089#L26 call #t~ret0 := fact(~n - 1);< 546116#$Ultimate##0 ~n := #in~n; 550441#L25 assume ~n <= 0;#res := 1; 550434#factFINAL assume true; 546082#factEXIT >#66#return; 546108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546842#factFINAL assume true; 546422#factEXIT >#72#return; 546421#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 546420#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 546404#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 546383#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 546381#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 546367#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 546379#$Ultimate##0 ~n := #in~n; 546753#L25 assume !(~n <= 0); 546391#L26 call #t~ret0 := fact(~n - 1);< 546735#$Ultimate##0 ~n := #in~n; 546982#L25 assume !(~n <= 0); 546438#L26 call #t~ret0 := fact(~n - 1);< 546441#$Ultimate##0 ~n := #in~n; 546978#L25 assume ~n <= 0;#res := 1; 546976#factFINAL assume true; 546437#factEXIT >#66#return; 546435#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546405#factFINAL assume true; 546384#factEXIT >#66#return; 546401#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546743#factFINAL assume true; 546360#factEXIT >#68#return; 546349#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 546352#$Ultimate##0 ~n := #in~n; 546419#L25 assume !(~n <= 0); 546319#L26 call #t~ret0 := fact(~n - 1);< 546403#$Ultimate##0 ~n := #in~n; 546443#L25 assume !(~n <= 0); 546386#L26 call #t~ret0 := fact(~n - 1);< 546440#$Ultimate##0 ~n := #in~n; 546978#L25 assume ~n <= 0;#res := 1; 546976#factFINAL assume true; 546437#factEXIT >#66#return; 546435#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546405#factFINAL assume true; 546384#factEXIT >#66#return; 546382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546380#factFINAL assume true; 546345#factEXIT >#70#return; 546247#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 546254#$Ultimate##0 ~n := #in~n; 546306#L25 assume ~n <= 0;#res := 1; 546257#factFINAL assume true; 546242#factEXIT >#72#return; 546241#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 546239#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 546237#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 546235#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 546233#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 546079#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 546128#$Ultimate##0 ~n := #in~n; 546127#L25 assume !(~n <= 0); 545887#L26 call #t~ret0 := fact(~n - 1);< 545916#$Ultimate##0 ~n := #in~n; 545988#L25 assume !(~n <= 0); 545890#L26 call #t~ret0 := fact(~n - 1);< 545984#$Ultimate##0 ~n := #in~n; 545988#L25 assume !(~n <= 0); 545890#L26 call #t~ret0 := fact(~n - 1);< 545984#$Ultimate##0 ~n := #in~n; 545989#L25 assume ~n <= 0;#res := 1; 545986#factFINAL assume true; 545981#factEXIT >#66#return; 545979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545972#factFINAL assume true; 545962#factEXIT >#66#return; 545961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545936#factFINAL assume true; 545922#factEXIT >#66#return; 545930#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 550421#factFINAL assume true; 546177#factEXIT >#74#return; 545975#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 546002#$Ultimate##0 ~n := #in~n; 546224#L25 assume !(~n <= 0); 545923#L26 call #t~ret0 := fact(~n - 1);< 545976#$Ultimate##0 ~n := #in~n; 546007#L25 assume !(~n <= 0); 545965#L26 call #t~ret0 := fact(~n - 1);< 545971#$Ultimate##0 ~n := #in~n; 545989#L25 assume ~n <= 0;#res := 1; 545986#factFINAL assume true; 545981#factEXIT >#66#return; 545979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545972#factFINAL assume true; 545962#factEXIT >#66#return; 545967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546569#factFINAL assume true; 546570#factEXIT >#76#return; 545998#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 546571#$Ultimate##0 ~n := #in~n; 547782#L25 assume !(~n <= 0); 546214#L26 call #t~ret0 := fact(~n - 1);< 546221#$Ultimate##0 ~n := #in~n; 545990#L25 assume ~n <= 0;#res := 1; 546223#factFINAL assume true; 546213#factEXIT >#66#return; 546218#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547818#factFINAL assume true; 545999#factEXIT >#78#return; 545840#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 546653#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 546652#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 546651#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 546650#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 545143#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 545142#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 544977#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 544974#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 544976#$Ultimate##0 ~n := #in~n; 544975#L25 assume !(~n <= 0); 544856#L26 call #t~ret0 := fact(~n - 1);< 544972#$Ultimate##0 ~n := #in~n; 544971#L25 assume !(~n <= 0); 544864#L26 call #t~ret0 := fact(~n - 1);< 544872#$Ultimate##0 ~n := #in~n; 544989#L25 assume !(~n <= 0); 544888#L26 call #t~ret0 := fact(~n - 1);< 544892#$Ultimate##0 ~n := #in~n; 545002#L25 assume !(~n <= 0); 544914#L26 call #t~ret0 := fact(~n - 1);< 544917#$Ultimate##0 ~n := #in~n; 544956#L25 assume !(~n <= 0); 544950#L26 call #t~ret0 := fact(~n - 1);< 544951#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544873#factFINAL assume true; 544863#factEXIT >#66#return; 544862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544854#factFINAL assume true; 544858#factEXIT >#66#return; 545129#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545625#factFINAL assume true; 545620#factEXIT >#68#return; 545384#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 545393#$Ultimate##0 ~n := #in~n; 545396#L25 assume ~n <= 0;#res := 1; 545394#factFINAL assume true; 545382#factEXIT >#70#return; 545139#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 545140#$Ultimate##0 ~n := #in~n; 545397#L25 assume !(~n <= 0); 544845#L26 call #t~ret0 := fact(~n - 1);< 544919#$Ultimate##0 ~n := #in~n; 544909#L25 assume !(~n <= 0); 544847#L26 call #t~ret0 := fact(~n - 1);< 544853#$Ultimate##0 ~n := #in~n; 544948#L25 assume !(~n <= 0); 544838#L26 call #t~ret0 := fact(~n - 1);< 544893#$Ultimate##0 ~n := #in~n; 544955#L25 assume !(~n <= 0); 544841#L26 call #t~ret0 := fact(~n - 1);< 544861#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544873#factFINAL assume true; 544863#factEXIT >#66#return; 544862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544854#factFINAL assume true; 544858#factEXIT >#66#return; 544852#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545381#factFINAL assume true; 545362#factEXIT >#72#return; 545379#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 550684#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 550682#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 550680#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 550679#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 545013#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545052#$Ultimate##0 ~n := #in~n; 545003#L25 assume !(~n <= 0); 544857#L26 call #t~ret0 := fact(~n - 1);< 544994#$Ultimate##0 ~n := #in~n; 544908#L25 assume !(~n <= 0); 544868#L26 call #t~ret0 := fact(~n - 1);< 544878#$Ultimate##0 ~n := #in~n; 544970#L25 assume !(~n <= 0); 544887#L26 call #t~ret0 := fact(~n - 1);< 544906#$Ultimate##0 ~n := #in~n; 544969#L25 assume !(~n <= 0); 544913#L26 call #t~ret0 := fact(~n - 1);< 544959#$Ultimate##0 ~n := #in~n; 544956#L25 assume !(~n <= 0); 544950#L26 call #t~ret0 := fact(~n - 1);< 544951#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544873#factFINAL assume true; 544863#factEXIT >#66#return; 544862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544854#factFINAL assume true; 544858#factEXIT >#66#return; 545128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545126#factFINAL assume true; 545055#factEXIT >#68#return; 544762#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 545180#$Ultimate##0 ~n := #in~n; 544784#L25 assume !(~n <= 0); 544785#L26 call #t~ret0 := fact(~n - 1);< 545186#$Ultimate##0 ~n := #in~n; 545193#L25 assume ~n <= 0;#res := 1; 545190#factFINAL assume true; 545183#factEXIT >#66#return; 545182#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545179#factFINAL assume true; 545156#factEXIT >#70#return; 544896#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544993#$Ultimate##0 ~n := #in~n; 544992#L25 assume !(~n <= 0); 544867#L26 call #t~ret0 := fact(~n - 1);< 544899#$Ultimate##0 ~n := #in~n; 545001#L25 assume !(~n <= 0); 544883#L26 call #t~ret0 := fact(~n - 1);< 544918#$Ultimate##0 ~n := #in~n; 544957#L25 assume !(~n <= 0); 544912#L26 call #t~ret0 := fact(~n - 1);< 544917#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545305#factFINAL assume true; 545284#factEXIT >#72#return; 545222#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 545701#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 545700#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 545699#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 545698#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 545030#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545052#$Ultimate##0 ~n := #in~n; 545003#L25 assume !(~n <= 0); 544857#L26 call #t~ret0 := fact(~n - 1);< 544994#$Ultimate##0 ~n := #in~n; 544908#L25 assume !(~n <= 0); 544868#L26 call #t~ret0 := fact(~n - 1);< 544878#$Ultimate##0 ~n := #in~n; 544970#L25 assume !(~n <= 0); 544887#L26 call #t~ret0 := fact(~n - 1);< 544906#$Ultimate##0 ~n := #in~n; 544969#L25 assume !(~n <= 0); 544913#L26 call #t~ret0 := fact(~n - 1);< 544959#$Ultimate##0 ~n := #in~n; 544956#L25 assume !(~n <= 0); 544950#L26 call #t~ret0 := fact(~n - 1);< 544951#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544873#factFINAL assume true; 544863#factEXIT >#66#return; 544862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544854#factFINAL assume true; 544858#factEXIT >#66#return; 545128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545126#factFINAL assume true; 545055#factEXIT >#68#return; 544649#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544623#$Ultimate##0 ~n := #in~n; 544626#L25 assume !(~n <= 0); 544836#L26 call #t~ret0 := fact(~n - 1);< 544861#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544915#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545271#factFINAL assume true; 545233#factEXIT >#70#return; 544903#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544991#$Ultimate##0 ~n := #in~n; 544990#L25 assume !(~n <= 0); 544889#L26 call #t~ret0 := fact(~n - 1);< 544906#$Ultimate##0 ~n := #in~n; 544969#L25 assume !(~n <= 0); 544913#L26 call #t~ret0 := fact(~n - 1);< 544959#$Ultimate##0 ~n := #in~n; 544956#L25 assume !(~n <= 0); 544950#L26 call #t~ret0 := fact(~n - 1);< 544951#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545305#factFINAL assume true; 545284#factEXIT >#72#return; 545291#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 545693#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 545692#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 545691#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 545689#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 545033#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545052#$Ultimate##0 ~n := #in~n; 545003#L25 assume !(~n <= 0); 544857#L26 call #t~ret0 := fact(~n - 1);< 544994#$Ultimate##0 ~n := #in~n; 544908#L25 assume !(~n <= 0); 544868#L26 call #t~ret0 := fact(~n - 1);< 544878#$Ultimate##0 ~n := #in~n; 544970#L25 assume !(~n <= 0); 544887#L26 call #t~ret0 := fact(~n - 1);< 544906#$Ultimate##0 ~n := #in~n; 544969#L25 assume !(~n <= 0); 544913#L26 call #t~ret0 := fact(~n - 1);< 544959#$Ultimate##0 ~n := #in~n; 544956#L25 assume !(~n <= 0); 544950#L26 call #t~ret0 := fact(~n - 1);< 544951#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544873#factFINAL assume true; 544863#factEXIT >#66#return; 544862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544854#factFINAL assume true; 544858#factEXIT >#66#return; 545128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545126#factFINAL assume true; 545055#factEXIT >#68#return; 544647#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544623#$Ultimate##0 ~n := #in~n; 544626#L25 assume !(~n <= 0); 544836#L26 call #t~ret0 := fact(~n - 1);< 544861#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545305#factFINAL assume true; 545284#factEXIT >#70#return; 544937#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544979#$Ultimate##0 ~n := #in~n; 545196#L25 assume !(~n <= 0); 544885#L26 call #t~ret0 := fact(~n - 1);< 544918#$Ultimate##0 ~n := #in~n; 544957#L25 assume !(~n <= 0); 544912#L26 call #t~ret0 := fact(~n - 1);< 544917#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544915#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545271#factFINAL assume true; 545233#factEXIT >#72#return; 545264#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547483#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 547477#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547475#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 545808#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 545047#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545052#$Ultimate##0 ~n := #in~n; 545003#L25 assume !(~n <= 0); 544857#L26 call #t~ret0 := fact(~n - 1);< 544994#$Ultimate##0 ~n := #in~n; 544908#L25 assume !(~n <= 0); 544868#L26 call #t~ret0 := fact(~n - 1);< 544878#$Ultimate##0 ~n := #in~n; 544970#L25 assume !(~n <= 0); 544887#L26 call #t~ret0 := fact(~n - 1);< 544906#$Ultimate##0 ~n := #in~n; 544969#L25 assume !(~n <= 0); 544913#L26 call #t~ret0 := fact(~n - 1);< 544959#$Ultimate##0 ~n := #in~n; 544956#L25 assume !(~n <= 0); 544950#L26 call #t~ret0 := fact(~n - 1);< 544951#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544873#factFINAL assume true; 544863#factEXIT >#66#return; 544862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544854#factFINAL assume true; 544858#factEXIT >#66#return; 545128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545126#factFINAL assume true; 545055#factEXIT >#68#return; 544664#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544623#$Ultimate##0 ~n := #in~n; 544626#L25 assume !(~n <= 0); 544836#L26 call #t~ret0 := fact(~n - 1);< 544861#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544873#factFINAL assume true; 544863#factEXIT >#66#return; 544870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545226#factFINAL assume true; 545201#factEXIT >#70#return; 544966#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544978#$Ultimate##0 ~n := #in~n; 544963#L25 assume !(~n <= 0); 544886#L26 call #t~ret0 := fact(~n - 1);< 545189#$Ultimate##0 ~n := #in~n; 545193#L25 assume ~n <= 0;#res := 1; 545190#factFINAL assume true; 545183#factEXIT >#66#return; 545182#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545179#factFINAL assume true; 545156#factEXIT >#72#return; 545154#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 545152#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 545150#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 545148#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 545146#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 545031#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545052#$Ultimate##0 ~n := #in~n; 545003#L25 assume !(~n <= 0); 544857#L26 call #t~ret0 := fact(~n - 1);< 544994#$Ultimate##0 ~n := #in~n; 544908#L25 assume !(~n <= 0); 544868#L26 call #t~ret0 := fact(~n - 1);< 544878#$Ultimate##0 ~n := #in~n; 544970#L25 assume !(~n <= 0); 544887#L26 call #t~ret0 := fact(~n - 1);< 544906#$Ultimate##0 ~n := #in~n; 544969#L25 assume !(~n <= 0); 544913#L26 call #t~ret0 := fact(~n - 1);< 544959#$Ultimate##0 ~n := #in~n; 544956#L25 assume !(~n <= 0); 544950#L26 call #t~ret0 := fact(~n - 1);< 544951#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544873#factFINAL assume true; 544863#factEXIT >#66#return; 544862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544854#factFINAL assume true; 544858#factEXIT >#66#return; 545128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545126#factFINAL assume true; 545055#factEXIT >#68#return; 544682#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544623#$Ultimate##0 ~n := #in~n; 544626#L25 assume !(~n <= 0); 544836#L26 call #t~ret0 := fact(~n - 1);< 544861#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544873#factFINAL assume true; 544863#factEXIT >#66#return; 544862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544854#factFINAL assume true; 544858#factEXIT >#66#return; 545131#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544827#factFINAL assume true; 544828#factEXIT >#70#return; 544733#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544968#$Ultimate##0 ~n := #in~n; 544962#L25 assume ~n <= 0;#res := 1; 544783#factFINAL assume true; 544692#factEXIT >#72#return; 544592#L30-3 [2023-02-18 08:57:38,729 INFO L750 eck$LassoCheckResult]: Loop: 544592#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 544593#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 545514#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 545512#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 545510#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 544578#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 544541#$Ultimate##0 ~n := #in~n; 545473#L25 assume !(~n <= 0); 544576#L26 call #t~ret0 := fact(~n - 1);< 544582#$Ultimate##0 ~n := #in~n; 545487#L25 assume !(~n <= 0); 545482#L26 call #t~ret0 := fact(~n - 1);< 545485#$Ultimate##0 ~n := #in~n; 545483#L25 assume !(~n <= 0); 545465#L26 call #t~ret0 := fact(~n - 1);< 545480#$Ultimate##0 ~n := #in~n; 545476#L25 assume !(~n <= 0); 545449#L26 call #t~ret0 := fact(~n - 1);< 545461#$Ultimate##0 ~n := #in~n; 545460#L25 assume !(~n <= 0); 545452#L26 call #t~ret0 := fact(~n - 1);< 545459#$Ultimate##0 ~n := #in~n; 545460#L25 assume !(~n <= 0); 545452#L26 call #t~ret0 := fact(~n - 1);< 545459#$Ultimate##0 ~n := #in~n; 545474#L25 assume ~n <= 0;#res := 1; 545472#factFINAL assume true; 545469#factEXIT >#66#return; 545468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545458#factFINAL assume true; 545448#factEXIT >#66#return; 545453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545548#factFINAL assume true; 545545#factEXIT >#66#return; 545543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545541#factFINAL assume true; 545539#factEXIT >#66#return; 545538#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545498#factFINAL assume true; 545496#factEXIT >#66#return; 545491#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545493#factFINAL assume true; 545490#factEXIT >#66#return; 545489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545488#factFINAL assume true; 545486#factEXIT >#74#return; 545464#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 545479#$Ultimate##0 ~n := #in~n; 545475#L25 assume !(~n <= 0); 545451#L26 call #t~ret0 := fact(~n - 1);< 545462#$Ultimate##0 ~n := #in~n; 545460#L25 assume !(~n <= 0); 545452#L26 call #t~ret0 := fact(~n - 1);< 545459#$Ultimate##0 ~n := #in~n; 545460#L25 assume !(~n <= 0); 545452#L26 call #t~ret0 := fact(~n - 1);< 545459#$Ultimate##0 ~n := #in~n; 545460#L25 assume !(~n <= 0); 545452#L26 call #t~ret0 := fact(~n - 1);< 545459#$Ultimate##0 ~n := #in~n; 545460#L25 assume !(~n <= 0); 545452#L26 call #t~ret0 := fact(~n - 1);< 545459#$Ultimate##0 ~n := #in~n; 545474#L25 assume ~n <= 0;#res := 1; 545472#factFINAL assume true; 545469#factEXIT >#66#return; 545468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545458#factFINAL assume true; 545448#factEXIT >#66#return; 545453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545548#factFINAL assume true; 545545#factEXIT >#66#return; 545543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545541#factFINAL assume true; 545539#factEXIT >#66#return; 545538#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545498#factFINAL assume true; 545496#factEXIT >#66#return; 545497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545508#factFINAL assume true; 545484#factEXIT >#76#return; 545432#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 545481#$Ultimate##0 ~n := #in~n; 545477#L25 assume !(~n <= 0); 545454#L26 call #t~ret0 := fact(~n - 1);< 545455#$Ultimate##0 ~n := #in~n; 545466#L25 assume ~n <= 0;#res := 1; 545467#factFINAL assume true; 545470#factEXIT >#66#return; 545471#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 550414#factFINAL assume true; 545431#factEXIT >#78#return; 545434#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 545446#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 545442#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 545435#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 545427#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 545403#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 545399#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 545398#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 545134#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 544563#$Ultimate##0 ~n := #in~n; 545138#L25 assume !(~n <= 0); 544839#L26 call #t~ret0 := fact(~n - 1);< 544919#$Ultimate##0 ~n := #in~n; 544909#L25 assume !(~n <= 0); 544847#L26 call #t~ret0 := fact(~n - 1);< 544853#$Ultimate##0 ~n := #in~n; 544948#L25 assume !(~n <= 0); 544838#L26 call #t~ret0 := fact(~n - 1);< 544893#$Ultimate##0 ~n := #in~n; 544955#L25 assume !(~n <= 0); 544841#L26 call #t~ret0 := fact(~n - 1);< 544861#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544873#factFINAL assume true; 544863#factEXIT >#66#return; 544862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544854#factFINAL assume true; 544858#factEXIT >#66#return; 544848#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545132#factFINAL assume true; 544832#factEXIT >#66#return; 544850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545400#factFINAL assume true; 545395#factEXIT >#68#return; 545391#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 545393#$Ultimate##0 ~n := #in~n; 545396#L25 assume ~n <= 0;#res := 1; 545394#factFINAL assume true; 545382#factEXIT >#70#return; 545371#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 545140#$Ultimate##0 ~n := #in~n; 545397#L25 assume !(~n <= 0); 544845#L26 call #t~ret0 := fact(~n - 1);< 544919#$Ultimate##0 ~n := #in~n; 544909#L25 assume !(~n <= 0); 544847#L26 call #t~ret0 := fact(~n - 1);< 544853#$Ultimate##0 ~n := #in~n; 544948#L25 assume !(~n <= 0); 544838#L26 call #t~ret0 := fact(~n - 1);< 544893#$Ultimate##0 ~n := #in~n; 544955#L25 assume !(~n <= 0); 544841#L26 call #t~ret0 := fact(~n - 1);< 544861#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544873#factFINAL assume true; 544863#factEXIT >#66#return; 544862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544854#factFINAL assume true; 544858#factEXIT >#66#return; 544852#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545381#factFINAL assume true; 545362#factEXIT >#72#return; 545361#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 545360#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 545359#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 545358#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 545357#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 545058#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545127#$Ultimate##0 ~n := #in~n; 545136#L25 assume !(~n <= 0); 544840#L26 call #t~ret0 := fact(~n - 1);< 544919#$Ultimate##0 ~n := #in~n; 544909#L25 assume !(~n <= 0); 544847#L26 call #t~ret0 := fact(~n - 1);< 544853#$Ultimate##0 ~n := #in~n; 544948#L25 assume !(~n <= 0); 544838#L26 call #t~ret0 := fact(~n - 1);< 544893#$Ultimate##0 ~n := #in~n; 544955#L25 assume !(~n <= 0); 544841#L26 call #t~ret0 := fact(~n - 1);< 544861#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544873#factFINAL assume true; 544863#factEXIT >#66#return; 544862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544854#factFINAL assume true; 544858#factEXIT >#66#return; 544848#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545132#factFINAL assume true; 544832#factEXIT >#66#return; 544851#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545177#factFINAL assume true; 545147#factEXIT >#68#return; 544749#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 545180#$Ultimate##0 ~n := #in~n; 544784#L25 assume !(~n <= 0); 544785#L26 call #t~ret0 := fact(~n - 1);< 545186#$Ultimate##0 ~n := #in~n; 545193#L25 assume ~n <= 0;#res := 1; 545190#factFINAL assume true; 545183#factEXIT >#66#return; 545182#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545179#factFINAL assume true; 545156#factEXIT >#70#return; 544793#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544829#$Ultimate##0 ~n := #in~n; 545499#L25 assume !(~n <= 0); 544843#L26 call #t~ret0 := fact(~n - 1);< 544853#$Ultimate##0 ~n := #in~n; 544948#L25 assume !(~n <= 0); 544838#L26 call #t~ret0 := fact(~n - 1);< 544893#$Ultimate##0 ~n := #in~n; 544955#L25 assume !(~n <= 0); 544841#L26 call #t~ret0 := fact(~n - 1);< 544861#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544873#factFINAL assume true; 544863#factEXIT >#66#return; 544870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545226#factFINAL assume true; 545201#factEXIT >#72#return; 545223#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 545356#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 545355#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 545354#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 545353#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 545056#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545127#$Ultimate##0 ~n := #in~n; 545136#L25 assume !(~n <= 0); 544840#L26 call #t~ret0 := fact(~n - 1);< 544919#$Ultimate##0 ~n := #in~n; 544909#L25 assume !(~n <= 0); 544847#L26 call #t~ret0 := fact(~n - 1);< 544853#$Ultimate##0 ~n := #in~n; 544948#L25 assume !(~n <= 0); 544838#L26 call #t~ret0 := fact(~n - 1);< 544893#$Ultimate##0 ~n := #in~n; 544955#L25 assume !(~n <= 0); 544841#L26 call #t~ret0 := fact(~n - 1);< 544861#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544873#factFINAL assume true; 544863#factEXIT >#66#return; 544862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544854#factFINAL assume true; 544858#factEXIT >#66#return; 544848#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545132#factFINAL assume true; 544832#factEXIT >#66#return; 544851#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545177#factFINAL assume true; 545147#factEXIT >#68#return; 544751#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544786#$Ultimate##0 ~n := #in~n; 544787#L25 assume !(~n <= 0); 544842#L26 call #t~ret0 := fact(~n - 1);< 545188#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544915#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545271#factFINAL assume true; 545233#factEXIT >#70#return; 544789#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 545178#$Ultimate##0 ~n := #in~n; 545145#L25 assume !(~n <= 0); 544837#L26 call #t~ret0 := fact(~n - 1);< 544893#$Ultimate##0 ~n := #in~n; 544955#L25 assume !(~n <= 0); 544841#L26 call #t~ret0 := fact(~n - 1);< 544861#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545305#factFINAL assume true; 545284#factEXIT >#72#return; 545285#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 545351#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 545349#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 545347#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 545345#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 545111#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545127#$Ultimate##0 ~n := #in~n; 545136#L25 assume !(~n <= 0); 544840#L26 call #t~ret0 := fact(~n - 1);< 544919#$Ultimate##0 ~n := #in~n; 544909#L25 assume !(~n <= 0); 544847#L26 call #t~ret0 := fact(~n - 1);< 544853#$Ultimate##0 ~n := #in~n; 544948#L25 assume !(~n <= 0); 544838#L26 call #t~ret0 := fact(~n - 1);< 544893#$Ultimate##0 ~n := #in~n; 544955#L25 assume !(~n <= 0); 544841#L26 call #t~ret0 := fact(~n - 1);< 544861#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544873#factFINAL assume true; 544863#factEXIT >#66#return; 544862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544854#factFINAL assume true; 544858#factEXIT >#66#return; 544848#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545132#factFINAL assume true; 544832#factEXIT >#66#return; 544851#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545177#factFINAL assume true; 545147#factEXIT >#68#return; 544745#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544786#$Ultimate##0 ~n := #in~n; 544787#L25 assume !(~n <= 0); 544842#L26 call #t~ret0 := fact(~n - 1);< 545188#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545305#factFINAL assume true; 545284#factEXIT >#70#return; 544640#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544623#$Ultimate##0 ~n := #in~n; 544626#L25 assume !(~n <= 0); 544836#L26 call #t~ret0 := fact(~n - 1);< 544861#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544915#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545271#factFINAL assume true; 545233#factEXIT >#72#return; 545267#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 545327#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 545325#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 545324#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 545323#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 545117#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545127#$Ultimate##0 ~n := #in~n; 545136#L25 assume !(~n <= 0); 544840#L26 call #t~ret0 := fact(~n - 1);< 544919#$Ultimate##0 ~n := #in~n; 544909#L25 assume !(~n <= 0); 544847#L26 call #t~ret0 := fact(~n - 1);< 544853#$Ultimate##0 ~n := #in~n; 544948#L25 assume !(~n <= 0); 544838#L26 call #t~ret0 := fact(~n - 1);< 544893#$Ultimate##0 ~n := #in~n; 544955#L25 assume !(~n <= 0); 544841#L26 call #t~ret0 := fact(~n - 1);< 544861#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544873#factFINAL assume true; 544863#factEXIT >#66#return; 544862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544854#factFINAL assume true; 544858#factEXIT >#66#return; 545128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545126#factFINAL assume true; 545055#factEXIT >#68#return; 544761#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544786#$Ultimate##0 ~n := #in~n; 544787#L25 assume !(~n <= 0); 544842#L26 call #t~ret0 := fact(~n - 1);< 545188#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544873#factFINAL assume true; 544863#factEXIT >#66#return; 544870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545226#factFINAL assume true; 545201#factEXIT >#70#return; 544791#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 545175#$Ultimate##0 ~n := #in~n; 545195#L25 assume !(~n <= 0); 544842#L26 call #t~ret0 := fact(~n - 1);< 545188#$Ultimate##0 ~n := #in~n; 545193#L25 assume ~n <= 0;#res := 1; 545190#factFINAL assume true; 545183#factEXIT >#66#return; 545182#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545179#factFINAL assume true; 545156#factEXIT >#72#return; 545161#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 545275#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 545274#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 545273#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 545272#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 545083#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545127#$Ultimate##0 ~n := #in~n; 545136#L25 assume !(~n <= 0); 544840#L26 call #t~ret0 := fact(~n - 1);< 544919#$Ultimate##0 ~n := #in~n; 544909#L25 assume !(~n <= 0); 544847#L26 call #t~ret0 := fact(~n - 1);< 544853#$Ultimate##0 ~n := #in~n; 544948#L25 assume !(~n <= 0); 544838#L26 call #t~ret0 := fact(~n - 1);< 544893#$Ultimate##0 ~n := #in~n; 544955#L25 assume !(~n <= 0); 544841#L26 call #t~ret0 := fact(~n - 1);< 544861#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544873#factFINAL assume true; 544863#factEXIT >#66#return; 544862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544854#factFINAL assume true; 544858#factEXIT >#66#return; 544848#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545132#factFINAL assume true; 544832#factEXIT >#66#return; 544851#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545177#factFINAL assume true; 545147#factEXIT >#68#return; 544729#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544786#$Ultimate##0 ~n := #in~n; 544787#L25 assume !(~n <= 0); 544842#L26 call #t~ret0 := fact(~n - 1);< 545188#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544960#L25 assume !(~n <= 0); 544833#L26 call #t~ret0 := fact(~n - 1);< 544953#$Ultimate##0 ~n := #in~n; 544961#L25 assume ~n <= 0;#res := 1; 544954#factFINAL assume true; 544949#factEXIT >#66#return; 544947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544927#factFINAL assume true; 544911#factEXIT >#66#return; 544907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544894#factFINAL assume true; 544882#factEXIT >#66#return; 544881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544873#factFINAL assume true; 544863#factEXIT >#66#return; 544862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544854#factFINAL assume true; 544858#factEXIT >#66#return; 545131#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544827#factFINAL assume true; 544828#factEXIT >#70#return; 544763#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544786#$Ultimate##0 ~n := #in~n; 544787#L25 assume ~n <= 0;#res := 1; 544783#factFINAL assume true; 544692#factEXIT >#72#return; 544592#L30-3 [2023-02-18 08:57:38,730 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:38,730 INFO L85 PathProgramCache]: Analyzing trace with hash 654545780, now seen corresponding path program 64 times [2023-02-18 08:57:38,730 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:38,730 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [395764973] [2023-02-18 08:57:38,730 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:38,730 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:38,755 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:38,755 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [771266934] [2023-02-18 08:57:38,755 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:57:38,755 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:38,756 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:38,758 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-18 08:57:38,759 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-18 08:57:39,337 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:57:39,337 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:39,344 INFO L263 TraceCheckSpWp]: Trace formula consists of 2182 conjuncts, 15 conjunts are in the unsatisfiable core [2023-02-18 08:57:39,352 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:39,412 INFO L134 CoverageAnalysis]: Checked inductivity of 60381 backedges. 31438 proven. 338 refuted. 0 times theorem prover too weak. 28605 trivial. 0 not checked. [2023-02-18 08:57:39,412 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:39,504 INFO L134 CoverageAnalysis]: Checked inductivity of 60381 backedges. 1722 proven. 1631 refuted. 0 times theorem prover too weak. 57028 trivial. 0 not checked. [2023-02-18 08:57:39,504 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:39,504 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [395764973] [2023-02-18 08:57:39,504 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:39,504 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [771266934] [2023-02-18 08:57:39,504 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [771266934] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:39,504 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:39,504 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 16 [2023-02-18 08:57:39,504 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [162866091] [2023-02-18 08:57:39,504 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:39,505 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:57:39,505 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:39,505 INFO L85 PathProgramCache]: Analyzing trace with hash 1706628789, now seen corresponding path program 64 times [2023-02-18 08:57:39,505 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:39,505 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1734389589] [2023-02-18 08:57:39,505 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:39,505 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:39,517 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:39,517 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [616903237] [2023-02-18 08:57:39,517 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:57:39,517 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:39,517 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:39,520 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-18 08:57:39,520 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-18 08:57:39,975 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:57:39,975 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:39,979 INFO L263 TraceCheckSpWp]: Trace formula consists of 1289 conjuncts, 32 conjunts are in the unsatisfiable core [2023-02-18 08:57:39,983 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:40,086 INFO L134 CoverageAnalysis]: Checked inductivity of 25009 backedges. 11212 proven. 409 refuted. 0 times theorem prover too weak. 13388 trivial. 0 not checked. [2023-02-18 08:57:40,086 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:40,414 INFO L134 CoverageAnalysis]: Checked inductivity of 25009 backedges. 723 proven. 3808 refuted. 0 times theorem prover too weak. 20478 trivial. 0 not checked. [2023-02-18 08:57:40,415 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:40,415 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1734389589] [2023-02-18 08:57:40,415 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:40,415 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [616903237] [2023-02-18 08:57:40,415 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [616903237] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:40,415 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:40,415 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 29] total 34 [2023-02-18 08:57:40,415 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1926711125] [2023-02-18 08:57:40,415 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:40,415 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:57:40,415 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:57:40,416 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 34 interpolants. [2023-02-18 08:57:40,416 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=147, Invalid=975, Unknown=0, NotChecked=0, Total=1122 [2023-02-18 08:57:40,416 INFO L87 Difference]: Start difference. First operand 6268 states and 9782 transitions. cyclomatic complexity: 3559 Second operand has 34 states, 30 states have (on average 2.7) internal successors, (81), 34 states have internal predecessors, (81), 19 states have call successors, (31), 2 states have call predecessors, (31), 13 states have return successors, (38), 17 states have call predecessors, (38), 19 states have call successors, (38) [2023-02-18 08:57:41,686 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:57:41,686 INFO L93 Difference]: Finished difference Result 6331 states and 10147 transitions. [2023-02-18 08:57:41,686 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 6331 states and 10147 transitions. [2023-02-18 08:57:41,717 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 653 [2023-02-18 08:57:41,744 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 6331 states to 4865 states and 7548 transitions. [2023-02-18 08:57:41,744 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 206 [2023-02-18 08:57:41,744 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 257 [2023-02-18 08:57:41,745 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4865 states and 7548 transitions. [2023-02-18 08:57:41,745 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:57:41,745 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4865 states and 7548 transitions. [2023-02-18 08:57:41,746 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4865 states and 7548 transitions. [2023-02-18 08:57:41,792 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4865 to 4692. [2023-02-18 08:57:41,795 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4692 states, 2911 states have (on average 1.0477499141188595) internal successors, (3050), 2902 states have internal predecessors, (3050), 1448 states have call successors, (1470), 433 states have call predecessors, (1470), 333 states have return successors, (2642), 1356 states have call predecessors, (2642), 1448 states have call successors, (2642) [2023-02-18 08:57:41,808 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4692 states to 4692 states and 7162 transitions. [2023-02-18 08:57:41,808 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4692 states and 7162 transitions. [2023-02-18 08:57:41,808 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2023-02-18 08:57:41,809 INFO L428 stractBuchiCegarLoop]: Abstraction has 4692 states and 7162 transitions. [2023-02-18 08:57:41,809 INFO L335 stractBuchiCegarLoop]: ======== Iteration 77 ============ [2023-02-18 08:57:41,809 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4692 states and 7162 transitions. [2023-02-18 08:57:41,817 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 653 [2023-02-18 08:57:41,818 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:57:41,818 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:57:41,820 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [157, 157, 103, 103, 103, 103, 54, 18, 17, 12, 12, 12, 12, 12, 12, 12, 11, 11, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-18 08:57:41,820 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [95, 95, 74, 74, 74, 74, 21, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:57:41,821 INFO L748 eck$LassoCheckResult]: Stem: 566873#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 566820#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; 566821#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 566843#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; 566832#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 566833#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 570900#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 566803#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 566804#$Ultimate##0 ~n := #in~n; 570896#L25 assume ~n <= 0;#res := 1; 570895#factFINAL assume true; 570894#factEXIT >#68#return; 566863#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 566864#$Ultimate##0 ~n := #in~n; 570870#L25 assume ~n <= 0;#res := 1; 570868#factFINAL assume true; 570865#factEXIT >#70#return; 566784#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 566785#$Ultimate##0 ~n := #in~n; 571304#L25 assume ~n <= 0;#res := 1; 571303#factFINAL assume true; 571302#factEXIT >#72#return; 571301#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 571299#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 571298#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 571297#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 571295#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 571199#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 571200#$Ultimate##0 ~n := #in~n; 571230#L25 assume !(~n <= 0); 571225#L26 call #t~ret0 := fact(~n - 1);< 571226#$Ultimate##0 ~n := #in~n; 571240#L25 assume ~n <= 0;#res := 1; 571229#factFINAL assume true; 571224#factEXIT >#66#return; 571217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571216#factFINAL assume true; 571198#factEXIT >#74#return; 571187#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 571188#$Ultimate##0 ~n := #in~n; 571213#L25 assume ~n <= 0;#res := 1; 571197#factFINAL assume true; 571186#factEXIT >#76#return; 571183#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 571184#$Ultimate##0 ~n := #in~n; 571309#L25 assume !(~n <= 0); 571204#L26 call #t~ret0 := fact(~n - 1);< 571205#$Ultimate##0 ~n := #in~n; 571209#L25 assume ~n <= 0;#res := 1; 571208#factFINAL assume true; 571203#factEXIT >#66#return; 571202#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571193#factFINAL assume true; 571182#factEXIT >#78#return; 571179#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 566846#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 566847#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 571215#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 571214#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 571211#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 571212#$Ultimate##0 ~n := #in~n; 571259#L25 assume !(~n <= 0); 571244#L26 call #t~ret0 := fact(~n - 1);< 571248#$Ultimate##0 ~n := #in~n; 571260#L25 assume !(~n <= 0); 571243#L26 call #t~ret0 := fact(~n - 1);< 571256#$Ultimate##0 ~n := #in~n; 571263#L25 assume ~n <= 0;#res := 1; 571258#factFINAL assume true; 571255#factEXIT >#66#return; 571253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571250#factFINAL assume true; 571242#factEXIT >#66#return; 571246#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571220#factFINAL assume true; 571210#factEXIT >#74#return; 571195#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 571196#$Ultimate##0 ~n := #in~n; 571207#L25 assume ~n <= 0;#res := 1; 571206#factFINAL assume true; 571194#factEXIT >#76#return; 566875#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 566876#$Ultimate##0 ~n := #in~n; 571251#L25 assume !(~n <= 0); 571245#L26 call #t~ret0 := fact(~n - 1);< 571248#$Ultimate##0 ~n := #in~n; 571260#L25 assume !(~n <= 0); 571243#L26 call #t~ret0 := fact(~n - 1);< 571256#$Ultimate##0 ~n := #in~n; 571263#L25 assume ~n <= 0;#res := 1; 571258#factFINAL assume true; 571255#factEXIT >#66#return; 571253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571250#factFINAL assume true; 571242#factEXIT >#66#return; 571239#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571228#factFINAL assume true; 571223#factEXIT >#78#return; 571099#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 571100#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 571175#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 571170#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 571167#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 571163#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 571164#$Ultimate##0 ~n := #in~n; 571177#L25 assume !(~n <= 0); 571173#L26 call #t~ret0 := fact(~n - 1);< 571174#$Ultimate##0 ~n := #in~n; 571191#L25 assume !(~n <= 0); 571172#L26 call #t~ret0 := fact(~n - 1);< 571181#$Ultimate##0 ~n := #in~n; 571191#L25 assume !(~n <= 0); 571172#L26 call #t~ret0 := fact(~n - 1);< 571181#$Ultimate##0 ~n := #in~n; 571201#L25 assume ~n <= 0;#res := 1; 571192#factFINAL assume true; 571190#factEXIT >#66#return; 571189#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571185#factFINAL assume true; 571180#factEXIT >#66#return; 571178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571176#factFINAL assume true; 571171#factEXIT >#66#return; 571169#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571166#factFINAL assume true; 571162#factEXIT >#74#return; 571159#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 571160#$Ultimate##0 ~n := #in~n; 571165#L25 assume ~n <= 0;#res := 1; 571161#factFINAL assume true; 571158#factEXIT >#76#return; 566855#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 571157#$Ultimate##0 ~n := #in~n; 571272#L25 assume !(~n <= 0); 571236#L26 call #t~ret0 := fact(~n - 1);< 571238#$Ultimate##0 ~n := #in~n; 571265#L25 assume !(~n <= 0); 571233#L26 call #t~ret0 := fact(~n - 1);< 571262#$Ultimate##0 ~n := #in~n; 571265#L25 assume !(~n <= 0); 571233#L26 call #t~ret0 := fact(~n - 1);< 571262#$Ultimate##0 ~n := #in~n; 571267#L25 assume ~n <= 0;#res := 1; 571264#factFINAL assume true; 571261#factEXIT >#66#return; 571257#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571254#factFINAL assume true; 571252#factEXIT >#66#return; 571249#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571241#factFINAL assume true; 571231#factEXIT >#66#return; 566854#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 566856#factFINAL assume true; 571156#factEXIT >#78#return; 566824#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 566823#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 568434#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 568433#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 568431#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 568429#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 568428#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 568418#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 568325#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 568329#$Ultimate##0 ~n := #in~n; 568412#L25 assume !(~n <= 0); 568380#L26 call #t~ret0 := fact(~n - 1);< 568411#$Ultimate##0 ~n := #in~n; 570396#L25 assume ~n <= 0;#res := 1; 570331#factFINAL assume true; 570317#factEXIT >#66#return; 570327#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570354#factFINAL assume true; 570353#factEXIT >#68#return; 570346#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 568315#$Ultimate##0 ~n := #in~n; 570358#L25 assume ~n <= 0;#res := 1; 570356#factFINAL assume true; 570345#factEXIT >#70#return; 570343#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 570344#$Ultimate##0 ~n := #in~n; 570415#L25 assume !(~n <= 0); 568399#L26 call #t~ret0 := fact(~n - 1);< 570332#$Ultimate##0 ~n := #in~n; 570396#L25 assume ~n <= 0;#res := 1; 570331#factFINAL assume true; 570317#factEXIT >#66#return; 570326#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570361#factFINAL assume true; 570342#factEXIT >#72#return; 570340#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 570338#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 570336#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 570329#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 570315#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 570304#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 570311#$Ultimate##0 ~n := #in~n; 570334#L25 assume !(~n <= 0); 568396#L26 call #t~ret0 := fact(~n - 1);< 570332#$Ultimate##0 ~n := #in~n; 570396#L25 assume ~n <= 0;#res := 1; 570331#factFINAL assume true; 570317#factEXIT >#66#return; 570325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570314#factFINAL assume true; 570303#factEXIT >#68#return; 570288#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 570298#$Ultimate##0 ~n := #in~n; 570851#L25 assume !(~n <= 0); 568381#L26 call #t~ret0 := fact(~n - 1);< 568411#$Ultimate##0 ~n := #in~n; 570396#L25 assume ~n <= 0;#res := 1; 570331#factFINAL assume true; 570317#factEXIT >#66#return; 570313#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570301#factFINAL assume true; 570278#factEXIT >#70#return; 570263#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 570275#$Ultimate##0 ~n := #in~n; 570300#L25 assume ~n <= 0;#res := 1; 570277#factFINAL assume true; 570261#factEXIT >#72#return; 570260#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 570257#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 570241#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 570238#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 570235#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 570228#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 570230#$Ultimate##0 ~n := #in~n; 570255#L25 assume !(~n <= 0); 568383#L26 call #t~ret0 := fact(~n - 1);< 570240#$Ultimate##0 ~n := #in~n; 570517#L25 assume !(~n <= 0); 568387#L26 call #t~ret0 := fact(~n - 1);< 570520#$Ultimate##0 ~n := #in~n; 571012#L25 assume ~n <= 0;#res := 1; 571010#factFINAL assume true; 568812#factEXIT >#66#return; 568811#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568413#factFINAL assume true; 568371#factEXIT >#66#return; 568403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570236#factFINAL assume true; 570231#factEXIT >#74#return; 568919#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 569029#$Ultimate##0 ~n := #in~n; 570333#L25 assume !(~n <= 0); 568400#L26 call #t~ret0 := fact(~n - 1);< 568411#$Ultimate##0 ~n := #in~n; 570396#L25 assume ~n <= 0;#res := 1; 570331#factFINAL assume true; 570317#factEXIT >#66#return; 570323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571000#factFINAL assume true; 568903#factEXIT >#76#return; 568908#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 568934#$Ultimate##0 ~n := #in~n; 570696#L25 assume !(~n <= 0); 570319#L26 call #t~ret0 := fact(~n - 1);< 570328#$Ultimate##0 ~n := #in~n; 570396#L25 assume ~n <= 0;#res := 1; 570331#factFINAL assume true; 570317#factEXIT >#66#return; 570323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571000#factFINAL assume true; 568903#factEXIT >#78#return; 568927#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 570190#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 570181#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 570171#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 569973#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 568351#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 568820#$Ultimate##0 ~n := #in~n; 570986#L25 assume !(~n <= 0); 568854#L26 call #t~ret0 := fact(~n - 1);< 570976#$Ultimate##0 ~n := #in~n; 570977#L25 assume !(~n <= 0); 568860#L26 call #t~ret0 := fact(~n - 1);< 571004#$Ultimate##0 ~n := #in~n; 570977#L25 assume !(~n <= 0); 568860#L26 call #t~ret0 := fact(~n - 1);< 571004#$Ultimate##0 ~n := #in~n; 571007#L25 assume ~n <= 0;#res := 1; 571008#factFINAL assume true; 571002#factEXIT >#66#return; 571001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568887#factFINAL assume true; 568874#factEXIT >#66#return; 568873#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568871#factFINAL assume true; 568848#factEXIT >#66#return; 568866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571009#factFINAL assume true; 568831#factEXIT >#74#return; 568775#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 568819#$Ultimate##0 ~n := #in~n; 570974#L25 assume !(~n <= 0); 568856#L26 call #t~ret0 := fact(~n - 1);< 570973#$Ultimate##0 ~n := #in~n; 570043#L25 assume ~n <= 0;#res := 1; 570972#factFINAL assume true; 569040#factEXIT >#66#return; 569043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568829#factFINAL assume true; 568817#factEXIT >#76#return; 568773#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 568782#$Ultimate##0 ~n := #in~n; 570045#L25 assume !(~n <= 0); 568849#L26 call #t~ret0 := fact(~n - 1);< 570042#$Ultimate##0 ~n := #in~n; 570040#L25 assume !(~n <= 0); 568850#L26 call #t~ret0 := fact(~n - 1);< 568879#$Ultimate##0 ~n := #in~n; 571007#L25 assume ~n <= 0;#res := 1; 571008#factFINAL assume true; 571002#factEXIT >#66#return; 571001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568887#factFINAL assume true; 568874#factEXIT >#66#return; 568877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568994#factFINAL assume true; 568761#factEXIT >#78#return; 568759#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 568758#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 568757#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 568756#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 568755#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 568753#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 568751#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 568749#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 568322#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 568329#$Ultimate##0 ~n := #in~n; 568412#L25 assume !(~n <= 0); 568380#L26 call #t~ret0 := fact(~n - 1);< 568411#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 568375#L26 call #t~ret0 := fact(~n - 1);< 568814#$Ultimate##0 ~n := #in~n; 571012#L25 assume ~n <= 0;#res := 1; 571010#factFINAL assume true; 568812#factEXIT >#66#return; 568811#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568413#factFINAL assume true; 568371#factEXIT >#66#return; 568370#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568333#factFINAL assume true; 568321#factEXIT >#68#return; 568311#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 568314#$Ultimate##0 ~n := #in~n; 568320#L25 assume ~n <= 0;#res := 1; 568319#factFINAL assume true; 568305#factEXIT >#70#return; 568295#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 568303#$Ultimate##0 ~n := #in~n; 568701#L25 assume !(~n <= 0); 568231#L26 call #t~ret0 := fact(~n - 1);< 568243#$Ultimate##0 ~n := #in~n; 568449#L25 assume !(~n <= 0); 568444#L26 call #t~ret0 := fact(~n - 1);< 568447#$Ultimate##0 ~n := #in~n; 571063#L25 assume ~n <= 0;#res := 1; 571062#factFINAL assume true; 568443#factEXIT >#66#return; 568441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568419#factFINAL assume true; 568227#factEXIT >#66#return; 568242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568698#factFINAL assume true; 568291#factEXIT >#72#return; 568289#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 568288#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 568287#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 568286#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 568285#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 568211#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 568219#$Ultimate##0 ~n := #in~n; 568257#L25 assume !(~n <= 0); 568229#L26 call #t~ret0 := fact(~n - 1);< 568243#$Ultimate##0 ~n := #in~n; 568449#L25 assume !(~n <= 0); 568444#L26 call #t~ret0 := fact(~n - 1);< 568447#$Ultimate##0 ~n := #in~n; 571063#L25 assume ~n <= 0;#res := 1; 571062#factFINAL assume true; 568443#factEXIT >#66#return; 568441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568419#factFINAL assume true; 568227#factEXIT >#66#return; 568225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568222#factFINAL assume true; 568200#factEXIT >#68#return; 568218#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 568258#$Ultimate##0 ~n := #in~n; 571051#L25 assume !(~n <= 0); 568105#L26 call #t~ret0 := fact(~n - 1);< 568173#$Ultimate##0 ~n := #in~n; 568139#L25 assume ~n <= 0;#res := 1; 568135#factFINAL assume true; 568098#factEXIT >#66#return; 568116#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568435#factFINAL assume true; 568244#factEXIT >#70#return; 568247#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 568256#$Ultimate##0 ~n := #in~n; 568590#L25 assume !(~n <= 0); 568104#L26 call #t~ret0 := fact(~n - 1);< 568121#$Ultimate##0 ~n := #in~n; 568139#L25 assume ~n <= 0;#res := 1; 568135#factFINAL assume true; 568098#factEXIT >#66#return; 568116#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568435#factFINAL assume true; 568244#factEXIT >#72#return; 568252#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 568280#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 568279#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 568278#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 568277#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 568208#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 568219#$Ultimate##0 ~n := #in~n; 568257#L25 assume !(~n <= 0); 568229#L26 call #t~ret0 := fact(~n - 1);< 568243#$Ultimate##0 ~n := #in~n; 568449#L25 assume !(~n <= 0); 568444#L26 call #t~ret0 := fact(~n - 1);< 568447#$Ultimate##0 ~n := #in~n; 571063#L25 assume ~n <= 0;#res := 1; 571062#factFINAL assume true; 568443#factEXIT >#66#return; 568441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568419#factFINAL assume true; 568227#factEXIT >#66#return; 568225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568222#factFINAL assume true; 568200#factEXIT >#68#return; 568197#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 568199#$Ultimate##0 ~n := #in~n; 570996#L25 assume !(~n <= 0); 568157#L26 call #t~ret0 := fact(~n - 1);< 568420#$Ultimate##0 ~n := #in~n; 571047#L25 assume !(~n <= 0); 568230#L26 call #t~ret0 := fact(~n - 1);< 568446#$Ultimate##0 ~n := #in~n; 571063#L25 assume ~n <= 0;#res := 1; 571062#factFINAL assume true; 568443#factEXIT >#66#return; 568441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568419#factFINAL assume true; 568227#factEXIT >#66#return; 568240#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568417#factFINAL assume true; 568192#factEXIT >#70#return; 568181#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 568191#$Ultimate##0 ~n := #in~n; 568338#L25 assume ~n <= 0;#res := 1; 568335#factFINAL assume true; 568180#factEXIT >#72#return; 568187#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 568272#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 568271#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 568269#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 568060#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 568000#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 568002#$Ultimate##0 ~n := #in~n; 568006#L25 assume !(~n <= 0); 567862#L26 call #t~ret0 := fact(~n - 1);< 567868#$Ultimate##0 ~n := #in~n; 567934#L25 assume !(~n <= 0); 567853#L26 call #t~ret0 := fact(~n - 1);< 567923#$Ultimate##0 ~n := #in~n; 567934#L25 assume !(~n <= 0); 567853#L26 call #t~ret0 := fact(~n - 1);< 567923#$Ultimate##0 ~n := #in~n; 567929#L25 assume ~n <= 0;#res := 1; 567932#factFINAL assume true; 567921#factEXIT >#66#return; 567908#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567892#factFINAL assume true; 567879#factEXIT >#66#return; 567888#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567910#factFINAL assume true; 567895#factEXIT >#66#return; 567900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568004#factFINAL assume true; 567998#factEXIT >#74#return; 567911#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 567995#$Ultimate##0 ~n := #in~n; 569024#L25 assume !(~n <= 0); 567886#L26 call #t~ret0 := fact(~n - 1);< 567914#$Ultimate##0 ~n := #in~n; 567926#L25 assume !(~n <= 0); 567883#L26 call #t~ret0 := fact(~n - 1);< 567924#$Ultimate##0 ~n := #in~n; 567929#L25 assume ~n <= 0;#res := 1; 567932#factFINAL assume true; 567921#factEXIT >#66#return; 567908#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567892#factFINAL assume true; 567879#factEXIT >#66#return; 567887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568048#factFINAL assume true; 567989#factEXIT >#76#return; 566830#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 567992#$Ultimate##0 ~n := #in~n; 571446#L25 assume !(~n <= 0); 566829#L26 call #t~ret0 := fact(~n - 1);< 566831#$Ultimate##0 ~n := #in~n; 568055#L25 assume ~n <= 0;#res := 1; 571433#factFINAL assume true; 571421#factEXIT >#66#return; 571423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571125#factFINAL assume true; 567690#factEXIT >#78#return; 567678#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 567676#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 567674#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 567672#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 567670#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 567668#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 567666#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 567664#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 567166#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 566802#$Ultimate##0 ~n := #in~n; 567469#L25 assume !(~n <= 0); 567145#L26 call #t~ret0 := fact(~n - 1);< 567167#$Ultimate##0 ~n := #in~n; 567891#L25 assume !(~n <= 0); 567173#L26 call #t~ret0 := fact(~n - 1);< 567179#$Ultimate##0 ~n := #in~n; 567378#L25 assume !(~n <= 0); 567191#L26 call #t~ret0 := fact(~n - 1);< 567198#$Ultimate##0 ~n := #in~n; 567255#L25 assume !(~n <= 0); 567214#L26 call #t~ret0 := fact(~n - 1);< 567218#$Ultimate##0 ~n := #in~n; 567244#L25 assume !(~n <= 0); 567237#L26 call #t~ret0 := fact(~n - 1);< 567238#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567180#factFINAL assume true; 567169#factEXIT >#66#return; 567168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567165#factFINAL assume true; 567139#factEXIT >#66#return; 567162#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567707#factFINAL assume true; 567662#factEXIT >#68#return; 567492#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 567497#$Ultimate##0 ~n := #in~n; 567500#L25 assume ~n <= 0;#res := 1; 567498#factFINAL assume true; 567488#factEXIT >#70#return; 567266#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 567276#$Ultimate##0 ~n := #in~n; 567272#L25 assume !(~n <= 0); 567157#L26 call #t~ret0 := fact(~n - 1);< 567259#$Ultimate##0 ~n := #in~n; 567257#L25 assume !(~n <= 0); 567151#L26 call #t~ret0 := fact(~n - 1);< 567181#$Ultimate##0 ~n := #in~n; 567249#L25 assume !(~n <= 0); 567152#L26 call #t~ret0 := fact(~n - 1);< 567201#$Ultimate##0 ~n := #in~n; 567243#L25 assume !(~n <= 0); 567144#L26 call #t~ret0 := fact(~n - 1);< 567199#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567180#factFINAL assume true; 567169#factEXIT >#66#return; 567168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567165#factFINAL assume true; 567139#factEXIT >#66#return; 567163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567648#factFINAL assume true; 567647#factEXIT >#72#return; 567481#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 567660#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 567659#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 567658#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 567657#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 567134#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 567136#$Ultimate##0 ~n := #in~n; 567878#L25 assume !(~n <= 0); 567150#L26 call #t~ret0 := fact(~n - 1);< 567164#$Ultimate##0 ~n := #in~n; 567273#L25 assume !(~n <= 0); 567175#L26 call #t~ret0 := fact(~n - 1);< 567186#$Ultimate##0 ~n := #in~n; 567258#L25 assume !(~n <= 0); 567192#L26 call #t~ret0 := fact(~n - 1);< 567209#$Ultimate##0 ~n := #in~n; 567250#L25 assume !(~n <= 0); 567213#L26 call #t~ret0 := fact(~n - 1);< 567247#$Ultimate##0 ~n := #in~n; 567244#L25 assume !(~n <= 0); 567237#L26 call #t~ret0 := fact(~n - 1);< 567238#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567180#factFINAL assume true; 567169#factEXIT >#66#return; 567168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567165#factFINAL assume true; 567139#factEXIT >#66#return; 567138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567137#factFINAL assume true; 567041#factEXIT >#68#return; 566910#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 567341#$Ultimate##0 ~n := #in~n; 567359#L25 assume !(~n <= 0); 567347#L26 call #t~ret0 := fact(~n - 1);< 567349#$Ultimate##0 ~n := #in~n; 567357#L25 assume ~n <= 0;#res := 1; 567353#factFINAL assume true; 567345#factEXIT >#66#return; 567344#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567340#factFINAL assume true; 567326#factEXIT >#70#return; 567204#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 567459#$Ultimate##0 ~n := #in~n; 567909#L25 assume !(~n <= 0); 567174#L26 call #t~ret0 := fact(~n - 1);< 567206#$Ultimate##0 ~n := #in~n; 567928#L25 assume !(~n <= 0); 567190#L26 call #t~ret0 := fact(~n - 1);< 567217#$Ultimate##0 ~n := #in~n; 567246#L25 assume !(~n <= 0); 567212#L26 call #t~ret0 := fact(~n - 1);< 567218#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567196#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567455#factFINAL assume true; 567442#factEXIT >#72#return; 567385#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 567529#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 567524#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 567525#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 567521#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 567105#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 567136#$Ultimate##0 ~n := #in~n; 567878#L25 assume !(~n <= 0); 567150#L26 call #t~ret0 := fact(~n - 1);< 567164#$Ultimate##0 ~n := #in~n; 567273#L25 assume !(~n <= 0); 567175#L26 call #t~ret0 := fact(~n - 1);< 567186#$Ultimate##0 ~n := #in~n; 567258#L25 assume !(~n <= 0); 567192#L26 call #t~ret0 := fact(~n - 1);< 567209#$Ultimate##0 ~n := #in~n; 567250#L25 assume !(~n <= 0); 567213#L26 call #t~ret0 := fact(~n - 1);< 567247#$Ultimate##0 ~n := #in~n; 567244#L25 assume !(~n <= 0); 567237#L26 call #t~ret0 := fact(~n - 1);< 567238#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567180#factFINAL assume true; 567169#factEXIT >#66#return; 567168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567165#factFINAL assume true; 567139#factEXIT >#66#return; 567138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567137#factFINAL assume true; 567041#factEXIT >#68#return; 566980#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 567039#$Ultimate##0 ~n := #in~n; 567463#L25 assume !(~n <= 0); 567141#L26 call #t~ret0 := fact(~n - 1);< 567199#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567215#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567461#factFINAL assume true; 567412#factEXIT >#70#return; 567208#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 567379#$Ultimate##0 ~n := #in~n; 567377#L25 assume !(~n <= 0); 567193#L26 call #t~ret0 := fact(~n - 1);< 567209#$Ultimate##0 ~n := #in~n; 567250#L25 assume !(~n <= 0); 567213#L26 call #t~ret0 := fact(~n - 1);< 567247#$Ultimate##0 ~n := #in~n; 567244#L25 assume !(~n <= 0); 567237#L26 call #t~ret0 := fact(~n - 1);< 567238#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567196#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567455#factFINAL assume true; 567442#factEXIT >#72#return; 567443#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 567656#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 567655#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 567654#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 567653#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 567122#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 567136#$Ultimate##0 ~n := #in~n; 567878#L25 assume !(~n <= 0); 567150#L26 call #t~ret0 := fact(~n - 1);< 567164#$Ultimate##0 ~n := #in~n; 567273#L25 assume !(~n <= 0); 567175#L26 call #t~ret0 := fact(~n - 1);< 567186#$Ultimate##0 ~n := #in~n; 567258#L25 assume !(~n <= 0); 567192#L26 call #t~ret0 := fact(~n - 1);< 567209#$Ultimate##0 ~n := #in~n; 567250#L25 assume !(~n <= 0); 567213#L26 call #t~ret0 := fact(~n - 1);< 567247#$Ultimate##0 ~n := #in~n; 567244#L25 assume !(~n <= 0); 567237#L26 call #t~ret0 := fact(~n - 1);< 567238#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567180#factFINAL assume true; 567169#factEXIT >#66#return; 567168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567165#factFINAL assume true; 567139#factEXIT >#66#return; 567138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567137#factFINAL assume true; 567041#factEXIT >#68#return; 567014#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 567039#$Ultimate##0 ~n := #in~n; 567463#L25 assume !(~n <= 0); 567141#L26 call #t~ret0 := fact(~n - 1);< 567199#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567196#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567455#factFINAL assume true; 567442#factEXIT >#70#return; 567231#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 567456#$Ultimate##0 ~n := #in~n; 567457#L25 assume !(~n <= 0); 567194#L26 call #t~ret0 := fact(~n - 1);< 567217#$Ultimate##0 ~n := #in~n; 567246#L25 assume !(~n <= 0); 567212#L26 call #t~ret0 := fact(~n - 1);< 567218#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567215#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567461#factFINAL assume true; 567412#factEXIT >#72#return; 567440#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 567652#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 567651#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 567650#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 567649#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 567063#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 567136#$Ultimate##0 ~n := #in~n; 567878#L25 assume !(~n <= 0); 567150#L26 call #t~ret0 := fact(~n - 1);< 567164#$Ultimate##0 ~n := #in~n; 567273#L25 assume !(~n <= 0); 567175#L26 call #t~ret0 := fact(~n - 1);< 567186#$Ultimate##0 ~n := #in~n; 567258#L25 assume !(~n <= 0); 567192#L26 call #t~ret0 := fact(~n - 1);< 567209#$Ultimate##0 ~n := #in~n; 567250#L25 assume !(~n <= 0); 567213#L26 call #t~ret0 := fact(~n - 1);< 567247#$Ultimate##0 ~n := #in~n; 567244#L25 assume !(~n <= 0); 567237#L26 call #t~ret0 := fact(~n - 1);< 567238#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567180#factFINAL assume true; 567169#factEXIT >#66#return; 567168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567165#factFINAL assume true; 567139#factEXIT >#66#return; 567138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567137#factFINAL assume true; 567041#factEXIT >#68#return; 567013#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 567039#$Ultimate##0 ~n := #in~n; 567463#L25 assume !(~n <= 0); 567141#L26 call #t~ret0 := fact(~n - 1);< 567199#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567180#factFINAL assume true; 567169#factEXIT >#66#return; 567176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567458#factFINAL assume true; 567381#factEXIT >#70#return; 567328#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 567343#$Ultimate##0 ~n := #in~n; 567362#L25 assume !(~n <= 0); 567195#L26 call #t~ret0 := fact(~n - 1);< 567351#$Ultimate##0 ~n := #in~n; 567357#L25 assume ~n <= 0;#res := 1; 567353#factFINAL assume true; 567345#factEXIT >#66#return; 567344#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567340#factFINAL assume true; 567326#factEXIT >#72#return; 567337#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 570512#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 570510#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 570509#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 570508#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 567066#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 567136#$Ultimate##0 ~n := #in~n; 567878#L25 assume !(~n <= 0); 567150#L26 call #t~ret0 := fact(~n - 1);< 567164#$Ultimate##0 ~n := #in~n; 567273#L25 assume !(~n <= 0); 567175#L26 call #t~ret0 := fact(~n - 1);< 567186#$Ultimate##0 ~n := #in~n; 567258#L25 assume !(~n <= 0); 567192#L26 call #t~ret0 := fact(~n - 1);< 567209#$Ultimate##0 ~n := #in~n; 567250#L25 assume !(~n <= 0); 567213#L26 call #t~ret0 := fact(~n - 1);< 567247#$Ultimate##0 ~n := #in~n; 567244#L25 assume !(~n <= 0); 567237#L26 call #t~ret0 := fact(~n - 1);< 567238#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567180#factFINAL assume true; 567169#factEXIT >#66#return; 567168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567165#factFINAL assume true; 567139#factEXIT >#66#return; 567138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567137#factFINAL assume true; 567041#factEXIT >#68#return; 566989#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 567039#$Ultimate##0 ~n := #in~n; 567463#L25 assume !(~n <= 0); 567141#L26 call #t~ret0 := fact(~n - 1);< 567199#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567180#factFINAL assume true; 567169#factEXIT >#66#return; 567168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567165#factFINAL assume true; 567139#factEXIT >#66#return; 567160#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571374#factFINAL assume true; 571130#factEXIT >#70#return; 566915#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 566965#$Ultimate##0 ~n := #in~n; 567361#L25 assume ~n <= 0;#res := 1; 566966#factFINAL assume true; 566877#factEXIT >#72#return; 566836#L30-3 [2023-02-18 08:57:41,821 INFO L750 eck$LassoCheckResult]: Loop: 566836#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 566837#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 566852#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 566872#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 567778#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 567744#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 566781#$Ultimate##0 ~n := #in~n; 568821#L25 assume !(~n <= 0); 566866#L26 call #t~ret0 := fact(~n - 1);< 566865#$Ultimate##0 ~n := #in~n; 566867#L25 assume !(~n <= 0); 567750#L26 call #t~ret0 := fact(~n - 1);< 567823#$Ultimate##0 ~n := #in~n; 568003#L25 assume !(~n <= 0); 567751#L26 call #t~ret0 := fact(~n - 1);< 567975#$Ultimate##0 ~n := #in~n; 567997#L25 assume !(~n <= 0); 567752#L26 call #t~ret0 := fact(~n - 1);< 567815#$Ultimate##0 ~n := #in~n; 567813#L25 assume !(~n <= 0); 567754#L26 call #t~ret0 := fact(~n - 1);< 567811#$Ultimate##0 ~n := #in~n; 567813#L25 assume !(~n <= 0); 567754#L26 call #t~ret0 := fact(~n - 1);< 567811#$Ultimate##0 ~n := #in~n; 567968#L25 assume ~n <= 0;#res := 1; 567967#factFINAL assume true; 567962#factEXIT >#66#return; 567961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567810#factFINAL assume true; 567804#factEXIT >#66#return; 567805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567996#factFINAL assume true; 567985#factEXIT >#66#return; 567981#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567980#factFINAL assume true; 567973#factEXIT >#66#return; 567970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567822#factFINAL assume true; 567816#factEXIT >#66#return; 567756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568005#factFINAL assume true; 567749#factEXIT >#66#return; 567747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567740#factFINAL assume true; 567745#factEXIT >#74#return; 567737#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 567776#$Ultimate##0 ~n := #in~n; 567869#L25 assume !(~n <= 0); 567753#L26 call #t~ret0 := fact(~n - 1);< 567806#$Ultimate##0 ~n := #in~n; 567813#L25 assume !(~n <= 0); 567754#L26 call #t~ret0 := fact(~n - 1);< 567811#$Ultimate##0 ~n := #in~n; 567813#L25 assume !(~n <= 0); 567754#L26 call #t~ret0 := fact(~n - 1);< 567811#$Ultimate##0 ~n := #in~n; 567813#L25 assume !(~n <= 0); 567754#L26 call #t~ret0 := fact(~n - 1);< 567811#$Ultimate##0 ~n := #in~n; 567813#L25 assume !(~n <= 0); 567754#L26 call #t~ret0 := fact(~n - 1);< 567811#$Ultimate##0 ~n := #in~n; 567968#L25 assume ~n <= 0;#res := 1; 567967#factFINAL assume true; 567962#factEXIT >#66#return; 567961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567810#factFINAL assume true; 567804#factEXIT >#66#return; 567805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567996#factFINAL assume true; 567985#factEXIT >#66#return; 567981#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567980#factFINAL assume true; 567973#factEXIT >#66#return; 567970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567822#factFINAL assume true; 567816#factEXIT >#66#return; 567814#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567812#factFINAL assume true; 567736#factEXIT >#76#return; 566827#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 566874#$Ultimate##0 ~n := #in~n; 568693#L25 assume !(~n <= 0); 566825#L26 call #t~ret0 := fact(~n - 1);< 566828#$Ultimate##0 ~n := #in~n; 567969#L25 assume ~n <= 0;#res := 1; 567807#factFINAL assume true; 567802#factEXIT >#66#return; 567801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567800#factFINAL assume true; 567717#factEXIT >#78#return; 567714#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 567712#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 567711#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 567710#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 567578#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 567576#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 567574#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 567573#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 567294#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 567300#$Ultimate##0 ~n := #in~n; 567301#L25 assume !(~n <= 0); 567285#L26 call #t~ret0 := fact(~n - 1);< 567289#$Ultimate##0 ~n := #in~n; 567287#L25 assume !(~n <= 0); 567142#L26 call #t~ret0 := fact(~n - 1);< 567283#$Ultimate##0 ~n := #in~n; 567281#L25 assume !(~n <= 0); 567153#L26 call #t~ret0 := fact(~n - 1);< 567178#$Ultimate##0 ~n := #in~n; 567380#L25 assume !(~n <= 0); 567158#L26 call #t~ret0 := fact(~n - 1);< 567199#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567180#factFINAL assume true; 567169#factEXIT >#66#return; 567168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567165#factFINAL assume true; 567139#factEXIT >#66#return; 567161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567311#factFINAL assume true; 567306#factEXIT >#66#return; 567307#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567501#factFINAL assume true; 567499#factEXIT >#68#return; 567489#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 567497#$Ultimate##0 ~n := #in~n; 567500#L25 assume ~n <= 0;#res := 1; 567498#factFINAL assume true; 567488#factEXIT >#70#return; 567296#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 567302#$Ultimate##0 ~n := #in~n; 567295#L25 assume !(~n <= 0); 567286#L26 call #t~ret0 := fact(~n - 1);< 567289#$Ultimate##0 ~n := #in~n; 567287#L25 assume !(~n <= 0); 567142#L26 call #t~ret0 := fact(~n - 1);< 567283#$Ultimate##0 ~n := #in~n; 567281#L25 assume !(~n <= 0); 567153#L26 call #t~ret0 := fact(~n - 1);< 567178#$Ultimate##0 ~n := #in~n; 567380#L25 assume !(~n <= 0); 567158#L26 call #t~ret0 := fact(~n - 1);< 567199#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567180#factFINAL assume true; 567169#factEXIT >#66#return; 567168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567165#factFINAL assume true; 567139#factEXIT >#66#return; 567161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567311#factFINAL assume true; 567306#factEXIT >#66#return; 567310#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567487#factFINAL assume true; 567479#factEXIT >#72#return; 567482#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 567569#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 567567#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 567566#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 567565#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 567128#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 567275#$Ultimate##0 ~n := #in~n; 567271#L25 assume !(~n <= 0); 567148#L26 call #t~ret0 := fact(~n - 1);< 567259#$Ultimate##0 ~n := #in~n; 567257#L25 assume !(~n <= 0); 567151#L26 call #t~ret0 := fact(~n - 1);< 567181#$Ultimate##0 ~n := #in~n; 567249#L25 assume !(~n <= 0); 567152#L26 call #t~ret0 := fact(~n - 1);< 567201#$Ultimate##0 ~n := #in~n; 567243#L25 assume !(~n <= 0); 567144#L26 call #t~ret0 := fact(~n - 1);< 567199#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567180#factFINAL assume true; 567169#factEXIT >#66#return; 567168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567165#factFINAL assume true; 567139#factEXIT >#66#return; 567138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567137#factFINAL assume true; 567041#factEXIT >#68#return; 566920#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 567341#$Ultimate##0 ~n := #in~n; 567359#L25 assume !(~n <= 0); 567347#L26 call #t~ret0 := fact(~n - 1);< 567349#$Ultimate##0 ~n := #in~n; 567357#L25 assume ~n <= 0;#res := 1; 567353#factFINAL assume true; 567345#factEXIT >#66#return; 567344#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567340#factFINAL assume true; 567326#factEXIT >#70#return; 566990#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 567376#$Ultimate##0 ~n := #in~n; 567374#L25 assume !(~n <= 0); 567149#L26 call #t~ret0 := fact(~n - 1);< 567181#$Ultimate##0 ~n := #in~n; 567249#L25 assume !(~n <= 0); 567152#L26 call #t~ret0 := fact(~n - 1);< 567201#$Ultimate##0 ~n := #in~n; 567243#L25 assume !(~n <= 0); 567144#L26 call #t~ret0 := fact(~n - 1);< 567199#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567180#factFINAL assume true; 567169#factEXIT >#66#return; 567176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567458#factFINAL assume true; 567381#factEXIT >#72#return; 567401#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 567564#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 567563#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 567562#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 567561#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 567054#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 567275#$Ultimate##0 ~n := #in~n; 567271#L25 assume !(~n <= 0); 567148#L26 call #t~ret0 := fact(~n - 1);< 567259#$Ultimate##0 ~n := #in~n; 567257#L25 assume !(~n <= 0); 567151#L26 call #t~ret0 := fact(~n - 1);< 567181#$Ultimate##0 ~n := #in~n; 567249#L25 assume !(~n <= 0); 567152#L26 call #t~ret0 := fact(~n - 1);< 567201#$Ultimate##0 ~n := #in~n; 567243#L25 assume !(~n <= 0); 567144#L26 call #t~ret0 := fact(~n - 1);< 567199#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567180#factFINAL assume true; 567169#factEXIT >#66#return; 567168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567165#factFINAL assume true; 567139#factEXIT >#66#return; 567138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567137#factFINAL assume true; 567041#factEXIT >#68#return; 566904#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 566969#$Ultimate##0 ~n := #in~n; 566967#L25 assume !(~n <= 0); 566968#L26 call #t~ret0 := fact(~n - 1);< 567352#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567215#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567461#factFINAL assume true; 567412#factEXIT >#70#return; 567007#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 567290#$Ultimate##0 ~n := #in~n; 567288#L25 assume !(~n <= 0); 567155#L26 call #t~ret0 := fact(~n - 1);< 567201#$Ultimate##0 ~n := #in~n; 567243#L25 assume !(~n <= 0); 567144#L26 call #t~ret0 := fact(~n - 1);< 567199#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567196#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567455#factFINAL assume true; 567442#factEXIT >#72#return; 567446#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 567557#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 567555#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 567553#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 567545#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 567079#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 567275#$Ultimate##0 ~n := #in~n; 567271#L25 assume !(~n <= 0); 567148#L26 call #t~ret0 := fact(~n - 1);< 567259#$Ultimate##0 ~n := #in~n; 567257#L25 assume !(~n <= 0); 567151#L26 call #t~ret0 := fact(~n - 1);< 567181#$Ultimate##0 ~n := #in~n; 567249#L25 assume !(~n <= 0); 567152#L26 call #t~ret0 := fact(~n - 1);< 567201#$Ultimate##0 ~n := #in~n; 567243#L25 assume !(~n <= 0); 567144#L26 call #t~ret0 := fact(~n - 1);< 567199#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567180#factFINAL assume true; 567169#factEXIT >#66#return; 567168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567165#factFINAL assume true; 567139#factEXIT >#66#return; 567138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567137#factFINAL assume true; 567041#factEXIT >#68#return; 566938#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 566969#$Ultimate##0 ~n := #in~n; 566967#L25 assume !(~n <= 0); 566968#L26 call #t~ret0 := fact(~n - 1);< 567352#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567196#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567455#factFINAL assume true; 567442#factEXIT >#70#return; 566986#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 567039#$Ultimate##0 ~n := #in~n; 567463#L25 assume !(~n <= 0); 567141#L26 call #t~ret0 := fact(~n - 1);< 567199#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567215#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567461#factFINAL assume true; 567412#factEXIT >#72#return; 567436#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 567544#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 567543#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 567542#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 567541#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 567073#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 567275#$Ultimate##0 ~n := #in~n; 567271#L25 assume !(~n <= 0); 567148#L26 call #t~ret0 := fact(~n - 1);< 567259#$Ultimate##0 ~n := #in~n; 567257#L25 assume !(~n <= 0); 567151#L26 call #t~ret0 := fact(~n - 1);< 567181#$Ultimate##0 ~n := #in~n; 567249#L25 assume !(~n <= 0); 567152#L26 call #t~ret0 := fact(~n - 1);< 567201#$Ultimate##0 ~n := #in~n; 567243#L25 assume !(~n <= 0); 567144#L26 call #t~ret0 := fact(~n - 1);< 567199#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567180#factFINAL assume true; 567169#factEXIT >#66#return; 567168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567165#factFINAL assume true; 567139#factEXIT >#66#return; 567138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567137#factFINAL assume true; 567041#factEXIT >#68#return; 566916#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 566969#$Ultimate##0 ~n := #in~n; 566967#L25 assume !(~n <= 0); 566968#L26 call #t~ret0 := fact(~n - 1);< 567352#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567180#factFINAL assume true; 567169#factEXIT >#66#return; 567176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567458#factFINAL assume true; 567381#factEXIT >#70#return; 566997#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 567342#$Ultimate##0 ~n := #in~n; 567363#L25 assume !(~n <= 0); 566968#L26 call #t~ret0 := fact(~n - 1);< 567352#$Ultimate##0 ~n := #in~n; 567357#L25 assume ~n <= 0;#res := 1; 567353#factFINAL assume true; 567345#factEXIT >#66#return; 567344#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567340#factFINAL assume true; 567326#factEXIT >#72#return; 567333#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 567538#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 567537#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 567325#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 567323#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 567068#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 567275#$Ultimate##0 ~n := #in~n; 567271#L25 assume !(~n <= 0); 567148#L26 call #t~ret0 := fact(~n - 1);< 567259#$Ultimate##0 ~n := #in~n; 567257#L25 assume !(~n <= 0); 567151#L26 call #t~ret0 := fact(~n - 1);< 567181#$Ultimate##0 ~n := #in~n; 567249#L25 assume !(~n <= 0); 567152#L26 call #t~ret0 := fact(~n - 1);< 567201#$Ultimate##0 ~n := #in~n; 567243#L25 assume !(~n <= 0); 567144#L26 call #t~ret0 := fact(~n - 1);< 567199#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567180#factFINAL assume true; 567169#factEXIT >#66#return; 567168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567165#factFINAL assume true; 567139#factEXIT >#66#return; 567138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567137#factFINAL assume true; 567041#factEXIT >#68#return; 566894#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 566969#$Ultimate##0 ~n := #in~n; 566967#L25 assume !(~n <= 0); 566968#L26 call #t~ret0 := fact(~n - 1);< 567352#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567248#L25 assume !(~n <= 0); 567147#L26 call #t~ret0 := fact(~n - 1);< 567240#$Ultimate##0 ~n := #in~n; 567242#L25 assume ~n <= 0;#res := 1; 567241#factFINAL assume true; 567236#factEXIT >#66#return; 567235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567219#factFINAL assume true; 567211#factEXIT >#66#return; 567210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567200#factFINAL assume true; 567188#factEXIT >#66#return; 567187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567180#factFINAL assume true; 567169#factEXIT >#66#return; 567168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 567165#factFINAL assume true; 567139#factEXIT >#66#return; 567160#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571374#factFINAL assume true; 571130#factEXIT >#70#return; 566890#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 566969#$Ultimate##0 ~n := #in~n; 566967#L25 assume ~n <= 0;#res := 1; 566966#factFINAL assume true; 566877#factEXIT >#72#return; 566836#L30-3 [2023-02-18 08:57:41,821 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:41,821 INFO L85 PathProgramCache]: Analyzing trace with hash 654545780, now seen corresponding path program 65 times [2023-02-18 08:57:41,821 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:41,821 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1739153437] [2023-02-18 08:57:41,821 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:41,822 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:41,839 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:41,839 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2135318580] [2023-02-18 08:57:41,839 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:57:41,839 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:41,839 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:41,843 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-18 08:57:41,843 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-18 08:57:42,349 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 25 check-sat command(s) [2023-02-18 08:57:42,349 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:42,353 INFO L263 TraceCheckSpWp]: Trace formula consists of 940 conjuncts, 25 conjunts are in the unsatisfiable core [2023-02-18 08:57:42,358 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:42,419 INFO L134 CoverageAnalysis]: Checked inductivity of 60381 backedges. 31323 proven. 168 refuted. 0 times theorem prover too weak. 28890 trivial. 0 not checked. [2023-02-18 08:57:42,419 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:42,630 INFO L134 CoverageAnalysis]: Checked inductivity of 60381 backedges. 4443 proven. 2638 refuted. 0 times theorem prover too weak. 53300 trivial. 0 not checked. [2023-02-18 08:57:42,631 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:42,631 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1739153437] [2023-02-18 08:57:42,631 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:42,631 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2135318580] [2023-02-18 08:57:42,631 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2135318580] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:42,631 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:42,631 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 22] total 25 [2023-02-18 08:57:42,631 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [627325369] [2023-02-18 08:57:42,631 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:42,632 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:57:42,632 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:42,632 INFO L85 PathProgramCache]: Analyzing trace with hash 582189069, now seen corresponding path program 65 times [2023-02-18 08:57:42,632 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:42,632 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [256477473] [2023-02-18 08:57:42,632 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:42,632 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:42,644 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:42,644 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [331536906] [2023-02-18 08:57:42,644 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:57:42,644 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:42,644 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:42,646 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-18 08:57:42,657 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-18 08:57:43,270 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 37 check-sat command(s) [2023-02-18 08:57:43,270 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:43,275 INFO L263 TraceCheckSpWp]: Trace formula consists of 1078 conjuncts, 30 conjunts are in the unsatisfiable core [2023-02-18 08:57:43,278 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:43,371 INFO L134 CoverageAnalysis]: Checked inductivity of 23407 backedges. 12272 proven. 436 refuted. 0 times theorem prover too weak. 10699 trivial. 0 not checked. [2023-02-18 08:57:43,371 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:43,699 INFO L134 CoverageAnalysis]: Checked inductivity of 23407 backedges. 1166 proven. 3600 refuted. 0 times theorem prover too weak. 18641 trivial. 0 not checked. [2023-02-18 08:57:43,699 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:43,699 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [256477473] [2023-02-18 08:57:43,699 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:43,699 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [331536906] [2023-02-18 08:57:43,699 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [331536906] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:43,699 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:43,699 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 29] total 32 [2023-02-18 08:57:43,699 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2094074664] [2023-02-18 08:57:43,700 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:43,700 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:57:43,700 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:57:43,700 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 32 interpolants. [2023-02-18 08:57:43,700 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=147, Invalid=845, Unknown=0, NotChecked=0, Total=992 [2023-02-18 08:57:43,700 INFO L87 Difference]: Start difference. First operand 4692 states and 7162 transitions. cyclomatic complexity: 2511 Second operand has 32 states, 29 states have (on average 2.9310344827586206) internal successors, (85), 32 states have internal predecessors, (85), 19 states have call successors, (29), 2 states have call predecessors, (29), 14 states have return successors, (37), 14 states have call predecessors, (37), 19 states have call successors, (37) [2023-02-18 08:57:44,894 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:57:44,894 INFO L93 Difference]: Finished difference Result 5144 states and 7886 transitions. [2023-02-18 08:57:44,894 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 5144 states and 7886 transitions. [2023-02-18 08:57:44,916 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 623 [2023-02-18 08:57:44,940 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 5144 states to 5142 states and 7884 transitions. [2023-02-18 08:57:44,940 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 326 [2023-02-18 08:57:44,941 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 326 [2023-02-18 08:57:44,941 INFO L73 IsDeterministic]: Start isDeterministic. Operand 5142 states and 7884 transitions. [2023-02-18 08:57:44,941 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:57:44,941 INFO L218 hiAutomatonCegarLoop]: Abstraction has 5142 states and 7884 transitions. [2023-02-18 08:57:44,942 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 5142 states and 7884 transitions. [2023-02-18 08:57:44,985 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 5142 to 4722. [2023-02-18 08:57:44,989 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4722 states, 2929 states have (on average 1.0495049504950495) internal successors, (3074), 2924 states have internal predecessors, (3074), 1460 states have call successors, (1482), 441 states have call predecessors, (1482), 333 states have return successors, (2604), 1356 states have call predecessors, (2604), 1460 states have call successors, (2604) [2023-02-18 08:57:45,001 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4722 states to 4722 states and 7160 transitions. [2023-02-18 08:57:45,001 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4722 states and 7160 transitions. [2023-02-18 08:57:45,017 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2023-02-18 08:57:45,017 INFO L428 stractBuchiCegarLoop]: Abstraction has 4722 states and 7160 transitions. [2023-02-18 08:57:45,017 INFO L335 stractBuchiCegarLoop]: ======== Iteration 78 ============ [2023-02-18 08:57:45,017 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4722 states and 7160 transitions. [2023-02-18 08:57:45,027 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 551 [2023-02-18 08:57:45,027 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:57:45,027 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:57:45,032 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [275, 275, 197, 197, 197, 197, 78, 26, 25, 19, 19, 19, 19, 19, 19, 19, 18, 18, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 4, 4, 1, 1, 1, 1] [2023-02-18 08:57:45,032 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [118, 118, 94, 94, 94, 94, 24, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:57:45,033 INFO L748 eck$LassoCheckResult]: Stem: 586240#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 586183#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; 586184#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 586207#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; 586241#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 588833#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 588832#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 588829#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 588830#$Ultimate##0 ~n := #in~n; 588863#L25 assume ~n <= 0;#res := 1; 588861#factFINAL assume true; 588828#factEXIT >#68#return; 588821#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 588822#$Ultimate##0 ~n := #in~n; 588827#L25 assume ~n <= 0;#res := 1; 588825#factFINAL assume true; 588820#factEXIT >#70#return; 588817#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 588818#$Ultimate##0 ~n := #in~n; 588831#L25 assume ~n <= 0;#res := 1; 588823#factFINAL assume true; 588816#factEXIT >#72#return; 588812#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 588808#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 588801#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 588797#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 588794#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 588791#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 588792#$Ultimate##0 ~n := #in~n; 588814#L25 assume !(~n <= 0); 588806#L26 call #t~ret0 := fact(~n - 1);< 588807#$Ultimate##0 ~n := #in~n; 588815#L25 assume ~n <= 0;#res := 1; 588811#factFINAL assume true; 588805#factEXIT >#66#return; 588799#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588793#factFINAL assume true; 588790#factEXIT >#74#return; 588788#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 588789#$Ultimate##0 ~n := #in~n; 588800#L25 assume ~n <= 0;#res := 1; 588796#factFINAL assume true; 588787#factEXIT >#76#return; 588784#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 588785#$Ultimate##0 ~n := #in~n; 588810#L25 assume !(~n <= 0); 588803#L26 call #t~ret0 := fact(~n - 1);< 588804#$Ultimate##0 ~n := #in~n; 588813#L25 assume ~n <= 0;#res := 1; 588809#factFINAL assume true; 588802#factEXIT >#66#return; 588798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588795#factFINAL assume true; 588783#factEXIT >#78#return; 588781#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 588780#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 588779#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 588778#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 588777#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 588775#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 588776#$Ultimate##0 ~n := #in~n; 588843#L25 assume !(~n <= 0); 588835#L26 call #t~ret0 := fact(~n - 1);< 588840#$Ultimate##0 ~n := #in~n; 588848#L25 assume !(~n <= 0); 588837#L26 call #t~ret0 := fact(~n - 1);< 588846#$Ultimate##0 ~n := #in~n; 588862#L25 assume ~n <= 0;#res := 1; 588860#factFINAL assume true; 588845#factEXIT >#66#return; 588844#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588842#factFINAL assume true; 588834#factEXIT >#66#return; 588838#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 589057#factFINAL assume true; 588774#factEXIT >#74#return; 588772#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 588773#$Ultimate##0 ~n := #in~n; 588786#L25 assume ~n <= 0;#res := 1; 588782#factFINAL assume true; 588771#factEXIT >#76#return; 588769#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 588770#$Ultimate##0 ~n := #in~n; 588841#L25 assume !(~n <= 0); 588836#L26 call #t~ret0 := fact(~n - 1);< 588840#$Ultimate##0 ~n := #in~n; 588848#L25 assume !(~n <= 0); 588837#L26 call #t~ret0 := fact(~n - 1);< 588846#$Ultimate##0 ~n := #in~n; 588862#L25 assume ~n <= 0;#res := 1; 588860#factFINAL assume true; 588845#factEXIT >#66#return; 588844#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588842#factFINAL assume true; 588834#factEXIT >#66#return; 588824#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588819#factFINAL assume true; 588768#factEXIT >#78#return; 588766#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 588765#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 588764#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 588763#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 588761#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 588596#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 588597#$Ultimate##0 ~n := #in~n; 588705#L25 assume !(~n <= 0); 588702#L26 call #t~ret0 := fact(~n - 1);< 588703#$Ultimate##0 ~n := #in~n; 588725#L25 assume !(~n <= 0); 588701#L26 call #t~ret0 := fact(~n - 1);< 588723#$Ultimate##0 ~n := #in~n; 588725#L25 assume !(~n <= 0); 588701#L26 call #t~ret0 := fact(~n - 1);< 588723#$Ultimate##0 ~n := #in~n; 588739#L25 assume ~n <= 0;#res := 1; 588737#factFINAL assume true; 588736#factEXIT >#66#return; 588735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588734#factFINAL assume true; 588722#factEXIT >#66#return; 588720#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588719#factFINAL assume true; 588700#factEXIT >#66#return; 588698#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588696#factFINAL assume true; 588595#factEXIT >#74#return; 588592#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 588593#$Ultimate##0 ~n := #in~n; 588684#L25 assume ~n <= 0;#res := 1; 588594#factFINAL assume true; 588591#factEXIT >#76#return; 586215#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 588590#$Ultimate##0 ~n := #in~n; 589019#L25 assume !(~n <= 0); 588653#L26 call #t~ret0 := fact(~n - 1);< 588659#$Ultimate##0 ~n := #in~n; 588679#L25 assume !(~n <= 0); 588655#L26 call #t~ret0 := fact(~n - 1);< 588674#$Ultimate##0 ~n := #in~n; 588679#L25 assume !(~n <= 0); 588655#L26 call #t~ret0 := fact(~n - 1);< 588674#$Ultimate##0 ~n := #in~n; 588742#L25 assume ~n <= 0;#res := 1; 588741#factFINAL assume true; 588673#factEXIT >#66#return; 588671#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588669#factFINAL assume true; 588665#factEXIT >#66#return; 588661#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588660#factFINAL assume true; 588652#factEXIT >#66#return; 586214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586216#factFINAL assume true; 588589#factEXIT >#78#return; 588579#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 588578#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 588577#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 588576#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 588574#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 588573#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 588572#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 587751#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 587677#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 587681#$Ultimate##0 ~n := #in~n; 587742#L25 assume !(~n <= 0); 587712#L26 call #t~ret0 := fact(~n - 1);< 587731#$Ultimate##0 ~n := #in~n; 587926#L25 assume ~n <= 0;#res := 1; 588504#factFINAL assume true; 588491#factEXIT >#66#return; 588489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588487#factFINAL assume true; 588486#factEXIT >#68#return; 588479#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 587669#$Ultimate##0 ~n := #in~n; 588649#L25 assume ~n <= 0;#res := 1; 588648#factFINAL assume true; 588478#factEXIT >#70#return; 588473#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 588476#$Ultimate##0 ~n := #in~n; 588474#L25 assume !(~n <= 0); 587700#L26 call #t~ret0 := fact(~n - 1);< 588472#$Ultimate##0 ~n := #in~n; 587926#L25 assume ~n <= 0;#res := 1; 588504#factFINAL assume true; 588491#factEXIT >#66#return; 588501#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 589101#factFINAL assume true; 589100#factEXIT >#72#return; 589099#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 589098#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 589097#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 589095#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 589094#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 588532#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 588536#$Ultimate##0 ~n := #in~n; 588535#L25 assume !(~n <= 0); 587698#L26 call #t~ret0 := fact(~n - 1);< 588472#$Ultimate##0 ~n := #in~n; 587926#L25 assume ~n <= 0;#res := 1; 588504#factFINAL assume true; 588491#factEXIT >#66#return; 588500#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 589093#factFINAL assume true; 589092#factEXIT >#68#return; 588521#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 589089#$Ultimate##0 ~n := #in~n; 590205#L25 assume !(~n <= 0); 587713#L26 call #t~ret0 := fact(~n - 1);< 587731#$Ultimate##0 ~n := #in~n; 587926#L25 assume ~n <= 0;#res := 1; 588504#factFINAL assume true; 588491#factEXIT >#66#return; 588497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 589090#factFINAL assume true; 589076#factEXIT >#70#return; 589066#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 589075#$Ultimate##0 ~n := #in~n; 589128#L25 assume ~n <= 0;#res := 1; 589120#factFINAL assume true; 589061#factEXIT >#72#return; 589060#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 589059#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 589058#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 589055#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 589052#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 588743#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 589047#$Ultimate##0 ~n := #in~n; 589044#L25 assume !(~n <= 0); 587721#L26 call #t~ret0 := fact(~n - 1);< 588663#$Ultimate##0 ~n := #in~n; 588475#L25 assume !(~n <= 0); 587697#L26 call #t~ret0 := fact(~n - 1);< 587749#$Ultimate##0 ~n := #in~n; 587762#L25 assume ~n <= 0;#res := 1; 587759#factFINAL assume true; 587747#factEXIT >#66#return; 587744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587734#factFINAL assume true; 587691#factEXIT >#66#return; 587729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 589864#factFINAL assume true; 589861#factEXIT >#74#return; 588517#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 588539#$Ultimate##0 ~n := #in~n; 588537#L25 assume !(~n <= 0); 587701#L26 call #t~ret0 := fact(~n - 1);< 587731#$Ultimate##0 ~n := #in~n; 587926#L25 assume ~n <= 0;#res := 1; 588504#factFINAL assume true; 588491#factEXIT >#66#return; 588496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 589678#factFINAL assume true; 589669#factEXIT >#76#return; 589637#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 589679#$Ultimate##0 ~n := #in~n; 589720#L25 assume !(~n <= 0); 588494#L26 call #t~ret0 := fact(~n - 1);< 588664#$Ultimate##0 ~n := #in~n; 587926#L25 assume ~n <= 0;#res := 1; 588504#factFINAL assume true; 588491#factEXIT >#66#return; 588496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 589678#factFINAL assume true; 589669#factEXIT >#78#return; 589673#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 589860#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 589859#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 589857#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 589855#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 588032#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 589652#$Ultimate##0 ~n := #in~n; 590769#L25 assume !(~n <= 0); 589748#L26 call #t~ret0 := fact(~n - 1);< 590765#$Ultimate##0 ~n := #in~n; 589926#L25 assume !(~n <= 0); 589742#L26 call #t~ret0 := fact(~n - 1);< 589778#$Ultimate##0 ~n := #in~n; 589926#L25 assume !(~n <= 0); 589742#L26 call #t~ret0 := fact(~n - 1);< 589778#$Ultimate##0 ~n := #in~n; 589784#L25 assume ~n <= 0;#res := 1; 589783#factFINAL assume true; 589776#factEXIT >#66#return; 589775#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 589767#factFINAL assume true; 589741#factEXIT >#66#return; 589760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 589911#factFINAL assume true; 589905#factEXIT >#66#return; 589908#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 589953#factFINAL assume true; 589586#factEXIT >#74#return; 589594#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 589605#$Ultimate##0 ~n := #in~n; 589924#L25 assume !(~n <= 0); 589743#L26 call #t~ret0 := fact(~n - 1);< 589921#$Ultimate##0 ~n := #in~n; 589782#L25 assume ~n <= 0;#res := 1; 589925#factFINAL assume true; 589917#factEXIT >#66#return; 589916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 589647#factFINAL assume true; 589616#factEXIT >#76#return; 588025#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 588053#$Ultimate##0 ~n := #in~n; 589903#L25 assume !(~n <= 0); 589744#L26 call #t~ret0 := fact(~n - 1);< 589875#$Ultimate##0 ~n := #in~n; 589874#L25 assume !(~n <= 0); 589757#L26 call #t~ret0 := fact(~n - 1);< 589870#$Ultimate##0 ~n := #in~n; 589784#L25 assume ~n <= 0;#res := 1; 589783#factFINAL assume true; 589776#factEXIT >#66#return; 589775#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 589767#factFINAL assume true; 589741#factEXIT >#66#return; 589735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 589721#factFINAL assume true; 589666#factEXIT >#78#return; 589668#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 590751#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 590750#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 590749#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 586206#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 586199#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 586200#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 590810#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 587679#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 587681#$Ultimate##0 ~n := #in~n; 587742#L25 assume !(~n <= 0); 587712#L26 call #t~ret0 := fact(~n - 1);< 587731#$Ultimate##0 ~n := #in~n; 587813#L25 assume !(~n <= 0); 587714#L26 call #t~ret0 := fact(~n - 1);< 587766#$Ultimate##0 ~n := #in~n; 587762#L25 assume ~n <= 0;#res := 1; 587759#factFINAL assume true; 587747#factEXIT >#66#return; 587744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587734#factFINAL assume true; 587691#factEXIT >#66#return; 587689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587684#factFINAL assume true; 587673#factEXIT >#68#return; 587664#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 587672#$Ultimate##0 ~n := #in~n; 587687#L25 assume ~n <= 0;#res := 1; 587683#factFINAL assume true; 587662#factEXIT >#70#return; 587648#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 587658#$Ultimate##0 ~n := #in~n; 587688#L25 assume !(~n <= 0); 587261#L26 call #t~ret0 := fact(~n - 1);< 587272#$Ultimate##0 ~n := #in~n; 587296#L25 assume !(~n <= 0); 587292#L26 call #t~ret0 := fact(~n - 1);< 587295#$Ultimate##0 ~n := #in~n; 587300#L25 assume ~n <= 0;#res := 1; 587298#factFINAL assume true; 587291#factEXIT >#66#return; 587282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587274#factFINAL assume true; 587254#factEXIT >#66#return; 587269#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587661#factFINAL assume true; 587646#factEXIT >#72#return; 587656#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 590767#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 590766#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 590764#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 590763#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 587605#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 587609#$Ultimate##0 ~n := #in~n; 587614#L25 assume !(~n <= 0); 587262#L26 call #t~ret0 := fact(~n - 1);< 587272#$Ultimate##0 ~n := #in~n; 587296#L25 assume !(~n <= 0); 587292#L26 call #t~ret0 := fact(~n - 1);< 587295#$Ultimate##0 ~n := #in~n; 587300#L25 assume ~n <= 0;#res := 1; 587298#factFINAL assume true; 587291#factEXIT >#66#return; 587282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587274#factFINAL assume true; 587254#factEXIT >#66#return; 587270#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587610#factFINAL assume true; 587596#factEXIT >#68#return; 587331#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 587413#$Ultimate##0 ~n := #in~n; 587456#L25 assume !(~n <= 0); 587233#L26 call #t~ret0 := fact(~n - 1);< 587337#$Ultimate##0 ~n := #in~n; 587483#L25 assume ~n <= 0;#res := 1; 587461#factFINAL assume true; 587440#factEXIT >#66#return; 587448#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587637#factFINAL assume true; 587625#factEXIT >#70#return; 587626#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 587636#$Ultimate##0 ~n := #in~n; 587645#L25 assume !(~n <= 0); 587441#L26 call #t~ret0 := fact(~n - 1);< 587451#$Ultimate##0 ~n := #in~n; 587483#L25 assume ~n <= 0;#res := 1; 587461#factFINAL assume true; 587440#factEXIT >#66#return; 587448#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587637#factFINAL assume true; 587625#factEXIT >#72#return; 587632#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 590786#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 590785#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 590783#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 590782#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 587607#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 587609#$Ultimate##0 ~n := #in~n; 587614#L25 assume !(~n <= 0); 587262#L26 call #t~ret0 := fact(~n - 1);< 587272#$Ultimate##0 ~n := #in~n; 587296#L25 assume !(~n <= 0); 587292#L26 call #t~ret0 := fact(~n - 1);< 587295#$Ultimate##0 ~n := #in~n; 587300#L25 assume ~n <= 0;#res := 1; 587298#factFINAL assume true; 587291#factEXIT >#66#return; 587282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587274#factFINAL assume true; 587254#factEXIT >#66#return; 587270#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587610#factFINAL assume true; 587596#factEXIT >#68#return; 587353#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 587356#$Ultimate##0 ~n := #in~n; 587355#L25 assume !(~n <= 0); 587226#L26 call #t~ret0 := fact(~n - 1);< 587301#$Ultimate##0 ~n := #in~n; 587299#L25 assume !(~n <= 0); 587257#L26 call #t~ret0 := fact(~n - 1);< 587294#$Ultimate##0 ~n := #in~n; 587300#L25 assume ~n <= 0;#res := 1; 587298#factFINAL assume true; 587291#factEXIT >#66#return; 587282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587274#factFINAL assume true; 587254#factEXIT >#66#return; 587267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587612#factFINAL assume true; 587584#factEXIT >#70#return; 587573#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 587583#$Ultimate##0 ~n := #in~n; 587613#L25 assume ~n <= 0;#res := 1; 587611#factFINAL assume true; 587571#factEXIT >#72#return; 587581#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 589198#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 589197#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 589196#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 589195#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 587053#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 587860#$Ultimate##0 ~n := #in~n; 587858#L25 assume !(~n <= 0); 586986#L26 call #t~ret0 := fact(~n - 1);< 587001#$Ultimate##0 ~n := #in~n; 590486#L25 assume !(~n <= 0); 586980#L26 call #t~ret0 := fact(~n - 1);< 590482#$Ultimate##0 ~n := #in~n; 590486#L25 assume !(~n <= 0); 586980#L26 call #t~ret0 := fact(~n - 1);< 590482#$Ultimate##0 ~n := #in~n; 590498#L25 assume ~n <= 0;#res := 1; 590511#factFINAL assume true; 590480#factEXIT >#66#return; 590478#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587103#factFINAL assume true; 587097#factEXIT >#66#return; 587055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587050#factFINAL assume true; 587019#factEXIT >#66#return; 587029#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 589136#factFINAL assume true; 589124#factEXIT >#74#return; 587104#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 588094#$Ultimate##0 ~n := #in~n; 589129#L25 assume !(~n <= 0); 587020#L26 call #t~ret0 := fact(~n - 1);< 587065#$Ultimate##0 ~n := #in~n; 588318#L25 assume !(~n <= 0); 587099#L26 call #t~ret0 := fact(~n - 1);< 588006#$Ultimate##0 ~n := #in~n; 590498#L25 assume ~n <= 0;#res := 1; 590511#factFINAL assume true; 590480#factEXIT >#66#return; 590478#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587103#factFINAL assume true; 587097#factEXIT >#66#return; 587101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588090#factFINAL assume true; 588093#factEXIT >#76#return; 588080#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 589114#$Ultimate##0 ~n := #in~n; 589131#L25 assume !(~n <= 0); 587131#L26 call #t~ret0 := fact(~n - 1);< 587133#$Ultimate##0 ~n := #in~n; 590489#L25 assume ~n <= 0;#res := 1; 590488#factFINAL assume true; 587129#factEXIT >#66#return; 587132#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 589115#factFINAL assume true; 588077#factEXIT >#78#return; 587094#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 588075#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 588074#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 588065#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 587521#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 587503#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 587195#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 586919#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586522#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 586528#$Ultimate##0 ~n := #in~n; 586526#L25 assume !(~n <= 0); 586400#L26 call #t~ret0 := fact(~n - 1);< 586519#$Ultimate##0 ~n := #in~n; 586517#L25 assume !(~n <= 0); 586440#L26 call #t~ret0 := fact(~n - 1);< 586516#$Ultimate##0 ~n := #in~n; 586515#L25 assume !(~n <= 0); 586457#L26 call #t~ret0 := fact(~n - 1);< 586514#$Ultimate##0 ~n := #in~n; 586513#L25 assume !(~n <= 0); 586478#L26 call #t~ret0 := fact(~n - 1);< 586503#$Ultimate##0 ~n := #in~n; 586509#L25 assume !(~n <= 0); 586500#L26 call #t~ret0 := fact(~n - 1);< 586502#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586417#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586917#factFINAL assume true; 586916#factEXIT >#68#return; 586748#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586750#$Ultimate##0 ~n := #in~n; 586755#L25 assume ~n <= 0;#res := 1; 586753#factFINAL assume true; 586741#factEXIT >#70#return; 586718#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586738#$Ultimate##0 ~n := #in~n; 586736#L25 assume !(~n <= 0); 586398#L26 call #t~ret0 := fact(~n - 1);< 586433#$Ultimate##0 ~n := #in~n; 590836#L25 assume !(~n <= 0); 586397#L26 call #t~ret0 := fact(~n - 1);< 586419#$Ultimate##0 ~n := #in~n; 590826#L25 assume !(~n <= 0); 586404#L26 call #t~ret0 := fact(~n - 1);< 586473#$Ultimate##0 ~n := #in~n; 587112#L25 assume !(~n <= 0); 586407#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586914#factFINAL assume true; 586912#factEXIT >#72#return; 586726#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 586915#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 586913#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 586911#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 586905#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586680#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 586691#$Ultimate##0 ~n := #in~n; 586693#L25 assume !(~n <= 0); 586406#L26 call #t~ret0 := fact(~n - 1);< 586520#$Ultimate##0 ~n := #in~n; 586518#L25 assume !(~n <= 0); 586435#L26 call #t~ret0 := fact(~n - 1);< 586444#$Ultimate##0 ~n := #in~n; 586531#L25 assume !(~n <= 0); 586460#L26 call #t~ret0 := fact(~n - 1);< 586466#$Ultimate##0 ~n := #in~n; 590696#L25 assume !(~n <= 0); 586479#L26 call #t~ret0 := fact(~n - 1);< 586483#$Ultimate##0 ~n := #in~n; 586509#L25 assume !(~n <= 0); 586500#L26 call #t~ret0 := fact(~n - 1);< 586502#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586692#factFINAL assume true; 586666#factEXIT >#68#return; 586295#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586544#$Ultimate##0 ~n := #in~n; 586324#L25 assume !(~n <= 0); 586325#L26 call #t~ret0 := fact(~n - 1);< 586555#$Ultimate##0 ~n := #in~n; 586562#L25 assume ~n <= 0;#res := 1; 586556#factFINAL assume true; 586549#factEXIT >#66#return; 586548#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586545#factFINAL assume true; 586533#factEXIT >#70#return; 586469#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586529#$Ultimate##0 ~n := #in~n; 586527#L25 assume !(~n <= 0); 586436#L26 call #t~ret0 := fact(~n - 1);< 586472#$Ultimate##0 ~n := #in~n; 586507#L25 assume !(~n <= 0); 586461#L26 call #t~ret0 := fact(~n - 1);< 586484#$Ultimate##0 ~n := #in~n; 586510#L25 assume !(~n <= 0); 586480#L26 call #t~ret0 := fact(~n - 1);< 586503#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586838#factFINAL assume true; 586829#factEXIT >#72#return; 586792#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 586897#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 586896#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 586895#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 586894#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586672#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 586691#$Ultimate##0 ~n := #in~n; 586693#L25 assume !(~n <= 0); 586406#L26 call #t~ret0 := fact(~n - 1);< 586520#$Ultimate##0 ~n := #in~n; 586518#L25 assume !(~n <= 0); 586435#L26 call #t~ret0 := fact(~n - 1);< 586444#$Ultimate##0 ~n := #in~n; 586531#L25 assume !(~n <= 0); 586460#L26 call #t~ret0 := fact(~n - 1);< 586466#$Ultimate##0 ~n := #in~n; 590696#L25 assume !(~n <= 0); 586479#L26 call #t~ret0 := fact(~n - 1);< 586483#$Ultimate##0 ~n := #in~n; 586509#L25 assume !(~n <= 0); 586500#L26 call #t~ret0 := fact(~n - 1);< 586502#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586692#factFINAL assume true; 586666#factEXIT >#68#return; 586335#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586389#$Ultimate##0 ~n := #in~n; 586664#L25 assume !(~n <= 0); 586399#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586828#factFINAL assume true; 586802#factEXIT >#70#return; 586474#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586839#$Ultimate##0 ~n := #in~n; 590523#L25 assume !(~n <= 0); 586462#L26 call #t~ret0 := fact(~n - 1);< 586466#$Ultimate##0 ~n := #in~n; 590696#L25 assume !(~n <= 0); 586479#L26 call #t~ret0 := fact(~n - 1);< 586483#$Ultimate##0 ~n := #in~n; 586509#L25 assume !(~n <= 0); 586500#L26 call #t~ret0 := fact(~n - 1);< 586502#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586838#factFINAL assume true; 586829#factEXIT >#72#return; 586833#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 587117#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 587115#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 587114#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 587113#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586690#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 586691#$Ultimate##0 ~n := #in~n; 586693#L25 assume !(~n <= 0); 586406#L26 call #t~ret0 := fact(~n - 1);< 586520#$Ultimate##0 ~n := #in~n; 586518#L25 assume !(~n <= 0); 586435#L26 call #t~ret0 := fact(~n - 1);< 586444#$Ultimate##0 ~n := #in~n; 586531#L25 assume !(~n <= 0); 586460#L26 call #t~ret0 := fact(~n - 1);< 586466#$Ultimate##0 ~n := #in~n; 590696#L25 assume !(~n <= 0); 586479#L26 call #t~ret0 := fact(~n - 1);< 586483#$Ultimate##0 ~n := #in~n; 586509#L25 assume !(~n <= 0); 586500#L26 call #t~ret0 := fact(~n - 1);< 586502#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586692#factFINAL assume true; 586666#factEXIT >#68#return; 586360#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586389#$Ultimate##0 ~n := #in~n; 586664#L25 assume !(~n <= 0); 586399#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586838#factFINAL assume true; 586829#factEXIT >#70#return; 586493#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586564#$Ultimate##0 ~n := #in~n; 586563#L25 assume !(~n <= 0); 586458#L26 call #t~ret0 := fact(~n - 1);< 586484#$Ultimate##0 ~n := #in~n; 586510#L25 assume !(~n <= 0); 586480#L26 call #t~ret0 := fact(~n - 1);< 586503#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586828#factFINAL assume true; 586802#factEXIT >#72#return; 586823#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 587077#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 587076#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 587075#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 587074#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586679#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 586691#$Ultimate##0 ~n := #in~n; 586693#L25 assume !(~n <= 0); 586406#L26 call #t~ret0 := fact(~n - 1);< 586520#$Ultimate##0 ~n := #in~n; 586518#L25 assume !(~n <= 0); 586435#L26 call #t~ret0 := fact(~n - 1);< 586444#$Ultimate##0 ~n := #in~n; 586531#L25 assume !(~n <= 0); 586460#L26 call #t~ret0 := fact(~n - 1);< 586466#$Ultimate##0 ~n := #in~n; 590696#L25 assume !(~n <= 0); 586479#L26 call #t~ret0 := fact(~n - 1);< 586483#$Ultimate##0 ~n := #in~n; 586509#L25 assume !(~n <= 0); 586500#L26 call #t~ret0 := fact(~n - 1);< 586502#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586692#factFINAL assume true; 586666#factEXIT >#68#return; 586356#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586389#$Ultimate##0 ~n := #in~n; 586664#L25 assume !(~n <= 0); 586399#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586442#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586795#factFINAL assume true; 586774#factEXIT >#70#return; 586535#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586546#$Ultimate##0 ~n := #in~n; 586568#L25 assume !(~n <= 0); 586459#L26 call #t~ret0 := fact(~n - 1);< 586553#$Ultimate##0 ~n := #in~n; 586562#L25 assume ~n <= 0;#res := 1; 586556#factFINAL assume true; 586549#factEXIT >#66#return; 586548#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586545#factFINAL assume true; 586533#factEXIT >#72#return; 586542#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 588198#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 588197#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 588196#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 588195#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586670#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 586691#$Ultimate##0 ~n := #in~n; 586693#L25 assume !(~n <= 0); 586406#L26 call #t~ret0 := fact(~n - 1);< 586520#$Ultimate##0 ~n := #in~n; 586518#L25 assume !(~n <= 0); 586435#L26 call #t~ret0 := fact(~n - 1);< 586444#$Ultimate##0 ~n := #in~n; 586531#L25 assume !(~n <= 0); 586460#L26 call #t~ret0 := fact(~n - 1);< 586466#$Ultimate##0 ~n := #in~n; 590696#L25 assume !(~n <= 0); 586479#L26 call #t~ret0 := fact(~n - 1);< 586483#$Ultimate##0 ~n := #in~n; 586509#L25 assume !(~n <= 0); 586500#L26 call #t~ret0 := fact(~n - 1);< 586502#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586692#factFINAL assume true; 586666#factEXIT >#68#return; 586347#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586389#$Ultimate##0 ~n := #in~n; 586664#L25 assume !(~n <= 0); 586399#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588261#factFINAL assume true; 588182#factEXIT >#70#return; 586263#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586572#$Ultimate##0 ~n := #in~n; 586569#L25 assume ~n <= 0;#res := 1; 586323#factFINAL assume true; 586246#factEXIT >#72#return; 586201#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 586202#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 586217#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 588615#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 588322#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586149#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 586150#$Ultimate##0 ~n := #in~n; 586220#L25 assume !(~n <= 0); 586226#L26 call #t~ret0 := fact(~n - 1);< 588019#$Ultimate##0 ~n := #in~n; 588017#L25 assume !(~n <= 0); 587981#L26 call #t~ret0 := fact(~n - 1);< 588014#$Ultimate##0 ~n := #in~n; 588012#L25 assume !(~n <= 0); 587982#L26 call #t~ret0 := fact(~n - 1);< 588010#$Ultimate##0 ~n := #in~n; 588009#L25 assume !(~n <= 0); 587942#L26 call #t~ret0 := fact(~n - 1);< 587967#$Ultimate##0 ~n := #in~n; 587992#L25 assume !(~n <= 0); 587939#L26 call #t~ret0 := fact(~n - 1);< 587990#$Ultimate##0 ~n := #in~n; 587992#L25 assume !(~n <= 0); 587939#L26 call #t~ret0 := fact(~n - 1);< 587990#$Ultimate##0 ~n := #in~n; 587997#L25 assume ~n <= 0;#res := 1; 587995#factFINAL assume true; 587989#factEXIT >#66#return; 587987#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587965#factFINAL assume true; 587937#factEXIT >#66#return; 587944#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588142#factFINAL assume true; 588140#factEXIT >#66#return; 588139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588138#factFINAL assume true; 588134#factEXIT >#66#return; 588133#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588076#factFINAL assume true; 588072#factEXIT >#66#return; 587983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588022#factFINAL assume true; 587978#factEXIT >#66#return; 587977#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587976#factFINAL assume true; 587963#factEXIT >#74#return; 586234#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586235#$Ultimate##0 ~n := #in~n; 588123#L25 assume !(~n <= 0); 587943#L26 call #t~ret0 := fact(~n - 1);< 588007#$Ultimate##0 ~n := #in~n; 587992#L25 assume !(~n <= 0); 587939#L26 call #t~ret0 := fact(~n - 1);< 587990#$Ultimate##0 ~n := #in~n; 587992#L25 assume !(~n <= 0); 587939#L26 call #t~ret0 := fact(~n - 1);< 587990#$Ultimate##0 ~n := #in~n; 587992#L25 assume !(~n <= 0); 587939#L26 call #t~ret0 := fact(~n - 1);< 587990#$Ultimate##0 ~n := #in~n; 587992#L25 assume !(~n <= 0); 587939#L26 call #t~ret0 := fact(~n - 1);< 587990#$Ultimate##0 ~n := #in~n; 587992#L25 assume !(~n <= 0); 587939#L26 call #t~ret0 := fact(~n - 1);< 587990#$Ultimate##0 ~n := #in~n; 587997#L25 assume ~n <= 0;#res := 1; 587995#factFINAL assume true; 587989#factEXIT >#66#return; 587987#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587965#factFINAL assume true; 587937#factEXIT >#66#return; 587944#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588142#factFINAL assume true; 588140#factEXIT >#66#return; 588139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588138#factFINAL assume true; 588134#factEXIT >#66#return; 588133#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588076#factFINAL assume true; 588072#factEXIT >#66#return; 587983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588022#factFINAL assume true; 587978#factEXIT >#66#return; 587977#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587976#factFINAL assume true; 587963#factEXIT >#76#return; 586242#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586243#$Ultimate##0 ~n := #in~n; 587986#L25 assume !(~n <= 0); 587949#L26 call #t~ret0 := fact(~n - 1);< 587950#$Ultimate##0 ~n := #in~n; 587973#L25 assume ~n <= 0;#res := 1; 587971#factFINAL assume true; 587948#factEXIT >#66#return; 587947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587923#factFINAL assume true; 587918#factEXIT >#78#return; 587917#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 589774#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 589773#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 589772#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 589770#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 589769#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 589194#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 586210#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586211#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 586765#$Ultimate##0 ~n := #in~n; 586768#L25 assume !(~n <= 0); 586421#L26 call #t~ret0 := fact(~n - 1);< 586735#$Ultimate##0 ~n := #in~n; 587850#L25 assume !(~n <= 0); 586393#L26 call #t~ret0 := fact(~n - 1);< 587849#$Ultimate##0 ~n := #in~n; 587843#L25 assume !(~n <= 0); 586401#L26 call #t~ret0 := fact(~n - 1);< 587827#$Ultimate##0 ~n := #in~n; 587809#L25 assume !(~n <= 0); 586403#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586420#factFINAL assume true; 586426#factEXIT >#66#return; 586644#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586766#factFINAL assume true; 586757#factEXIT >#68#return; 586743#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586750#$Ultimate##0 ~n := #in~n; 586755#L25 assume ~n <= 0;#res := 1; 586753#factFINAL assume true; 586741#factEXIT >#70#return; 586722#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586733#$Ultimate##0 ~n := #in~n; 586737#L25 assume !(~n <= 0); 586425#L26 call #t~ret0 := fact(~n - 1);< 586735#$Ultimate##0 ~n := #in~n; 587850#L25 assume !(~n <= 0); 586393#L26 call #t~ret0 := fact(~n - 1);< 587849#$Ultimate##0 ~n := #in~n; 587843#L25 assume !(~n <= 0); 586401#L26 call #t~ret0 := fact(~n - 1);< 587827#$Ultimate##0 ~n := #in~n; 587809#L25 assume !(~n <= 0); 586403#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586420#factFINAL assume true; 586426#factEXIT >#66#return; 586646#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586734#factFINAL assume true; 586717#factEXIT >#72#return; 586714#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 586695#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 586694#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 586665#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 586663#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586622#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 586634#$Ultimate##0 ~n := #in~n; 586655#L25 assume !(~n <= 0); 586422#L26 call #t~ret0 := fact(~n - 1);< 586647#$Ultimate##0 ~n := #in~n; 588426#L25 assume !(~n <= 0); 586395#L26 call #t~ret0 := fact(~n - 1);< 586433#$Ultimate##0 ~n := #in~n; 590836#L25 assume !(~n <= 0); 586397#L26 call #t~ret0 := fact(~n - 1);< 586419#$Ultimate##0 ~n := #in~n; 590826#L25 assume !(~n <= 0); 586404#L26 call #t~ret0 := fact(~n - 1);< 586473#$Ultimate##0 ~n := #in~n; 587112#L25 assume !(~n <= 0); 586407#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586420#factFINAL assume true; 586426#factEXIT >#66#return; 586640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586637#factFINAL assume true; 586577#factEXIT >#68#return; 586261#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586544#$Ultimate##0 ~n := #in~n; 586324#L25 assume !(~n <= 0); 586325#L26 call #t~ret0 := fact(~n - 1);< 586555#$Ultimate##0 ~n := #in~n; 586562#L25 assume ~n <= 0;#res := 1; 586556#factFINAL assume true; 586549#factEXIT >#66#return; 586548#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586545#factFINAL assume true; 586533#factEXIT >#70#return; 586353#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586505#$Ultimate##0 ~n := #in~n; 586498#L25 assume !(~n <= 0); 586402#L26 call #t~ret0 := fact(~n - 1);< 586419#$Ultimate##0 ~n := #in~n; 590826#L25 assume !(~n <= 0); 586404#L26 call #t~ret0 := fact(~n - 1);< 586473#$Ultimate##0 ~n := #in~n; 587112#L25 assume !(~n <= 0); 586407#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586442#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586795#factFINAL assume true; 586774#factEXIT >#72#return; 586370#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 590162#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 590161#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 590160#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 587092#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586619#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 586634#$Ultimate##0 ~n := #in~n; 586655#L25 assume !(~n <= 0); 586422#L26 call #t~ret0 := fact(~n - 1);< 586647#$Ultimate##0 ~n := #in~n; 588426#L25 assume !(~n <= 0); 586395#L26 call #t~ret0 := fact(~n - 1);< 586433#$Ultimate##0 ~n := #in~n; 590836#L25 assume !(~n <= 0); 586397#L26 call #t~ret0 := fact(~n - 1);< 586419#$Ultimate##0 ~n := #in~n; 590826#L25 assume !(~n <= 0); 586404#L26 call #t~ret0 := fact(~n - 1);< 586473#$Ultimate##0 ~n := #in~n; 587112#L25 assume !(~n <= 0); 586407#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586420#factFINAL assume true; 586426#factEXIT >#66#return; 586640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586637#factFINAL assume true; 586577#factEXIT >#68#return; 586306#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586561#$Ultimate##0 ~n := #in~n; 586570#L25 assume !(~n <= 0); 586410#L26 call #t~ret0 := fact(~n - 1);< 586554#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586828#factFINAL assume true; 586802#factEXIT >#70#return; 586343#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586532#$Ultimate##0 ~n := #in~n; 586530#L25 assume !(~n <= 0); 586408#L26 call #t~ret0 := fact(~n - 1);< 586473#$Ultimate##0 ~n := #in~n; 587112#L25 assume !(~n <= 0); 586407#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586838#factFINAL assume true; 586829#factEXIT >#72#return; 586788#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 587089#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 587087#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 587085#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 587083#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586611#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 586634#$Ultimate##0 ~n := #in~n; 586655#L25 assume !(~n <= 0); 586422#L26 call #t~ret0 := fact(~n - 1);< 586647#$Ultimate##0 ~n := #in~n; 588426#L25 assume !(~n <= 0); 586395#L26 call #t~ret0 := fact(~n - 1);< 586433#$Ultimate##0 ~n := #in~n; 590836#L25 assume !(~n <= 0); 586397#L26 call #t~ret0 := fact(~n - 1);< 586419#$Ultimate##0 ~n := #in~n; 590826#L25 assume !(~n <= 0); 586404#L26 call #t~ret0 := fact(~n - 1);< 586473#$Ultimate##0 ~n := #in~n; 587112#L25 assume !(~n <= 0); 586407#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586420#factFINAL assume true; 586426#factEXIT >#66#return; 586640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586637#factFINAL assume true; 586577#factEXIT >#68#return; 586305#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586561#$Ultimate##0 ~n := #in~n; 586570#L25 assume !(~n <= 0); 586410#L26 call #t~ret0 := fact(~n - 1);< 586554#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586838#factFINAL assume true; 586829#factEXIT >#70#return; 586358#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586389#$Ultimate##0 ~n := #in~n; 586664#L25 assume !(~n <= 0); 586399#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586838#factFINAL assume true; 586829#factEXIT >#72#return; 586815#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 589646#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 589645#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 589644#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 589643#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586588#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 586634#$Ultimate##0 ~n := #in~n; 586655#L25 assume !(~n <= 0); 586422#L26 call #t~ret0 := fact(~n - 1);< 586647#$Ultimate##0 ~n := #in~n; 588426#L25 assume !(~n <= 0); 586395#L26 call #t~ret0 := fact(~n - 1);< 586433#$Ultimate##0 ~n := #in~n; 590836#L25 assume !(~n <= 0); 586397#L26 call #t~ret0 := fact(~n - 1);< 586419#$Ultimate##0 ~n := #in~n; 590826#L25 assume !(~n <= 0); 586404#L26 call #t~ret0 := fact(~n - 1);< 586473#$Ultimate##0 ~n := #in~n; 587112#L25 assume !(~n <= 0); 586407#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586420#factFINAL assume true; 586426#factEXIT >#66#return; 586640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586637#factFINAL assume true; 586577#factEXIT >#68#return; 586266#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586561#$Ultimate##0 ~n := #in~n; 586570#L25 assume !(~n <= 0); 586410#L26 call #t~ret0 := fact(~n - 1);< 586554#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586442#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586795#factFINAL assume true; 586774#factEXIT >#70#return; 586350#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586389#$Ultimate##0 ~n := #in~n; 586664#L25 assume !(~n <= 0); 586399#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586828#factFINAL assume true; 586802#factEXIT >#72#return; 586824#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 586849#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 586847#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 586846#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 586845#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586613#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 586634#$Ultimate##0 ~n := #in~n; 586655#L25 assume !(~n <= 0); 586422#L26 call #t~ret0 := fact(~n - 1);< 586647#$Ultimate##0 ~n := #in~n; 588426#L25 assume !(~n <= 0); 586395#L26 call #t~ret0 := fact(~n - 1);< 586433#$Ultimate##0 ~n := #in~n; 590836#L25 assume !(~n <= 0); 586397#L26 call #t~ret0 := fact(~n - 1);< 586419#$Ultimate##0 ~n := #in~n; 590826#L25 assume !(~n <= 0); 586404#L26 call #t~ret0 := fact(~n - 1);< 586473#$Ultimate##0 ~n := #in~n; 587112#L25 assume !(~n <= 0); 586407#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586420#factFINAL assume true; 586426#factEXIT >#66#return; 586640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586637#factFINAL assume true; 586577#factEXIT >#68#return; 586303#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586561#$Ultimate##0 ~n := #in~n; 586570#L25 assume !(~n <= 0); 586410#L26 call #t~ret0 := fact(~n - 1);< 586554#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588261#factFINAL assume true; 588182#factEXIT >#70#return; 586334#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586547#$Ultimate##0 ~n := #in~n; 586571#L25 assume !(~n <= 0); 586410#L26 call #t~ret0 := fact(~n - 1);< 586554#$Ultimate##0 ~n := #in~n; 586562#L25 assume ~n <= 0;#res := 1; 586556#factFINAL assume true; 586549#factEXIT >#66#return; 586548#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586545#factFINAL assume true; 586533#factEXIT >#72#return; 586539#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 586656#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 586648#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 586642#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 586639#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586620#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 586634#$Ultimate##0 ~n := #in~n; 586655#L25 assume !(~n <= 0); 586422#L26 call #t~ret0 := fact(~n - 1);< 586647#$Ultimate##0 ~n := #in~n; 588426#L25 assume !(~n <= 0); 586395#L26 call #t~ret0 := fact(~n - 1);< 586433#$Ultimate##0 ~n := #in~n; 590836#L25 assume !(~n <= 0); 586397#L26 call #t~ret0 := fact(~n - 1);< 586419#$Ultimate##0 ~n := #in~n; 590826#L25 assume !(~n <= 0); 586404#L26 call #t~ret0 := fact(~n - 1);< 586473#$Ultimate##0 ~n := #in~n; 587112#L25 assume !(~n <= 0); 586407#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586420#factFINAL assume true; 586426#factEXIT >#66#return; 586640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586637#factFINAL assume true; 586577#factEXIT >#68#return; 586294#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586561#$Ultimate##0 ~n := #in~n; 586570#L25 assume !(~n <= 0); 586410#L26 call #t~ret0 := fact(~n - 1);< 586554#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588261#factFINAL assume true; 588182#factEXIT >#70#return; 586312#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586561#$Ultimate##0 ~n := #in~n; 586570#L25 assume ~n <= 0;#res := 1; 586323#factFINAL assume true; 586246#factEXIT >#72#return; 586318#L30-3 [2023-02-18 08:57:45,033 INFO L750 eck$LassoCheckResult]: Loop: 586318#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 588193#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 588192#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 588191#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 588168#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586189#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 587964#$Ultimate##0 ~n := #in~n; 588064#L25 assume !(~n <= 0); 586188#L26 call #t~ret0 := fact(~n - 1);< 586195#$Ultimate##0 ~n := #in~n; 586232#L25 assume !(~n <= 0); 587979#L26 call #t~ret0 := fact(~n - 1);< 588023#$Ultimate##0 ~n := #in~n; 588137#L25 assume !(~n <= 0); 587980#L26 call #t~ret0 := fact(~n - 1);< 588136#$Ultimate##0 ~n := #in~n; 588155#L25 assume !(~n <= 0); 587966#L26 call #t~ret0 := fact(~n - 1);< 588119#$Ultimate##0 ~n := #in~n; 588118#L25 assume !(~n <= 0); 587941#L26 call #t~ret0 := fact(~n - 1);< 587967#$Ultimate##0 ~n := #in~n; 587992#L25 assume !(~n <= 0); 587939#L26 call #t~ret0 := fact(~n - 1);< 587990#$Ultimate##0 ~n := #in~n; 587997#L25 assume ~n <= 0;#res := 1; 587995#factFINAL assume true; 587989#factEXIT >#66#return; 587987#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587965#factFINAL assume true; 587937#factEXIT >#66#return; 587944#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588142#factFINAL assume true; 588140#factEXIT >#66#return; 588139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588138#factFINAL assume true; 588134#factEXIT >#66#return; 588133#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588076#factFINAL assume true; 588072#factEXIT >#66#return; 587983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588022#factFINAL assume true; 587978#factEXIT >#66#return; 587977#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587976#factFINAL assume true; 587963#factEXIT >#74#return; 587929#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586235#$Ultimate##0 ~n := #in~n; 588123#L25 assume !(~n <= 0); 587943#L26 call #t~ret0 := fact(~n - 1);< 588007#$Ultimate##0 ~n := #in~n; 587992#L25 assume !(~n <= 0); 587939#L26 call #t~ret0 := fact(~n - 1);< 587990#$Ultimate##0 ~n := #in~n; 587992#L25 assume !(~n <= 0); 587939#L26 call #t~ret0 := fact(~n - 1);< 587990#$Ultimate##0 ~n := #in~n; 587992#L25 assume !(~n <= 0); 587939#L26 call #t~ret0 := fact(~n - 1);< 587990#$Ultimate##0 ~n := #in~n; 587992#L25 assume !(~n <= 0); 587939#L26 call #t~ret0 := fact(~n - 1);< 587990#$Ultimate##0 ~n := #in~n; 587992#L25 assume !(~n <= 0); 587939#L26 call #t~ret0 := fact(~n - 1);< 587990#$Ultimate##0 ~n := #in~n; 587997#L25 assume ~n <= 0;#res := 1; 587995#factFINAL assume true; 587989#factEXIT >#66#return; 587987#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587965#factFINAL assume true; 587937#factEXIT >#66#return; 587944#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588142#factFINAL assume true; 588140#factEXIT >#66#return; 588139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588138#factFINAL assume true; 588134#factEXIT >#66#return; 588133#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588076#factFINAL assume true; 588072#factEXIT >#66#return; 587983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588022#factFINAL assume true; 587978#factEXIT >#66#return; 587977#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587976#factFINAL assume true; 587963#factEXIT >#76#return; 587920#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586243#$Ultimate##0 ~n := #in~n; 587986#L25 assume !(~n <= 0); 587949#L26 call #t~ret0 := fact(~n - 1);< 587950#$Ultimate##0 ~n := #in~n; 587973#L25 assume ~n <= 0;#res := 1; 587971#factFINAL assume true; 587948#factEXIT >#66#return; 587947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 587923#factFINAL assume true; 587918#factEXIT >#78#return; 587916#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 588337#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 588336#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 588335#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 588333#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 588326#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 588325#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 588324#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586760#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 587853#$Ultimate##0 ~n := #in~n; 587851#L25 assume !(~n <= 0); 586424#L26 call #t~ret0 := fact(~n - 1);< 586647#$Ultimate##0 ~n := #in~n; 588426#L25 assume !(~n <= 0); 586395#L26 call #t~ret0 := fact(~n - 1);< 586433#$Ultimate##0 ~n := #in~n; 590836#L25 assume !(~n <= 0); 586397#L26 call #t~ret0 := fact(~n - 1);< 586419#$Ultimate##0 ~n := #in~n; 590826#L25 assume !(~n <= 0); 586404#L26 call #t~ret0 := fact(~n - 1);< 586473#$Ultimate##0 ~n := #in~n; 587112#L25 assume !(~n <= 0); 586407#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586420#factFINAL assume true; 586426#factEXIT >#66#return; 586644#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586766#factFINAL assume true; 586757#factEXIT >#68#return; 586743#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586750#$Ultimate##0 ~n := #in~n; 586755#L25 assume ~n <= 0;#res := 1; 586753#factFINAL assume true; 586741#factEXIT >#70#return; 586722#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586733#$Ultimate##0 ~n := #in~n; 586737#L25 assume !(~n <= 0); 586425#L26 call #t~ret0 := fact(~n - 1);< 586735#$Ultimate##0 ~n := #in~n; 587850#L25 assume !(~n <= 0); 586393#L26 call #t~ret0 := fact(~n - 1);< 587849#$Ultimate##0 ~n := #in~n; 587843#L25 assume !(~n <= 0); 586401#L26 call #t~ret0 := fact(~n - 1);< 587827#$Ultimate##0 ~n := #in~n; 587809#L25 assume !(~n <= 0); 586403#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586420#factFINAL assume true; 586426#factEXIT >#66#return; 586646#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586734#factFINAL assume true; 586717#factEXIT >#72#return; 586714#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 586695#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 586694#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 586665#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 586663#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586622#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 586634#$Ultimate##0 ~n := #in~n; 586655#L25 assume !(~n <= 0); 586422#L26 call #t~ret0 := fact(~n - 1);< 586647#$Ultimate##0 ~n := #in~n; 588426#L25 assume !(~n <= 0); 586395#L26 call #t~ret0 := fact(~n - 1);< 586433#$Ultimate##0 ~n := #in~n; 590836#L25 assume !(~n <= 0); 586397#L26 call #t~ret0 := fact(~n - 1);< 586419#$Ultimate##0 ~n := #in~n; 590826#L25 assume !(~n <= 0); 586404#L26 call #t~ret0 := fact(~n - 1);< 586473#$Ultimate##0 ~n := #in~n; 587112#L25 assume !(~n <= 0); 586407#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586420#factFINAL assume true; 586426#factEXIT >#66#return; 586640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586637#factFINAL assume true; 586577#factEXIT >#68#return; 586261#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586544#$Ultimate##0 ~n := #in~n; 586324#L25 assume !(~n <= 0); 586325#L26 call #t~ret0 := fact(~n - 1);< 586555#$Ultimate##0 ~n := #in~n; 586562#L25 assume ~n <= 0;#res := 1; 586556#factFINAL assume true; 586549#factEXIT >#66#return; 586548#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586545#factFINAL assume true; 586533#factEXIT >#70#return; 586353#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586505#$Ultimate##0 ~n := #in~n; 586498#L25 assume !(~n <= 0); 586402#L26 call #t~ret0 := fact(~n - 1);< 586419#$Ultimate##0 ~n := #in~n; 590826#L25 assume !(~n <= 0); 586404#L26 call #t~ret0 := fact(~n - 1);< 586473#$Ultimate##0 ~n := #in~n; 587112#L25 assume !(~n <= 0); 586407#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586442#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586795#factFINAL assume true; 586774#factEXIT >#72#return; 586370#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 590162#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 590161#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 590160#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 587092#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586619#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 586634#$Ultimate##0 ~n := #in~n; 586655#L25 assume !(~n <= 0); 586422#L26 call #t~ret0 := fact(~n - 1);< 586647#$Ultimate##0 ~n := #in~n; 588426#L25 assume !(~n <= 0); 586395#L26 call #t~ret0 := fact(~n - 1);< 586433#$Ultimate##0 ~n := #in~n; 590836#L25 assume !(~n <= 0); 586397#L26 call #t~ret0 := fact(~n - 1);< 586419#$Ultimate##0 ~n := #in~n; 590826#L25 assume !(~n <= 0); 586404#L26 call #t~ret0 := fact(~n - 1);< 586473#$Ultimate##0 ~n := #in~n; 587112#L25 assume !(~n <= 0); 586407#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586420#factFINAL assume true; 586426#factEXIT >#66#return; 586640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586637#factFINAL assume true; 586577#factEXIT >#68#return; 586306#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586561#$Ultimate##0 ~n := #in~n; 586570#L25 assume !(~n <= 0); 586410#L26 call #t~ret0 := fact(~n - 1);< 586554#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586828#factFINAL assume true; 586802#factEXIT >#70#return; 586343#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586532#$Ultimate##0 ~n := #in~n; 586530#L25 assume !(~n <= 0); 586408#L26 call #t~ret0 := fact(~n - 1);< 586473#$Ultimate##0 ~n := #in~n; 587112#L25 assume !(~n <= 0); 586407#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586838#factFINAL assume true; 586829#factEXIT >#72#return; 586788#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 587089#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 587087#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 587085#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 587083#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586611#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 586634#$Ultimate##0 ~n := #in~n; 586655#L25 assume !(~n <= 0); 586422#L26 call #t~ret0 := fact(~n - 1);< 586647#$Ultimate##0 ~n := #in~n; 588426#L25 assume !(~n <= 0); 586395#L26 call #t~ret0 := fact(~n - 1);< 586433#$Ultimate##0 ~n := #in~n; 590836#L25 assume !(~n <= 0); 586397#L26 call #t~ret0 := fact(~n - 1);< 586419#$Ultimate##0 ~n := #in~n; 590826#L25 assume !(~n <= 0); 586404#L26 call #t~ret0 := fact(~n - 1);< 586473#$Ultimate##0 ~n := #in~n; 587112#L25 assume !(~n <= 0); 586407#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586420#factFINAL assume true; 586426#factEXIT >#66#return; 586640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586637#factFINAL assume true; 586577#factEXIT >#68#return; 586305#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586561#$Ultimate##0 ~n := #in~n; 586570#L25 assume !(~n <= 0); 586410#L26 call #t~ret0 := fact(~n - 1);< 586554#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586838#factFINAL assume true; 586829#factEXIT >#70#return; 586358#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586389#$Ultimate##0 ~n := #in~n; 586664#L25 assume !(~n <= 0); 586399#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586838#factFINAL assume true; 586829#factEXIT >#72#return; 586815#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 589646#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 589645#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 589644#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 589643#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586588#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 586634#$Ultimate##0 ~n := #in~n; 586655#L25 assume !(~n <= 0); 586422#L26 call #t~ret0 := fact(~n - 1);< 586647#$Ultimate##0 ~n := #in~n; 588426#L25 assume !(~n <= 0); 586395#L26 call #t~ret0 := fact(~n - 1);< 586433#$Ultimate##0 ~n := #in~n; 590836#L25 assume !(~n <= 0); 586397#L26 call #t~ret0 := fact(~n - 1);< 586419#$Ultimate##0 ~n := #in~n; 590826#L25 assume !(~n <= 0); 586404#L26 call #t~ret0 := fact(~n - 1);< 586473#$Ultimate##0 ~n := #in~n; 587112#L25 assume !(~n <= 0); 586407#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586420#factFINAL assume true; 586426#factEXIT >#66#return; 586640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586637#factFINAL assume true; 586577#factEXIT >#68#return; 586266#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586561#$Ultimate##0 ~n := #in~n; 586570#L25 assume !(~n <= 0); 586410#L26 call #t~ret0 := fact(~n - 1);< 586554#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586442#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586795#factFINAL assume true; 586774#factEXIT >#70#return; 586350#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586389#$Ultimate##0 ~n := #in~n; 586664#L25 assume !(~n <= 0); 586399#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586828#factFINAL assume true; 586802#factEXIT >#72#return; 586824#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 586849#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 586847#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 586846#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 586845#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586613#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 586634#$Ultimate##0 ~n := #in~n; 586655#L25 assume !(~n <= 0); 586422#L26 call #t~ret0 := fact(~n - 1);< 586647#$Ultimate##0 ~n := #in~n; 588426#L25 assume !(~n <= 0); 586395#L26 call #t~ret0 := fact(~n - 1);< 586433#$Ultimate##0 ~n := #in~n; 590836#L25 assume !(~n <= 0); 586397#L26 call #t~ret0 := fact(~n - 1);< 586419#$Ultimate##0 ~n := #in~n; 590826#L25 assume !(~n <= 0); 586404#L26 call #t~ret0 := fact(~n - 1);< 586473#$Ultimate##0 ~n := #in~n; 587112#L25 assume !(~n <= 0); 586407#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586420#factFINAL assume true; 586426#factEXIT >#66#return; 586640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586637#factFINAL assume true; 586577#factEXIT >#68#return; 586303#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586561#$Ultimate##0 ~n := #in~n; 586570#L25 assume !(~n <= 0); 586410#L26 call #t~ret0 := fact(~n - 1);< 586554#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588261#factFINAL assume true; 588182#factEXIT >#70#return; 586334#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586547#$Ultimate##0 ~n := #in~n; 586571#L25 assume !(~n <= 0); 586410#L26 call #t~ret0 := fact(~n - 1);< 586554#$Ultimate##0 ~n := #in~n; 586562#L25 assume ~n <= 0;#res := 1; 586556#factFINAL assume true; 586549#factEXIT >#66#return; 586548#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586545#factFINAL assume true; 586533#factEXIT >#72#return; 586539#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 586656#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 586648#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 586642#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 586639#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 586620#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 586634#$Ultimate##0 ~n := #in~n; 586655#L25 assume !(~n <= 0); 586422#L26 call #t~ret0 := fact(~n - 1);< 586647#$Ultimate##0 ~n := #in~n; 588426#L25 assume !(~n <= 0); 586395#L26 call #t~ret0 := fact(~n - 1);< 586433#$Ultimate##0 ~n := #in~n; 590836#L25 assume !(~n <= 0); 586397#L26 call #t~ret0 := fact(~n - 1);< 586419#$Ultimate##0 ~n := #in~n; 590826#L25 assume !(~n <= 0); 586404#L26 call #t~ret0 := fact(~n - 1);< 586473#$Ultimate##0 ~n := #in~n; 587112#L25 assume !(~n <= 0); 586407#L26 call #t~ret0 := fact(~n - 1);< 586454#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586420#factFINAL assume true; 586426#factEXIT >#66#return; 586640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586637#factFINAL assume true; 586577#factEXIT >#68#return; 586294#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 586561#$Ultimate##0 ~n := #in~n; 586570#L25 assume !(~n <= 0); 586410#L26 call #t~ret0 := fact(~n - 1);< 586554#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586508#L25 assume !(~n <= 0); 586405#L26 call #t~ret0 := fact(~n - 1);< 586501#$Ultimate##0 ~n := #in~n; 586512#L25 assume ~n <= 0;#res := 1; 586506#factFINAL assume true; 586499#factEXIT >#66#return; 586497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586485#factFINAL assume true; 586477#factEXIT >#66#return; 586476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586467#factFINAL assume true; 586456#factEXIT >#66#return; 586455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586445#factFINAL assume true; 586434#factEXIT >#66#return; 586441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 586650#factFINAL assume true; 586392#factEXIT >#66#return; 586416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 588261#factFINAL assume true; 588182#factEXIT >#70#return; 586312#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 586561#$Ultimate##0 ~n := #in~n; 586570#L25 assume ~n <= 0;#res := 1; 586323#factFINAL assume true; 586246#factEXIT >#72#return; 586318#L30-3 [2023-02-18 08:57:45,033 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:45,034 INFO L85 PathProgramCache]: Analyzing trace with hash 966507321, now seen corresponding path program 66 times [2023-02-18 08:57:45,034 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:45,035 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [893923337] [2023-02-18 08:57:45,035 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:45,035 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:45,061 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:45,061 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [96193595] [2023-02-18 08:57:45,061 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:57:45,061 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:45,062 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:45,064 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-18 08:57:45,064 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-18 08:57:45,712 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 21 check-sat command(s) [2023-02-18 08:57:45,712 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:45,718 INFO L263 TraceCheckSpWp]: Trace formula consists of 1258 conjuncts, 36 conjunts are in the unsatisfiable core [2023-02-18 08:57:45,726 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:45,856 INFO L134 CoverageAnalysis]: Checked inductivity of 191312 backedges. 12955 proven. 2490 refuted. 0 times theorem prover too weak. 175867 trivial. 0 not checked. [2023-02-18 08:57:45,856 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:46,252 INFO L134 CoverageAnalysis]: Checked inductivity of 191312 backedges. 12970 proven. 2530 refuted. 0 times theorem prover too weak. 175812 trivial. 0 not checked. [2023-02-18 08:57:46,252 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:46,252 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [893923337] [2023-02-18 08:57:46,252 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:46,252 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [96193595] [2023-02-18 08:57:46,252 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [96193595] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:46,252 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:46,253 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 30] total 34 [2023-02-18 08:57:46,253 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [41305419] [2023-02-18 08:57:46,253 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:46,253 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:57:46,253 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:46,253 INFO L85 PathProgramCache]: Analyzing trace with hash -351242228, now seen corresponding path program 66 times [2023-02-18 08:57:46,253 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:46,253 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1430004681] [2023-02-18 08:57:46,254 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:46,254 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:46,267 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:46,267 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [386449604] [2023-02-18 08:57:46,267 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:57:46,267 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:46,267 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:46,270 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-18 08:57:46,270 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-18 08:57:46,800 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 21 check-sat command(s) [2023-02-18 08:57:46,800 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:46,804 INFO L263 TraceCheckSpWp]: Trace formula consists of 778 conjuncts, 18 conjunts are in the unsatisfiable core [2023-02-18 08:57:46,808 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:46,860 INFO L134 CoverageAnalysis]: Checked inductivity of 36551 backedges. 8731 proven. 780 refuted. 0 times theorem prover too weak. 27040 trivial. 0 not checked. [2023-02-18 08:57:46,861 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:46,979 INFO L134 CoverageAnalysis]: Checked inductivity of 36551 backedges. 1090 proven. 1014 refuted. 0 times theorem prover too weak. 34447 trivial. 0 not checked. [2023-02-18 08:57:46,979 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:46,979 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1430004681] [2023-02-18 08:57:46,979 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:46,979 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [386449604] [2023-02-18 08:57:46,979 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [386449604] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:46,979 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:46,979 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 16] total 18 [2023-02-18 08:57:46,980 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [267250550] [2023-02-18 08:57:46,980 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:46,980 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:57:46,980 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:57:46,980 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 18 interpolants. [2023-02-18 08:57:46,980 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=69, Invalid=237, Unknown=0, NotChecked=0, Total=306 [2023-02-18 08:57:46,980 INFO L87 Difference]: Start difference. First operand 4722 states and 7160 transitions. cyclomatic complexity: 2482 Second operand has 18 states, 16 states have (on average 3.8125) internal successors, (61), 18 states have internal predecessors, (61), 11 states have call successors, (33), 2 states have call predecessors, (33), 6 states have return successors, (35), 11 states have call predecessors, (35), 11 states have call successors, (35) [2023-02-18 08:57:47,303 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:57:47,303 INFO L93 Difference]: Finished difference Result 5392 states and 8136 transitions. [2023-02-18 08:57:47,303 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 5392 states and 8136 transitions. [2023-02-18 08:57:47,327 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 551 [2023-02-18 08:57:47,355 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 5392 states to 4612 states and 6899 transitions. [2023-02-18 08:57:47,355 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 261 [2023-02-18 08:57:47,356 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 261 [2023-02-18 08:57:47,356 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4612 states and 6899 transitions. [2023-02-18 08:57:47,356 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:57:47,356 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4612 states and 6899 transitions. [2023-02-18 08:57:47,357 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4612 states and 6899 transitions. [2023-02-18 08:57:47,400 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4612 to 4603. [2023-02-18 08:57:47,404 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4603 states, 2854 states have (on average 1.05010511562719) internal successors, (2997), 2848 states have internal predecessors, (2997), 1416 states have call successors, (1438), 441 states have call predecessors, (1438), 333 states have return successors, (2455), 1313 states have call predecessors, (2455), 1416 states have call successors, (2455) [2023-02-18 08:57:47,417 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4603 states to 4603 states and 6890 transitions. [2023-02-18 08:57:47,417 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4603 states and 6890 transitions. [2023-02-18 08:57:47,418 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2023-02-18 08:57:47,418 INFO L428 stractBuchiCegarLoop]: Abstraction has 4603 states and 6890 transitions. [2023-02-18 08:57:47,418 INFO L335 stractBuchiCegarLoop]: ======== Iteration 79 ============ [2023-02-18 08:57:47,418 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4603 states and 6890 transitions. [2023-02-18 08:57:47,427 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 551 [2023-02-18 08:57:47,427 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:57:47,427 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:57:47,433 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [278, 278, 200, 200, 200, 200, 78, 26, 25, 19, 19, 19, 19, 19, 19, 19, 18, 18, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 4, 4, 1, 1, 1, 1] [2023-02-18 08:57:47,433 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [118, 118, 94, 94, 94, 94, 24, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:57:47,433 INFO L748 eck$LassoCheckResult]: Stem: 611060#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 611002#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; 611003#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 611025#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; 611014#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 611015#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 613379#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 613376#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 613377#$Ultimate##0 ~n := #in~n; 613381#L25 assume ~n <= 0;#res := 1; 613380#factFINAL assume true; 613375#factEXIT >#68#return; 613360#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 613361#$Ultimate##0 ~n := #in~n; 613468#L25 assume ~n <= 0;#res := 1; 613467#factFINAL assume true; 613359#factEXIT >#70#return; 613356#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 613357#$Ultimate##0 ~n := #in~n; 613472#L25 assume ~n <= 0;#res := 1; 613471#factFINAL assume true; 613355#factEXIT >#72#return; 613354#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 613353#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 613351#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 613350#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 613348#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 613345#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 613346#$Ultimate##0 ~n := #in~n; 613493#L25 assume !(~n <= 0); 613490#L26 call #t~ret0 := fact(~n - 1);< 613491#$Ultimate##0 ~n := #in~n; 613495#L25 assume ~n <= 0;#res := 1; 613494#factFINAL assume true; 613489#factEXIT >#66#return; 613487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 613486#factFINAL assume true; 613344#factEXIT >#74#return; 613341#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 613342#$Ultimate##0 ~n := #in~n; 613492#L25 assume ~n <= 0;#res := 1; 613488#factFINAL assume true; 613340#factEXIT >#76#return; 613337#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 613338#$Ultimate##0 ~n := #in~n; 613502#L25 assume !(~n <= 0); 613499#L26 call #t~ret0 := fact(~n - 1);< 613500#$Ultimate##0 ~n := #in~n; 613505#L25 assume ~n <= 0;#res := 1; 613503#factFINAL assume true; 613498#factEXIT >#66#return; 613497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 613496#factFINAL assume true; 613336#factEXIT >#78#return; 613335#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 613334#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 613333#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 613332#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 613331#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 613328#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 613329#$Ultimate##0 ~n := #in~n; 613427#L25 assume !(~n <= 0); 613423#L26 call #t~ret0 := fact(~n - 1);< 613426#$Ultimate##0 ~n := #in~n; 613434#L25 assume !(~n <= 0); 613425#L26 call #t~ret0 := fact(~n - 1);< 613433#$Ultimate##0 ~n := #in~n; 613441#L25 assume ~n <= 0;#res := 1; 613440#factFINAL assume true; 613439#factEXIT >#66#return; 613437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 613435#factFINAL assume true; 613430#factEXIT >#66#return; 613431#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 615419#factFINAL assume true; 613327#factEXIT >#74#return; 613324#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 613325#$Ultimate##0 ~n := #in~n; 613506#L25 assume ~n <= 0;#res := 1; 613504#factFINAL assume true; 613323#factEXIT >#76#return; 613320#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 613321#$Ultimate##0 ~n := #in~n; 613436#L25 assume !(~n <= 0); 613424#L26 call #t~ret0 := fact(~n - 1);< 613426#$Ultimate##0 ~n := #in~n; 613434#L25 assume !(~n <= 0); 613425#L26 call #t~ret0 := fact(~n - 1);< 613433#$Ultimate##0 ~n := #in~n; 613441#L25 assume ~n <= 0;#res := 1; 613440#factFINAL assume true; 613439#factEXIT >#66#return; 613437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 613435#factFINAL assume true; 613430#factEXIT >#66#return; 613432#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 613507#factFINAL assume true; 613319#factEXIT >#78#return; 613317#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 613304#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 613287#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 613284#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 613282#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 612897#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 612898#$Ultimate##0 ~n := #in~n; 612950#L25 assume !(~n <= 0); 612948#L26 call #t~ret0 := fact(~n - 1);< 612949#$Ultimate##0 ~n := #in~n; 612956#L25 assume !(~n <= 0); 612947#L26 call #t~ret0 := fact(~n - 1);< 612955#$Ultimate##0 ~n := #in~n; 612956#L25 assume !(~n <= 0); 612947#L26 call #t~ret0 := fact(~n - 1);< 612955#$Ultimate##0 ~n := #in~n; 612962#L25 assume ~n <= 0;#res := 1; 612961#factFINAL assume true; 612959#factEXIT >#66#return; 612958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612957#factFINAL assume true; 612954#factEXIT >#66#return; 612952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612951#factFINAL assume true; 612946#factEXIT >#66#return; 612944#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612943#factFINAL assume true; 612896#factEXIT >#74#return; 612894#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 612895#$Ultimate##0 ~n := #in~n; 612965#L25 assume ~n <= 0;#res := 1; 612963#factFINAL assume true; 612893#factEXIT >#76#return; 611033#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 612891#$Ultimate##0 ~n := #in~n; 615402#L25 assume !(~n <= 0); 612971#L26 call #t~ret0 := fact(~n - 1);< 612978#$Ultimate##0 ~n := #in~n; 612986#L25 assume !(~n <= 0); 612969#L26 call #t~ret0 := fact(~n - 1);< 612985#$Ultimate##0 ~n := #in~n; 612986#L25 assume !(~n <= 0); 612969#L26 call #t~ret0 := fact(~n - 1);< 612985#$Ultimate##0 ~n := #in~n; 612989#L25 assume ~n <= 0;#res := 1; 612987#factFINAL assume true; 612984#factEXIT >#66#return; 612983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612982#factFINAL assume true; 612980#factEXIT >#66#return; 612979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612977#factFINAL assume true; 612967#factEXIT >#66#return; 611032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611034#factFINAL assume true; 612889#factEXIT >#78#return; 612880#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 612879#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 612878#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 612876#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 612874#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 612873#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 612872#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 612871#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 612809#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 612811#$Ultimate##0 ~n := #in~n; 612862#L25 assume !(~n <= 0); 612842#L26 call #t~ret0 := fact(~n - 1);< 612860#$Ultimate##0 ~n := #in~n; 613742#L25 assume ~n <= 0;#res := 1; 613735#factFINAL assume true; 613724#factEXIT >#66#return; 613722#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 613720#factFINAL assume true; 613719#factEXIT >#68#return; 613712#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 612506#$Ultimate##0 ~n := #in~n; 613723#L25 assume ~n <= 0;#res := 1; 613721#factFINAL assume true; 613711#factEXIT >#70#return; 613709#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 613710#$Ultimate##0 ~n := #in~n; 613740#L25 assume !(~n <= 0); 612826#L26 call #t~ret0 := fact(~n - 1);< 613737#$Ultimate##0 ~n := #in~n; 613742#L25 assume ~n <= 0;#res := 1; 613735#factFINAL assume true; 613724#factEXIT >#66#return; 613734#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 613738#factFINAL assume true; 613708#factEXIT >#72#return; 613707#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 613706#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 613705#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 613704#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 613703#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 613699#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 613702#$Ultimate##0 ~n := #in~n; 613739#L25 assume !(~n <= 0); 612851#L26 call #t~ret0 := fact(~n - 1);< 613737#$Ultimate##0 ~n := #in~n; 613742#L25 assume ~n <= 0;#res := 1; 613735#factFINAL assume true; 613724#factEXIT >#66#return; 613733#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 613743#factFINAL assume true; 613694#factEXIT >#68#return; 613685#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 613692#$Ultimate##0 ~n := #in~n; 615351#L25 assume !(~n <= 0); 612830#L26 call #t~ret0 := fact(~n - 1);< 612860#$Ultimate##0 ~n := #in~n; 613742#L25 assume ~n <= 0;#res := 1; 613735#factFINAL assume true; 613724#factEXIT >#66#return; 613731#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 613744#factFINAL assume true; 613672#factEXIT >#70#return; 613659#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 613670#$Ultimate##0 ~n := #in~n; 613747#L25 assume ~n <= 0;#res := 1; 613746#factFINAL assume true; 613656#factEXIT >#72#return; 613654#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 613652#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 613651#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 613649#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 613647#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 613631#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 613634#$Ultimate##0 ~n := #in~n; 614035#L25 assume !(~n <= 0); 612838#L26 call #t~ret0 := fact(~n - 1);< 614031#$Ultimate##0 ~n := #in~n; 614047#L25 assume !(~n <= 0); 612847#L26 call #t~ret0 := fact(~n - 1);< 614040#$Ultimate##0 ~n := #in~n; 613167#L25 assume ~n <= 0;#res := 1; 613166#factFINAL assume true; 613161#factEXIT >#66#return; 613160#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612993#factFINAL assume true; 612820#factEXIT >#66#return; 612855#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 614023#factFINAL assume true; 614022#factEXIT >#74#return; 613598#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 613617#$Ultimate##0 ~n := #in~n; 613741#L25 assume !(~n <= 0); 612845#L26 call #t~ret0 := fact(~n - 1);< 612860#$Ultimate##0 ~n := #in~n; 613742#L25 assume ~n <= 0;#res := 1; 613735#factFINAL assume true; 613724#factEXIT >#66#return; 613729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 614009#factFINAL assume true; 613611#factEXIT >#76#return; 613603#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 613627#$Ultimate##0 ~n := #in~n; 614011#L25 assume !(~n <= 0); 613726#L26 call #t~ret0 := fact(~n - 1);< 613736#$Ultimate##0 ~n := #in~n; 613742#L25 assume ~n <= 0;#res := 1; 613735#factFINAL assume true; 613724#factEXIT >#66#return; 613729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 614009#factFINAL assume true; 613611#factEXIT >#78#return; 613613#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 613626#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 613624#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 613621#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 613620#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 612930#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 613542#$Ultimate##0 ~n := #in~n; 613915#L25 assume !(~n <= 0); 613270#L26 call #t~ret0 := fact(~n - 1);< 613914#$Ultimate##0 ~n := #in~n; 613850#L25 assume !(~n <= 0); 613265#L26 call #t~ret0 := fact(~n - 1);< 613761#$Ultimate##0 ~n := #in~n; 613850#L25 assume !(~n <= 0); 613265#L26 call #t~ret0 := fact(~n - 1);< 613761#$Ultimate##0 ~n := #in~n; 613770#L25 assume ~n <= 0;#res := 1; 613768#factFINAL assume true; 613759#factEXIT >#66#return; 613758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 613285#factFINAL assume true; 613260#factEXIT >#66#return; 613280#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 613892#factFINAL assume true; 613888#factEXIT >#66#return; 613889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 613851#factFINAL assume true; 613538#factEXIT >#74#return; 613242#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 613540#$Ultimate##0 ~n := #in~n; 613872#L25 assume !(~n <= 0); 613261#L26 call #t~ret0 := fact(~n - 1);< 613867#$Ultimate##0 ~n := #in~n; 613765#L25 assume ~n <= 0;#res := 1; 613905#factFINAL assume true; 613863#factEXIT >#66#return; 613861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 613853#factFINAL assume true; 613539#factEXIT >#76#return; 613237#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 613536#$Ultimate##0 ~n := #in~n; 613799#L25 assume !(~n <= 0); 613262#L26 call #t~ret0 := fact(~n - 1);< 613795#$Ultimate##0 ~n := #in~n; 613793#L25 assume !(~n <= 0); 613264#L26 call #t~ret0 := fact(~n - 1);< 613789#$Ultimate##0 ~n := #in~n; 613770#L25 assume ~n <= 0;#res := 1; 613768#factFINAL assume true; 613759#factEXIT >#66#return; 613758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 613285#factFINAL assume true; 613260#factEXIT >#66#return; 613279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 613534#factFINAL assume true; 613225#factEXIT >#78#return; 613244#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 613904#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 613903#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 613902#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 613901#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 613900#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 613899#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 613897#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 612806#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 612811#$Ultimate##0 ~n := #in~n; 612862#L25 assume !(~n <= 0); 612842#L26 call #t~ret0 := fact(~n - 1);< 612860#$Ultimate##0 ~n := #in~n; 615344#L25 assume !(~n <= 0); 612834#L26 call #t~ret0 := fact(~n - 1);< 612996#$Ultimate##0 ~n := #in~n; 613167#L25 assume ~n <= 0;#res := 1; 613166#factFINAL assume true; 613161#factEXIT >#66#return; 613160#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612993#factFINAL assume true; 612820#factEXIT >#66#return; 612818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612815#factFINAL assume true; 612803#factEXIT >#68#return; 612505#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 612508#$Ultimate##0 ~n := #in~n; 612519#L25 assume ~n <= 0;#res := 1; 612517#factFINAL assume true; 612499#factEXIT >#70#return; 612490#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 612497#$Ultimate##0 ~n := #in~n; 612539#L25 assume !(~n <= 0); 612397#L26 call #t~ret0 := fact(~n - 1);< 612410#$Ultimate##0 ~n := #in~n; 612429#L25 assume !(~n <= 0); 612425#L26 call #t~ret0 := fact(~n - 1);< 612427#$Ultimate##0 ~n := #in~n; 612538#L25 assume ~n <= 0;#res := 1; 612537#factFINAL assume true; 612424#factEXIT >#66#return; 612422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612416#factFINAL assume true; 612392#factEXIT >#66#return; 612409#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612528#factFINAL assume true; 612485#factEXIT >#72#return; 612494#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 613884#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 613879#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 613877#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 613876#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 612371#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 612385#$Ultimate##0 ~n := #in~n; 612412#L25 assume !(~n <= 0); 612396#L26 call #t~ret0 := fact(~n - 1);< 612410#$Ultimate##0 ~n := #in~n; 612429#L25 assume !(~n <= 0); 612425#L26 call #t~ret0 := fact(~n - 1);< 612427#$Ultimate##0 ~n := #in~n; 612538#L25 assume ~n <= 0;#res := 1; 612537#factFINAL assume true; 612424#factEXIT >#66#return; 612422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612416#factFINAL assume true; 612392#factEXIT >#66#return; 612390#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612387#factFINAL assume true; 612366#factEXIT >#68#return; 612382#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 612455#$Ultimate##0 ~n := #in~n; 612792#L25 assume !(~n <= 0); 612325#L26 call #t~ret0 := fact(~n - 1);< 612477#$Ultimate##0 ~n := #in~n; 612498#L25 assume ~n <= 0;#res := 1; 612472#factFINAL assume true; 612459#factEXIT >#66#return; 612458#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612456#factFINAL assume true; 612442#factEXIT >#70#return; 612443#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 612454#$Ultimate##0 ~n := #in~n; 612513#L25 assume !(~n <= 0); 612464#L26 call #t~ret0 := fact(~n - 1);< 612471#$Ultimate##0 ~n := #in~n; 612498#L25 assume ~n <= 0;#res := 1; 612472#factFINAL assume true; 612459#factEXIT >#66#return; 612458#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612456#factFINAL assume true; 612442#factEXIT >#72#return; 612449#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 613871#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 613869#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 613862#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 613860#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 612373#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 612385#$Ultimate##0 ~n := #in~n; 612412#L25 assume !(~n <= 0); 612396#L26 call #t~ret0 := fact(~n - 1);< 612410#$Ultimate##0 ~n := #in~n; 612429#L25 assume !(~n <= 0); 612425#L26 call #t~ret0 := fact(~n - 1);< 612427#$Ultimate##0 ~n := #in~n; 612538#L25 assume ~n <= 0;#res := 1; 612537#factFINAL assume true; 612424#factEXIT >#66#return; 612422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612416#factFINAL assume true; 612392#factEXIT >#66#return; 612390#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612387#factFINAL assume true; 612366#factEXIT >#68#return; 612363#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 612365#$Ultimate##0 ~n := #in~n; 614723#L25 assume !(~n <= 0); 612332#L26 call #t~ret0 := fact(~n - 1);< 612544#$Ultimate##0 ~n := #in~n; 612541#L25 assume !(~n <= 0); 612401#L26 call #t~ret0 := fact(~n - 1);< 612540#$Ultimate##0 ~n := #in~n; 612538#L25 assume ~n <= 0;#res := 1; 612537#factFINAL assume true; 612424#factEXIT >#66#return; 612422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612416#factFINAL assume true; 612392#factEXIT >#66#return; 612408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612748#factFINAL assume true; 612358#factEXIT >#70#return; 612347#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 612356#$Ultimate##0 ~n := #in~n; 612742#L25 assume ~n <= 0;#res := 1; 612741#factFINAL assume true; 612344#factEXIT >#72#return; 612354#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 613858#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 613856#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 613854#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 612168#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 612166#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 612167#$Ultimate##0 ~n := #in~n; 614034#L25 assume !(~n <= 0); 612005#L26 call #t~ret0 := fact(~n - 1);< 612185#$Ultimate##0 ~n := #in~n; 612691#L25 assume !(~n <= 0); 612006#L26 call #t~ret0 := fact(~n - 1);< 612687#$Ultimate##0 ~n := #in~n; 612691#L25 assume !(~n <= 0); 612006#L26 call #t~ret0 := fact(~n - 1);< 612687#$Ultimate##0 ~n := #in~n; 612690#L25 assume ~n <= 0;#res := 1; 612998#factFINAL assume true; 612685#factEXIT >#66#return; 612684#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612230#factFINAL assume true; 612178#factEXIT >#66#return; 612182#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612189#factFINAL assume true; 612003#factEXIT >#66#return; 612024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612682#factFINAL assume true; 612163#factEXIT >#74#return; 612157#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 612161#$Ultimate##0 ~n := #in~n; 613463#L25 assume !(~n <= 0); 612011#L26 call #t~ret0 := fact(~n - 1);< 612027#$Ultimate##0 ~n := #in~n; 612693#L25 assume !(~n <= 0); 612179#L26 call #t~ret0 := fact(~n - 1);< 612190#$Ultimate##0 ~n := #in~n; 612690#L25 assume ~n <= 0;#res := 1; 612998#factFINAL assume true; 612685#factEXIT >#66#return; 612684#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612230#factFINAL assume true; 612178#factEXIT >#66#return; 612184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612586#factFINAL assume true; 612155#factEXIT >#76#return; 611949#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 612159#$Ultimate##0 ~n := #in~n; 612667#L25 assume !(~n <= 0); 612657#L26 call #t~ret0 := fact(~n - 1);< 612660#$Ultimate##0 ~n := #in~n; 612671#L25 assume ~n <= 0;#res := 1; 612664#factFINAL assume true; 612656#factEXIT >#66#return; 612659#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 613625#factFINAL assume true; 611946#factEXIT >#78#return; 611945#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 611944#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 611942#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 611940#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 611939#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 611938#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 611937#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 611934#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611414#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 611457#$Ultimate##0 ~n := #in~n; 611454#L25 assume !(~n <= 0); 611210#L26 call #t~ret0 := fact(~n - 1);< 611416#$Ultimate##0 ~n := #in~n; 611572#L25 assume !(~n <= 0); 611238#L26 call #t~ret0 := fact(~n - 1);< 611244#$Ultimate##0 ~n := #in~n; 611943#L25 assume !(~n <= 0); 611260#L26 call #t~ret0 := fact(~n - 1);< 611266#$Ultimate##0 ~n := #in~n; 611941#L25 assume !(~n <= 0); 611285#L26 call #t~ret0 := fact(~n - 1);< 611288#$Ultimate##0 ~n := #in~n; 611307#L25 assume !(~n <= 0); 611300#L26 call #t~ret0 := fact(~n - 1);< 611302#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611921#factFINAL assume true; 611884#factEXIT >#68#return; 611634#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611638#$Ultimate##0 ~n := #in~n; 611680#L25 assume ~n <= 0;#res := 1; 611677#factFINAL assume true; 611629#factEXIT >#70#return; 611417#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 611430#$Ultimate##0 ~n := #in~n; 611424#L25 assume !(~n <= 0); 611205#L26 call #t~ret0 := fact(~n - 1);< 611243#$Ultimate##0 ~n := #in~n; 611787#L25 assume !(~n <= 0); 611207#L26 call #t~ret0 := fact(~n - 1);< 611217#$Ultimate##0 ~n := #in~n; 611832#L25 assume !(~n <= 0); 611197#L26 call #t~ret0 := fact(~n - 1);< 611267#$Ultimate##0 ~n := #in~n; 611310#L25 assume !(~n <= 0); 611199#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611875#factFINAL assume true; 611874#factEXIT >#72#return; 611620#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 611873#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 611872#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 611871#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 611870#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611504#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 611507#$Ultimate##0 ~n := #in~n; 611517#L25 assume !(~n <= 0); 611204#L26 call #t~ret0 := fact(~n - 1);< 611435#$Ultimate##0 ~n := #in~n; 611432#L25 assume !(~n <= 0); 611237#L26 call #t~ret0 := fact(~n - 1);< 611422#$Ultimate##0 ~n := #in~n; 611413#L25 assume !(~n <= 0); 611261#L26 call #t~ret0 := fact(~n - 1);< 611278#$Ultimate##0 ~n := #in~n; 611401#L25 assume !(~n <= 0); 611284#L26 call #t~ret0 := fact(~n - 1);< 611309#$Ultimate##0 ~n := #in~n; 611307#L25 assume !(~n <= 0); 611300#L26 call #t~ret0 := fact(~n - 1);< 611302#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611215#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611511#factFINAL assume true; 611494#factEXIT >#68#return; 611071#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611452#$Ultimate##0 ~n := #in~n; 611510#L25 assume !(~n <= 0); 611461#L26 call #t~ret0 := fact(~n - 1);< 611469#$Ultimate##0 ~n := #in~n; 611472#L25 assume ~n <= 0;#res := 1; 611465#factFINAL assume true; 611459#factEXIT >#66#return; 611456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611451#factFINAL assume true; 611438#factEXIT >#70#return; 611248#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 611574#$Ultimate##0 ~n := #in~n; 611573#L25 assume !(~n <= 0); 611235#L26 call #t~ret0 := fact(~n - 1);< 611250#$Ultimate##0 ~n := #in~n; 612084#L25 assume !(~n <= 0); 611259#L26 call #t~ret0 := fact(~n - 1);< 611296#$Ultimate##0 ~n := #in~n; 611305#L25 assume !(~n <= 0); 611283#L26 call #t~ret0 := fact(~n - 1);< 611288#$Ultimate##0 ~n := #in~n; 611307#L25 assume !(~n <= 0); 611300#L26 call #t~ret0 := fact(~n - 1);< 611302#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611736#factFINAL assume true; 611522#factEXIT >#72#return; 611537#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 611854#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 611851#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 611846#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 611842#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611495#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 611507#$Ultimate##0 ~n := #in~n; 611517#L25 assume !(~n <= 0); 611204#L26 call #t~ret0 := fact(~n - 1);< 611435#$Ultimate##0 ~n := #in~n; 611432#L25 assume !(~n <= 0); 611237#L26 call #t~ret0 := fact(~n - 1);< 611422#$Ultimate##0 ~n := #in~n; 611413#L25 assume !(~n <= 0); 611261#L26 call #t~ret0 := fact(~n - 1);< 611278#$Ultimate##0 ~n := #in~n; 611401#L25 assume !(~n <= 0); 611284#L26 call #t~ret0 := fact(~n - 1);< 611309#$Ultimate##0 ~n := #in~n; 611307#L25 assume !(~n <= 0); 611300#L26 call #t~ret0 := fact(~n - 1);< 611302#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611215#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611511#factFINAL assume true; 611494#factEXIT >#68#return; 611146#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611187#$Ultimate##0 ~n := #in~n; 611831#L25 assume !(~n <= 0); 611194#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611286#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611394#factFINAL assume true; 611319#factEXIT >#70#return; 611277#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 611292#$Ultimate##0 ~n := #in~n; 611281#L25 assume !(~n <= 0); 611262#L26 call #t~ret0 := fact(~n - 1);< 611278#$Ultimate##0 ~n := #in~n; 611401#L25 assume !(~n <= 0); 611284#L26 call #t~ret0 := fact(~n - 1);< 611309#$Ultimate##0 ~n := #in~n; 611307#L25 assume !(~n <= 0); 611300#L26 call #t~ret0 := fact(~n - 1);< 611302#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611567#factFINAL assume true; 611551#factEXIT >#72#return; 611553#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 611570#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 611569#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 611568#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 611566#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611496#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 611507#$Ultimate##0 ~n := #in~n; 611517#L25 assume !(~n <= 0); 611204#L26 call #t~ret0 := fact(~n - 1);< 611435#$Ultimate##0 ~n := #in~n; 611432#L25 assume !(~n <= 0); 611237#L26 call #t~ret0 := fact(~n - 1);< 611422#$Ultimate##0 ~n := #in~n; 611413#L25 assume !(~n <= 0); 611261#L26 call #t~ret0 := fact(~n - 1);< 611278#$Ultimate##0 ~n := #in~n; 611401#L25 assume !(~n <= 0); 611284#L26 call #t~ret0 := fact(~n - 1);< 611309#$Ultimate##0 ~n := #in~n; 611307#L25 assume !(~n <= 0); 611300#L26 call #t~ret0 := fact(~n - 1);< 611302#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611215#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611511#factFINAL assume true; 611494#factEXIT >#68#return; 611143#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611187#$Ultimate##0 ~n := #in~n; 611831#L25 assume !(~n <= 0); 611194#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611567#factFINAL assume true; 611551#factEXIT >#70#return; 611294#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 611303#$Ultimate##0 ~n := #in~n; 611298#L25 assume !(~n <= 0); 611258#L26 call #t~ret0 := fact(~n - 1);< 611296#$Ultimate##0 ~n := #in~n; 611305#L25 assume !(~n <= 0); 611283#L26 call #t~ret0 := fact(~n - 1);< 611288#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611286#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611394#factFINAL assume true; 611319#factEXIT >#72#return; 611324#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 611547#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 611545#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 611544#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 611543#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611500#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 611507#$Ultimate##0 ~n := #in~n; 611517#L25 assume !(~n <= 0); 611204#L26 call #t~ret0 := fact(~n - 1);< 611435#$Ultimate##0 ~n := #in~n; 611432#L25 assume !(~n <= 0); 611237#L26 call #t~ret0 := fact(~n - 1);< 611422#$Ultimate##0 ~n := #in~n; 611413#L25 assume !(~n <= 0); 611261#L26 call #t~ret0 := fact(~n - 1);< 611278#$Ultimate##0 ~n := #in~n; 611401#L25 assume !(~n <= 0); 611284#L26 call #t~ret0 := fact(~n - 1);< 611309#$Ultimate##0 ~n := #in~n; 611307#L25 assume !(~n <= 0); 611300#L26 call #t~ret0 := fact(~n - 1);< 611302#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611215#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611511#factFINAL assume true; 611494#factEXIT >#68#return; 611142#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611187#$Ultimate##0 ~n := #in~n; 611831#L25 assume !(~n <= 0); 611194#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611736#factFINAL assume true; 611522#factEXIT >#70#return; 611439#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 611453#$Ultimate##0 ~n := #in~n; 611520#L25 assume !(~n <= 0); 611139#L26 call #t~ret0 := fact(~n - 1);< 611463#$Ultimate##0 ~n := #in~n; 611472#L25 assume ~n <= 0;#res := 1; 611465#factFINAL assume true; 611459#factEXIT >#66#return; 611456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611451#factFINAL assume true; 611438#factEXIT >#72#return; 611444#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 611514#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 611512#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 611509#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 611508#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611501#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 611507#$Ultimate##0 ~n := #in~n; 611517#L25 assume !(~n <= 0); 611204#L26 call #t~ret0 := fact(~n - 1);< 611435#$Ultimate##0 ~n := #in~n; 611432#L25 assume !(~n <= 0); 611237#L26 call #t~ret0 := fact(~n - 1);< 611422#$Ultimate##0 ~n := #in~n; 611413#L25 assume !(~n <= 0); 611261#L26 call #t~ret0 := fact(~n - 1);< 611278#$Ultimate##0 ~n := #in~n; 611401#L25 assume !(~n <= 0); 611284#L26 call #t~ret0 := fact(~n - 1);< 611309#$Ultimate##0 ~n := #in~n; 611307#L25 assume !(~n <= 0); 611300#L26 call #t~ret0 := fact(~n - 1);< 611302#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611215#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611511#factFINAL assume true; 611494#factEXIT >#68#return; 611141#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611187#$Ultimate##0 ~n := #in~n; 611831#L25 assume !(~n <= 0); 611194#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611188#factFINAL assume true; 611189#factEXIT >#70#return; 611111#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 611136#$Ultimate##0 ~n := #in~n; 611138#L25 assume ~n <= 0;#res := 1; 611137#factFINAL assume true; 611064#factEXIT >#72#return; 611131#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 612527#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 612525#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 612523#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 612520#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611708#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 610982#$Ultimate##0 ~n := #in~n; 611850#L25 assume !(~n <= 0); 611724#L26 call #t~ret0 := fact(~n - 1);< 611731#$Ultimate##0 ~n := #in~n; 612061#L25 assume !(~n <= 0); 611727#L26 call #t~ret0 := fact(~n - 1);< 611748#$Ultimate##0 ~n := #in~n; 611841#L25 assume !(~n <= 0); 611728#L26 call #t~ret0 := fact(~n - 1);< 611766#$Ultimate##0 ~n := #in~n; 611825#L25 assume !(~n <= 0); 611721#L26 call #t~ret0 := fact(~n - 1);< 611784#$Ultimate##0 ~n := #in~n; 611815#L25 assume !(~n <= 0); 611722#L26 call #t~ret0 := fact(~n - 1);< 611812#$Ultimate##0 ~n := #in~n; 611815#L25 assume !(~n <= 0); 611722#L26 call #t~ret0 := fact(~n - 1);< 611812#$Ultimate##0 ~n := #in~n; 611817#L25 assume ~n <= 0;#res := 1; 611816#factFINAL assume true; 611811#factEXIT >#66#return; 611810#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611808#factFINAL assume true; 611782#factEXIT >#66#return; 611780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611778#factFINAL assume true; 611771#factEXIT >#66#return; 611770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611769#factFINAL assume true; 611764#factEXIT >#66#return; 611763#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611752#factFINAL assume true; 611750#factEXIT >#66#return; 611730#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611747#factFINAL assume true; 611718#factEXIT >#66#return; 611716#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611713#factFINAL assume true; 611701#factEXIT >#74#return; 611700#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611827#$Ultimate##0 ~n := #in~n; 611823#L25 assume !(~n <= 0); 611723#L26 call #t~ret0 := fact(~n - 1);< 611753#$Ultimate##0 ~n := #in~n; 611815#L25 assume !(~n <= 0); 611722#L26 call #t~ret0 := fact(~n - 1);< 611812#$Ultimate##0 ~n := #in~n; 611815#L25 assume !(~n <= 0); 611722#L26 call #t~ret0 := fact(~n - 1);< 611812#$Ultimate##0 ~n := #in~n; 611815#L25 assume !(~n <= 0); 611722#L26 call #t~ret0 := fact(~n - 1);< 611812#$Ultimate##0 ~n := #in~n; 611815#L25 assume !(~n <= 0); 611722#L26 call #t~ret0 := fact(~n - 1);< 611812#$Ultimate##0 ~n := #in~n; 611815#L25 assume !(~n <= 0); 611722#L26 call #t~ret0 := fact(~n - 1);< 611812#$Ultimate##0 ~n := #in~n; 611817#L25 assume ~n <= 0;#res := 1; 611816#factFINAL assume true; 611811#factEXIT >#66#return; 611810#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611808#factFINAL assume true; 611782#factEXIT >#66#return; 611780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611778#factFINAL assume true; 611771#factEXIT >#66#return; 611770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611769#factFINAL assume true; 611764#factEXIT >#66#return; 611763#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611752#factFINAL assume true; 611750#factEXIT >#66#return; 611730#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611747#factFINAL assume true; 611718#factEXIT >#66#return; 611716#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611713#factFINAL assume true; 611701#factEXIT >#76#return; 611008#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 612059#$Ultimate##0 ~n := #in~n; 612058#L25 assume !(~n <= 0); 610986#L26 call #t~ret0 := fact(~n - 1);< 611011#$Ultimate##0 ~n := #in~n; 613252#L25 assume ~n <= 0;#res := 1; 610994#factFINAL assume true; 610985#factEXIT >#66#return; 610988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612419#factFINAL assume true; 612121#factEXIT >#78#return; 612120#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 612518#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 612516#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 612515#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 612126#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 612125#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 612123#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 612122#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611643#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 611668#$Ultimate##0 ~n := #in~n; 611666#L25 assume !(~n <= 0); 611220#L26 call #t~ret0 := fact(~n - 1);< 611396#$Ultimate##0 ~n := #in~n; 611390#L25 assume !(~n <= 0); 611192#L26 call #t~ret0 := fact(~n - 1);< 611331#$Ultimate##0 ~n := #in~n; 611318#L25 assume !(~n <= 0); 611195#L26 call #t~ret0 := fact(~n - 1);< 611316#$Ultimate##0 ~n := #in~n; 611314#L25 assume !(~n <= 0); 611196#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611218#factFINAL assume true; 611224#factEXIT >#66#return; 611410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611663#factFINAL assume true; 611639#factEXIT >#68#return; 611637#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611638#$Ultimate##0 ~n := #in~n; 611680#L25 assume ~n <= 0;#res := 1; 611677#factFINAL assume true; 611629#factEXIT >#70#return; 611405#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 611627#$Ultimate##0 ~n := #in~n; 611997#L25 assume !(~n <= 0); 611221#L26 call #t~ret0 := fact(~n - 1);< 611396#$Ultimate##0 ~n := #in~n; 611390#L25 assume !(~n <= 0); 611192#L26 call #t~ret0 := fact(~n - 1);< 611331#$Ultimate##0 ~n := #in~n; 611318#L25 assume !(~n <= 0); 611195#L26 call #t~ret0 := fact(~n - 1);< 611316#$Ultimate##0 ~n := #in~n; 611314#L25 assume !(~n <= 0); 611196#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611218#factFINAL assume true; 611224#factEXIT >#66#return; 611411#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611813#factFINAL assume true; 611619#factEXIT >#72#return; 611625#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 612036#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 612034#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 612032#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 612030#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611385#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 611389#$Ultimate##0 ~n := #in~n; 611423#L25 assume !(~n <= 0); 611222#L26 call #t~ret0 := fact(~n - 1);< 611231#$Ultimate##0 ~n := #in~n; 611814#L25 assume !(~n <= 0); 611211#L26 call #t~ret0 := fact(~n - 1);< 611243#$Ultimate##0 ~n := #in~n; 611787#L25 assume !(~n <= 0); 611207#L26 call #t~ret0 := fact(~n - 1);< 611217#$Ultimate##0 ~n := #in~n; 611832#L25 assume !(~n <= 0); 611197#L26 call #t~ret0 := fact(~n - 1);< 611267#$Ultimate##0 ~n := #in~n; 611310#L25 assume !(~n <= 0); 611199#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611218#factFINAL assume true; 611224#factEXIT >#66#return; 611402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611395#factFINAL assume true; 611332#factEXIT >#68#return; 611093#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611452#$Ultimate##0 ~n := #in~n; 611510#L25 assume !(~n <= 0); 611461#L26 call #t~ret0 := fact(~n - 1);< 611469#$Ultimate##0 ~n := #in~n; 611472#L25 assume ~n <= 0;#res := 1; 611465#factFINAL assume true; 611459#factEXIT >#66#return; 611456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611451#factFINAL assume true; 611438#factEXIT >#70#return; 611152#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 611493#$Ultimate##0 ~n := #in~n; 611492#L25 assume !(~n <= 0); 611198#L26 call #t~ret0 := fact(~n - 1);< 611217#$Ultimate##0 ~n := #in~n; 611832#L25 assume !(~n <= 0); 611197#L26 call #t~ret0 := fact(~n - 1);< 611267#$Ultimate##0 ~n := #in~n; 611310#L25 assume !(~n <= 0); 611199#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611736#factFINAL assume true; 611522#factEXIT >#72#return; 611172#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 611996#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 611993#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 611992#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 611391#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611359#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 611389#$Ultimate##0 ~n := #in~n; 611423#L25 assume !(~n <= 0); 611222#L26 call #t~ret0 := fact(~n - 1);< 611231#$Ultimate##0 ~n := #in~n; 611814#L25 assume !(~n <= 0); 611211#L26 call #t~ret0 := fact(~n - 1);< 611243#$Ultimate##0 ~n := #in~n; 611787#L25 assume !(~n <= 0); 611207#L26 call #t~ret0 := fact(~n - 1);< 611217#$Ultimate##0 ~n := #in~n; 611832#L25 assume !(~n <= 0); 611197#L26 call #t~ret0 := fact(~n - 1);< 611267#$Ultimate##0 ~n := #in~n; 611310#L25 assume !(~n <= 0); 611199#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611218#factFINAL assume true; 611224#factEXIT >#66#return; 611402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611395#factFINAL assume true; 611332#factEXIT >#68#return; 611117#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611330#$Ultimate##0 ~n := #in~n; 611471#L25 assume !(~n <= 0); 611209#L26 call #t~ret0 := fact(~n - 1);< 611464#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611286#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611394#factFINAL assume true; 611319#factEXIT >#70#return; 611151#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 611317#$Ultimate##0 ~n := #in~n; 611315#L25 assume !(~n <= 0); 611208#L26 call #t~ret0 := fact(~n - 1);< 611267#$Ultimate##0 ~n := #in~n; 611310#L25 assume !(~n <= 0); 611199#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611736#factFINAL assume true; 611522#factEXIT >#72#return; 611523#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 611809#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 611807#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 611806#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 611805#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611357#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 611389#$Ultimate##0 ~n := #in~n; 611423#L25 assume !(~n <= 0); 611222#L26 call #t~ret0 := fact(~n - 1);< 611231#$Ultimate##0 ~n := #in~n; 611814#L25 assume !(~n <= 0); 611211#L26 call #t~ret0 := fact(~n - 1);< 611243#$Ultimate##0 ~n := #in~n; 611787#L25 assume !(~n <= 0); 611207#L26 call #t~ret0 := fact(~n - 1);< 611217#$Ultimate##0 ~n := #in~n; 611832#L25 assume !(~n <= 0); 611197#L26 call #t~ret0 := fact(~n - 1);< 611267#$Ultimate##0 ~n := #in~n; 611310#L25 assume !(~n <= 0); 611199#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611218#factFINAL assume true; 611224#factEXIT >#66#return; 611402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611395#factFINAL assume true; 611332#factEXIT >#68#return; 611130#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611330#$Ultimate##0 ~n := #in~n; 611471#L25 assume !(~n <= 0); 611209#L26 call #t~ret0 := fact(~n - 1);< 611464#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611567#factFINAL assume true; 611551#factEXIT >#70#return; 611144#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 611187#$Ultimate##0 ~n := #in~n; 611831#L25 assume !(~n <= 0); 611194#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611567#factFINAL assume true; 611551#factEXIT >#72#return; 611558#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 613398#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 613397#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 613396#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 613395#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611376#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 611389#$Ultimate##0 ~n := #in~n; 611423#L25 assume !(~n <= 0); 611222#L26 call #t~ret0 := fact(~n - 1);< 611231#$Ultimate##0 ~n := #in~n; 611814#L25 assume !(~n <= 0); 611211#L26 call #t~ret0 := fact(~n - 1);< 611243#$Ultimate##0 ~n := #in~n; 611787#L25 assume !(~n <= 0); 611207#L26 call #t~ret0 := fact(~n - 1);< 611217#$Ultimate##0 ~n := #in~n; 611832#L25 assume !(~n <= 0); 611197#L26 call #t~ret0 := fact(~n - 1);< 611267#$Ultimate##0 ~n := #in~n; 611310#L25 assume !(~n <= 0); 611199#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611218#factFINAL assume true; 611224#factEXIT >#66#return; 611402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611395#factFINAL assume true; 611332#factEXIT >#68#return; 611068#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611330#$Ultimate##0 ~n := #in~n; 611471#L25 assume !(~n <= 0); 611209#L26 call #t~ret0 := fact(~n - 1);< 611464#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611736#factFINAL assume true; 611522#factEXIT >#70#return; 611149#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 611187#$Ultimate##0 ~n := #in~n; 611831#L25 assume !(~n <= 0); 611194#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611286#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611394#factFINAL assume true; 611319#factEXIT >#72#return; 611329#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 611777#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 611776#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 611775#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 611774#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611361#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 611389#$Ultimate##0 ~n := #in~n; 611423#L25 assume !(~n <= 0); 611222#L26 call #t~ret0 := fact(~n - 1);< 611231#$Ultimate##0 ~n := #in~n; 611814#L25 assume !(~n <= 0); 611211#L26 call #t~ret0 := fact(~n - 1);< 611243#$Ultimate##0 ~n := #in~n; 611787#L25 assume !(~n <= 0); 611207#L26 call #t~ret0 := fact(~n - 1);< 611217#$Ultimate##0 ~n := #in~n; 611832#L25 assume !(~n <= 0); 611197#L26 call #t~ret0 := fact(~n - 1);< 611267#$Ultimate##0 ~n := #in~n; 611310#L25 assume !(~n <= 0); 611199#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611218#factFINAL assume true; 611224#factEXIT >#66#return; 611402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611395#factFINAL assume true; 611332#factEXIT >#68#return; 611090#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611330#$Ultimate##0 ~n := #in~n; 611471#L25 assume !(~n <= 0); 611209#L26 call #t~ret0 := fact(~n - 1);< 611464#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611188#factFINAL assume true; 611189#factEXIT >#70#return; 611161#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 611473#$Ultimate##0 ~n := #in~n; 611470#L25 assume !(~n <= 0); 611209#L26 call #t~ret0 := fact(~n - 1);< 611464#$Ultimate##0 ~n := #in~n; 611472#L25 assume ~n <= 0;#res := 1; 611465#factFINAL assume true; 611459#factEXIT >#66#return; 611456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611451#factFINAL assume true; 611438#factEXIT >#72#return; 611442#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 611521#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 611516#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 611515#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 611513#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611368#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 611389#$Ultimate##0 ~n := #in~n; 611423#L25 assume !(~n <= 0); 611222#L26 call #t~ret0 := fact(~n - 1);< 611231#$Ultimate##0 ~n := #in~n; 611814#L25 assume !(~n <= 0); 611211#L26 call #t~ret0 := fact(~n - 1);< 611243#$Ultimate##0 ~n := #in~n; 611787#L25 assume !(~n <= 0); 611207#L26 call #t~ret0 := fact(~n - 1);< 611217#$Ultimate##0 ~n := #in~n; 611832#L25 assume !(~n <= 0); 611197#L26 call #t~ret0 := fact(~n - 1);< 611267#$Ultimate##0 ~n := #in~n; 611310#L25 assume !(~n <= 0); 611199#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611218#factFINAL assume true; 611224#factEXIT >#66#return; 611402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611395#factFINAL assume true; 611332#factEXIT >#68#return; 611075#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611330#$Ultimate##0 ~n := #in~n; 611471#L25 assume !(~n <= 0); 611209#L26 call #t~ret0 := fact(~n - 1);< 611464#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611218#factFINAL assume true; 611224#factEXIT >#66#return; 611409#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611571#factFINAL assume true; 611140#factEXIT >#70#return; 611080#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 611330#$Ultimate##0 ~n := #in~n; 611471#L25 assume ~n <= 0;#res := 1; 611137#factFINAL assume true; 611064#factEXIT >#72#return; 611018#L30-3 [2023-02-18 08:57:47,434 INFO L750 eck$LassoCheckResult]: Loop: 611018#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 611019#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 611036#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 611048#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 611028#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611029#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 611754#$Ultimate##0 ~n := #in~n; 611839#L25 assume !(~n <= 0); 611719#L26 call #t~ret0 := fact(~n - 1);< 611836#$Ultimate##0 ~n := #in~n; 611834#L25 assume !(~n <= 0); 611725#L26 call #t~ret0 := fact(~n - 1);< 611830#$Ultimate##0 ~n := #in~n; 611829#L25 assume !(~n <= 0); 611726#L26 call #t~ret0 := fact(~n - 1);< 611828#$Ultimate##0 ~n := #in~n; 611824#L25 assume !(~n <= 0); 611729#L26 call #t~ret0 := fact(~n - 1);< 611773#$Ultimate##0 ~n := #in~n; 611818#L25 assume !(~n <= 0); 611720#L26 call #t~ret0 := fact(~n - 1);< 611784#$Ultimate##0 ~n := #in~n; 611815#L25 assume !(~n <= 0); 611722#L26 call #t~ret0 := fact(~n - 1);< 611812#$Ultimate##0 ~n := #in~n; 611817#L25 assume ~n <= 0;#res := 1; 611816#factFINAL assume true; 611811#factEXIT >#66#return; 611810#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611808#factFINAL assume true; 611782#factEXIT >#66#return; 611780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611778#factFINAL assume true; 611771#factEXIT >#66#return; 611770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611769#factFINAL assume true; 611764#factEXIT >#66#return; 611763#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611752#factFINAL assume true; 611750#factEXIT >#66#return; 611730#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611747#factFINAL assume true; 611718#factEXIT >#66#return; 611716#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611713#factFINAL assume true; 611701#factEXIT >#74#return; 611698#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611827#$Ultimate##0 ~n := #in~n; 611823#L25 assume !(~n <= 0); 611723#L26 call #t~ret0 := fact(~n - 1);< 611753#$Ultimate##0 ~n := #in~n; 611815#L25 assume !(~n <= 0); 611722#L26 call #t~ret0 := fact(~n - 1);< 611812#$Ultimate##0 ~n := #in~n; 611815#L25 assume !(~n <= 0); 611722#L26 call #t~ret0 := fact(~n - 1);< 611812#$Ultimate##0 ~n := #in~n; 611815#L25 assume !(~n <= 0); 611722#L26 call #t~ret0 := fact(~n - 1);< 611812#$Ultimate##0 ~n := #in~n; 611815#L25 assume !(~n <= 0); 611722#L26 call #t~ret0 := fact(~n - 1);< 611812#$Ultimate##0 ~n := #in~n; 611817#L25 assume ~n <= 0;#res := 1; 611816#factFINAL assume true; 611811#factEXIT >#66#return; 611810#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611808#factFINAL assume true; 611782#factEXIT >#66#return; 611780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611778#factFINAL assume true; 611771#factEXIT >#66#return; 611770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611769#factFINAL assume true; 611764#factEXIT >#66#return; 611763#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611752#factFINAL assume true; 611750#factEXIT >#66#return; 611751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611819#factFINAL assume true; 611697#factEXIT >#76#return; 611010#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 612059#$Ultimate##0 ~n := #in~n; 612058#L25 assume !(~n <= 0); 610986#L26 call #t~ret0 := fact(~n - 1);< 611011#$Ultimate##0 ~n := #in~n; 613252#L25 assume ~n <= 0;#res := 1; 610994#factFINAL assume true; 610985#factEXIT >#66#return; 610988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 612419#factFINAL assume true; 612121#factEXIT >#78#return; 611004#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 611005#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 611026#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 612661#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 611022#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 611023#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 612737#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 612735#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 610998#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 610999#$Ultimate##0 ~n := #in~n; 611672#L25 assume !(~n <= 0); 611219#L26 call #t~ret0 := fact(~n - 1);< 611231#$Ultimate##0 ~n := #in~n; 611814#L25 assume !(~n <= 0); 611211#L26 call #t~ret0 := fact(~n - 1);< 611243#$Ultimate##0 ~n := #in~n; 611787#L25 assume !(~n <= 0); 611207#L26 call #t~ret0 := fact(~n - 1);< 611217#$Ultimate##0 ~n := #in~n; 611832#L25 assume !(~n <= 0); 611197#L26 call #t~ret0 := fact(~n - 1);< 611267#$Ultimate##0 ~n := #in~n; 611310#L25 assume !(~n <= 0); 611199#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611218#factFINAL assume true; 611224#factEXIT >#66#return; 611410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611663#factFINAL assume true; 611639#factEXIT >#68#return; 611637#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611638#$Ultimate##0 ~n := #in~n; 611680#L25 assume ~n <= 0;#res := 1; 611677#factFINAL assume true; 611629#factEXIT >#70#return; 611405#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 611627#$Ultimate##0 ~n := #in~n; 611997#L25 assume !(~n <= 0); 611221#L26 call #t~ret0 := fact(~n - 1);< 611396#$Ultimate##0 ~n := #in~n; 611390#L25 assume !(~n <= 0); 611192#L26 call #t~ret0 := fact(~n - 1);< 611331#$Ultimate##0 ~n := #in~n; 611318#L25 assume !(~n <= 0); 611195#L26 call #t~ret0 := fact(~n - 1);< 611316#$Ultimate##0 ~n := #in~n; 611314#L25 assume !(~n <= 0); 611196#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611218#factFINAL assume true; 611224#factEXIT >#66#return; 611411#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611813#factFINAL assume true; 611619#factEXIT >#72#return; 611625#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 612036#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 612034#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 612032#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 612030#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611385#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 611389#$Ultimate##0 ~n := #in~n; 611423#L25 assume !(~n <= 0); 611222#L26 call #t~ret0 := fact(~n - 1);< 611231#$Ultimate##0 ~n := #in~n; 611814#L25 assume !(~n <= 0); 611211#L26 call #t~ret0 := fact(~n - 1);< 611243#$Ultimate##0 ~n := #in~n; 611787#L25 assume !(~n <= 0); 611207#L26 call #t~ret0 := fact(~n - 1);< 611217#$Ultimate##0 ~n := #in~n; 611832#L25 assume !(~n <= 0); 611197#L26 call #t~ret0 := fact(~n - 1);< 611267#$Ultimate##0 ~n := #in~n; 611310#L25 assume !(~n <= 0); 611199#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611218#factFINAL assume true; 611224#factEXIT >#66#return; 611402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611395#factFINAL assume true; 611332#factEXIT >#68#return; 611093#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611452#$Ultimate##0 ~n := #in~n; 611510#L25 assume !(~n <= 0); 611461#L26 call #t~ret0 := fact(~n - 1);< 611469#$Ultimate##0 ~n := #in~n; 611472#L25 assume ~n <= 0;#res := 1; 611465#factFINAL assume true; 611459#factEXIT >#66#return; 611456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611451#factFINAL assume true; 611438#factEXIT >#70#return; 611152#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 611493#$Ultimate##0 ~n := #in~n; 611492#L25 assume !(~n <= 0); 611198#L26 call #t~ret0 := fact(~n - 1);< 611217#$Ultimate##0 ~n := #in~n; 611832#L25 assume !(~n <= 0); 611197#L26 call #t~ret0 := fact(~n - 1);< 611267#$Ultimate##0 ~n := #in~n; 611310#L25 assume !(~n <= 0); 611199#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611736#factFINAL assume true; 611522#factEXIT >#72#return; 611172#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 611996#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 611993#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 611992#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 611391#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611359#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 611389#$Ultimate##0 ~n := #in~n; 611423#L25 assume !(~n <= 0); 611222#L26 call #t~ret0 := fact(~n - 1);< 611231#$Ultimate##0 ~n := #in~n; 611814#L25 assume !(~n <= 0); 611211#L26 call #t~ret0 := fact(~n - 1);< 611243#$Ultimate##0 ~n := #in~n; 611787#L25 assume !(~n <= 0); 611207#L26 call #t~ret0 := fact(~n - 1);< 611217#$Ultimate##0 ~n := #in~n; 611832#L25 assume !(~n <= 0); 611197#L26 call #t~ret0 := fact(~n - 1);< 611267#$Ultimate##0 ~n := #in~n; 611310#L25 assume !(~n <= 0); 611199#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611218#factFINAL assume true; 611224#factEXIT >#66#return; 611402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611395#factFINAL assume true; 611332#factEXIT >#68#return; 611117#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611330#$Ultimate##0 ~n := #in~n; 611471#L25 assume !(~n <= 0); 611209#L26 call #t~ret0 := fact(~n - 1);< 611464#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611286#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611394#factFINAL assume true; 611319#factEXIT >#70#return; 611151#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 611317#$Ultimate##0 ~n := #in~n; 611315#L25 assume !(~n <= 0); 611208#L26 call #t~ret0 := fact(~n - 1);< 611267#$Ultimate##0 ~n := #in~n; 611310#L25 assume !(~n <= 0); 611199#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611736#factFINAL assume true; 611522#factEXIT >#72#return; 611523#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 611809#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 611807#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 611806#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 611805#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611357#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 611389#$Ultimate##0 ~n := #in~n; 611423#L25 assume !(~n <= 0); 611222#L26 call #t~ret0 := fact(~n - 1);< 611231#$Ultimate##0 ~n := #in~n; 611814#L25 assume !(~n <= 0); 611211#L26 call #t~ret0 := fact(~n - 1);< 611243#$Ultimate##0 ~n := #in~n; 611787#L25 assume !(~n <= 0); 611207#L26 call #t~ret0 := fact(~n - 1);< 611217#$Ultimate##0 ~n := #in~n; 611832#L25 assume !(~n <= 0); 611197#L26 call #t~ret0 := fact(~n - 1);< 611267#$Ultimate##0 ~n := #in~n; 611310#L25 assume !(~n <= 0); 611199#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611218#factFINAL assume true; 611224#factEXIT >#66#return; 611402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611395#factFINAL assume true; 611332#factEXIT >#68#return; 611130#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611330#$Ultimate##0 ~n := #in~n; 611471#L25 assume !(~n <= 0); 611209#L26 call #t~ret0 := fact(~n - 1);< 611464#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611567#factFINAL assume true; 611551#factEXIT >#70#return; 611144#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 611187#$Ultimate##0 ~n := #in~n; 611831#L25 assume !(~n <= 0); 611194#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611567#factFINAL assume true; 611551#factEXIT >#72#return; 611558#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 613398#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 613397#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 613396#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 613395#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611376#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 611389#$Ultimate##0 ~n := #in~n; 611423#L25 assume !(~n <= 0); 611222#L26 call #t~ret0 := fact(~n - 1);< 611231#$Ultimate##0 ~n := #in~n; 611814#L25 assume !(~n <= 0); 611211#L26 call #t~ret0 := fact(~n - 1);< 611243#$Ultimate##0 ~n := #in~n; 611787#L25 assume !(~n <= 0); 611207#L26 call #t~ret0 := fact(~n - 1);< 611217#$Ultimate##0 ~n := #in~n; 611832#L25 assume !(~n <= 0); 611197#L26 call #t~ret0 := fact(~n - 1);< 611267#$Ultimate##0 ~n := #in~n; 611310#L25 assume !(~n <= 0); 611199#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611218#factFINAL assume true; 611224#factEXIT >#66#return; 611402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611395#factFINAL assume true; 611332#factEXIT >#68#return; 611068#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611330#$Ultimate##0 ~n := #in~n; 611471#L25 assume !(~n <= 0); 611209#L26 call #t~ret0 := fact(~n - 1);< 611464#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611736#factFINAL assume true; 611522#factEXIT >#70#return; 611149#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 611187#$Ultimate##0 ~n := #in~n; 611831#L25 assume !(~n <= 0); 611194#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611286#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611394#factFINAL assume true; 611319#factEXIT >#72#return; 611329#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 611777#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 611776#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 611775#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 611774#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611361#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 611389#$Ultimate##0 ~n := #in~n; 611423#L25 assume !(~n <= 0); 611222#L26 call #t~ret0 := fact(~n - 1);< 611231#$Ultimate##0 ~n := #in~n; 611814#L25 assume !(~n <= 0); 611211#L26 call #t~ret0 := fact(~n - 1);< 611243#$Ultimate##0 ~n := #in~n; 611787#L25 assume !(~n <= 0); 611207#L26 call #t~ret0 := fact(~n - 1);< 611217#$Ultimate##0 ~n := #in~n; 611832#L25 assume !(~n <= 0); 611197#L26 call #t~ret0 := fact(~n - 1);< 611267#$Ultimate##0 ~n := #in~n; 611310#L25 assume !(~n <= 0); 611199#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611218#factFINAL assume true; 611224#factEXIT >#66#return; 611402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611395#factFINAL assume true; 611332#factEXIT >#68#return; 611090#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611330#$Ultimate##0 ~n := #in~n; 611471#L25 assume !(~n <= 0); 611209#L26 call #t~ret0 := fact(~n - 1);< 611464#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611188#factFINAL assume true; 611189#factEXIT >#70#return; 611161#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 611473#$Ultimate##0 ~n := #in~n; 611470#L25 assume !(~n <= 0); 611209#L26 call #t~ret0 := fact(~n - 1);< 611464#$Ultimate##0 ~n := #in~n; 611472#L25 assume ~n <= 0;#res := 1; 611465#factFINAL assume true; 611459#factEXIT >#66#return; 611456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611451#factFINAL assume true; 611438#factEXIT >#72#return; 611442#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 611521#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 611516#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 611515#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 611513#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 611368#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 611389#$Ultimate##0 ~n := #in~n; 611423#L25 assume !(~n <= 0); 611222#L26 call #t~ret0 := fact(~n - 1);< 611231#$Ultimate##0 ~n := #in~n; 611814#L25 assume !(~n <= 0); 611211#L26 call #t~ret0 := fact(~n - 1);< 611243#$Ultimate##0 ~n := #in~n; 611787#L25 assume !(~n <= 0); 611207#L26 call #t~ret0 := fact(~n - 1);< 611217#$Ultimate##0 ~n := #in~n; 611832#L25 assume !(~n <= 0); 611197#L26 call #t~ret0 := fact(~n - 1);< 611267#$Ultimate##0 ~n := #in~n; 611310#L25 assume !(~n <= 0); 611199#L26 call #t~ret0 := fact(~n - 1);< 611255#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611218#factFINAL assume true; 611224#factEXIT >#66#return; 611402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611395#factFINAL assume true; 611332#factEXIT >#68#return; 611075#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 611330#$Ultimate##0 ~n := #in~n; 611471#L25 assume !(~n <= 0); 611209#L26 call #t~ret0 := fact(~n - 1);< 611464#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611306#L25 assume !(~n <= 0); 611202#L26 call #t~ret0 := fact(~n - 1);< 611301#$Ultimate##0 ~n := #in~n; 611308#L25 assume ~n <= 0;#res := 1; 611304#factFINAL assume true; 611299#factEXIT >#66#return; 611297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611293#factFINAL assume true; 611282#factEXIT >#66#return; 611279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611268#factFINAL assume true; 611257#factEXIT >#66#return; 611256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611245#factFINAL assume true; 611234#factEXIT >#66#return; 611232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611233#factFINAL assume true; 611191#factEXIT >#66#return; 611190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 611188#factFINAL assume true; 611189#factEXIT >#70#return; 611080#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 611330#$Ultimate##0 ~n := #in~n; 611471#L25 assume ~n <= 0;#res := 1; 611137#factFINAL assume true; 611064#factEXIT >#72#return; 611018#L30-3 [2023-02-18 08:57:47,434 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:47,434 INFO L85 PathProgramCache]: Analyzing trace with hash 1839332737, now seen corresponding path program 67 times [2023-02-18 08:57:47,434 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:47,434 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [80276955] [2023-02-18 08:57:47,434 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:47,434 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:47,461 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:47,462 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [429564598] [2023-02-18 08:57:47,462 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:57:47,462 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:47,462 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:47,464 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-18 08:57:47,464 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-18 08:57:48,315 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:57:48,329 INFO L263 TraceCheckSpWp]: Trace formula consists of 3760 conjuncts, 15 conjunts are in the unsatisfiable core [2023-02-18 08:57:48,339 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:48,397 INFO L134 CoverageAnalysis]: Checked inductivity of 195812 backedges. 83166 proven. 338 refuted. 0 times theorem prover too weak. 112308 trivial. 0 not checked. [2023-02-18 08:57:48,397 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:48,512 INFO L134 CoverageAnalysis]: Checked inductivity of 195812 backedges. 2320 proven. 3859 refuted. 0 times theorem prover too weak. 189633 trivial. 0 not checked. [2023-02-18 08:57:48,513 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:48,513 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [80276955] [2023-02-18 08:57:48,513 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:48,513 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [429564598] [2023-02-18 08:57:48,513 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [429564598] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:48,513 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:48,513 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 16 [2023-02-18 08:57:48,513 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [771437379] [2023-02-18 08:57:48,513 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:48,514 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:57:48,514 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:48,514 INFO L85 PathProgramCache]: Analyzing trace with hash 125949260, now seen corresponding path program 67 times [2023-02-18 08:57:48,514 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:48,514 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1931475528] [2023-02-18 08:57:48,514 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:48,514 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:48,528 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:48,528 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1273301857] [2023-02-18 08:57:48,529 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:57:48,529 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:48,529 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:48,531 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-18 08:57:48,532 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-18 08:57:49,081 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:57:49,086 INFO L263 TraceCheckSpWp]: Trace formula consists of 1544 conjuncts, 31 conjunts are in the unsatisfiable core [2023-02-18 08:57:49,091 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:49,195 INFO L134 CoverageAnalysis]: Checked inductivity of 36551 backedges. 18189 proven. 745 refuted. 0 times theorem prover too weak. 17617 trivial. 0 not checked. [2023-02-18 08:57:49,195 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:49,503 INFO L134 CoverageAnalysis]: Checked inductivity of 36551 backedges. 1032 proven. 4062 refuted. 0 times theorem prover too weak. 31457 trivial. 0 not checked. [2023-02-18 08:57:49,503 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:49,503 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1931475528] [2023-02-18 08:57:49,503 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:49,503 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1273301857] [2023-02-18 08:57:49,503 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1273301857] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:49,503 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:49,503 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 28] total 34 [2023-02-18 08:57:49,504 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2030815333] [2023-02-18 08:57:49,504 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:49,504 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:57:49,504 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:57:49,504 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 34 interpolants. [2023-02-18 08:57:49,504 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=142, Invalid=980, Unknown=0, NotChecked=0, Total=1122 [2023-02-18 08:57:49,505 INFO L87 Difference]: Start difference. First operand 4603 states and 6890 transitions. cyclomatic complexity: 2329 Second operand has 34 states, 30 states have (on average 2.9) internal successors, (87), 34 states have internal predecessors, (87), 20 states have call successors, (36), 2 states have call predecessors, (36), 12 states have return successors, (42), 18 states have call predecessors, (42), 20 states have call successors, (42) [2023-02-18 08:57:50,976 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:57:50,976 INFO L93 Difference]: Finished difference Result 4691 states and 6926 transitions. [2023-02-18 08:57:50,976 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4691 states and 6926 transitions. [2023-02-18 08:57:50,997 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 318 [2023-02-18 08:57:51,023 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4691 states to 4559 states and 6700 transitions. [2023-02-18 08:57:51,023 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 243 [2023-02-18 08:57:51,023 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 243 [2023-02-18 08:57:51,023 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4559 states and 6700 transitions. [2023-02-18 08:57:51,023 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:57:51,023 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4559 states and 6700 transitions. [2023-02-18 08:57:51,025 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4559 states and 6700 transitions. [2023-02-18 08:57:51,067 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4559 to 4295. [2023-02-18 08:57:51,070 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4295 states, 2659 states have (on average 1.0511470477623166) internal successors, (2795), 2653 states have internal predecessors, (2795), 1305 states have call successors, (1327), 433 states have call predecessors, (1327), 331 states have return successors, (2257), 1208 states have call predecessors, (2257), 1305 states have call successors, (2257) [2023-02-18 08:57:51,082 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4295 states to 4295 states and 6379 transitions. [2023-02-18 08:57:51,083 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4295 states and 6379 transitions. [2023-02-18 08:57:51,083 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 32 states. [2023-02-18 08:57:51,083 INFO L428 stractBuchiCegarLoop]: Abstraction has 4295 states and 6379 transitions. [2023-02-18 08:57:51,083 INFO L335 stractBuchiCegarLoop]: ======== Iteration 80 ============ [2023-02-18 08:57:51,083 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4295 states and 6379 transitions. [2023-02-18 08:57:51,092 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 305 [2023-02-18 08:57:51,092 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:57:51,092 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:57:51,097 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [280, 280, 202, 202, 202, 202, 78, 26, 25, 19, 19, 19, 19, 19, 19, 19, 18, 18, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 4, 4, 1, 1, 1, 1] [2023-02-18 08:57:51,097 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [119, 119, 95, 95, 95, 95, 24, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:57:51,098 INFO L748 eck$LassoCheckResult]: Stem: 635215#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 635161#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; 635162#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 635183#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; 635216#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 639058#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 638983#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635159#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635160#$Ultimate##0 ~n := #in~n; 638966#L25 assume ~n <= 0;#res := 1; 638963#factFINAL assume true; 638962#factEXIT >#68#return; 635204#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635205#$Ultimate##0 ~n := #in~n; 638988#L25 assume ~n <= 0;#res := 1; 638987#factFINAL assume true; 638985#factEXIT >#70#return; 635151#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635152#$Ultimate##0 ~n := #in~n; 639319#L25 assume ~n <= 0;#res := 1; 639316#factFINAL assume true; 639315#factEXIT >#72#return; 639313#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 639307#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 639301#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 639297#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 639296#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 639294#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 639295#$Ultimate##0 ~n := #in~n; 639314#L25 assume !(~n <= 0); 639311#L26 call #t~ret0 := fact(~n - 1);< 639312#$Ultimate##0 ~n := #in~n; 639320#L25 assume ~n <= 0;#res := 1; 639318#factFINAL assume true; 639310#factEXIT >#66#return; 639306#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 639300#factFINAL assume true; 639293#factEXIT >#74#return; 639291#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 639292#$Ultimate##0 ~n := #in~n; 639305#L25 assume ~n <= 0;#res := 1; 639299#factFINAL assume true; 639290#factEXIT >#76#return; 639287#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 639288#$Ultimate##0 ~n := #in~n; 639309#L25 assume !(~n <= 0); 639303#L26 call #t~ret0 := fact(~n - 1);< 639304#$Ultimate##0 ~n := #in~n; 639317#L25 assume ~n <= 0;#res := 1; 639308#factFINAL assume true; 639302#factEXIT >#66#return; 639298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 639289#factFINAL assume true; 639286#factEXIT >#78#return; 639284#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 639280#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 639277#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 639275#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 639273#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 639199#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 639200#$Ultimate##0 ~n := #in~n; 639282#L25 assume !(~n <= 0); 639266#L26 call #t~ret0 := fact(~n - 1);< 639271#$Ultimate##0 ~n := #in~n; 639283#L25 assume !(~n <= 0); 639268#L26 call #t~ret0 := fact(~n - 1);< 639279#$Ultimate##0 ~n := #in~n; 639285#L25 assume ~n <= 0;#res := 1; 639281#factFINAL assume true; 639278#factEXIT >#66#return; 639276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 639274#factFINAL assume true; 639265#factEXIT >#66#return; 639269#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 639374#factFINAL assume true; 639198#factEXIT >#74#return; 639195#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 639196#$Ultimate##0 ~n := #in~n; 639238#L25 assume ~n <= 0;#res := 1; 639203#factFINAL assume true; 639194#factEXIT >#76#return; 639191#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 639192#$Ultimate##0 ~n := #in~n; 639272#L25 assume !(~n <= 0); 639267#L26 call #t~ret0 := fact(~n - 1);< 639271#$Ultimate##0 ~n := #in~n; 639283#L25 assume !(~n <= 0); 639268#L26 call #t~ret0 := fact(~n - 1);< 639279#$Ultimate##0 ~n := #in~n; 639285#L25 assume ~n <= 0;#res := 1; 639281#factFINAL assume true; 639278#factEXIT >#66#return; 639276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 639274#factFINAL assume true; 639265#factEXIT >#66#return; 639197#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 639193#factFINAL assume true; 639190#factEXIT >#78#return; 639189#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 639188#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 639187#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 639186#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 639184#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 639174#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 639175#$Ultimate##0 ~n := #in~n; 639215#L25 assume !(~n <= 0); 639212#L26 call #t~ret0 := fact(~n - 1);< 639214#$Ultimate##0 ~n := #in~n; 639222#L25 assume !(~n <= 0); 639213#L26 call #t~ret0 := fact(~n - 1);< 639220#$Ultimate##0 ~n := #in~n; 639222#L25 assume !(~n <= 0); 639213#L26 call #t~ret0 := fact(~n - 1);< 639220#$Ultimate##0 ~n := #in~n; 639233#L25 assume ~n <= 0;#res := 1; 639231#factFINAL assume true; 639230#factEXIT >#66#return; 639229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 639227#factFINAL assume true; 639219#factEXIT >#66#return; 639217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 639216#factFINAL assume true; 639211#factEXIT >#66#return; 639210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 639208#factFINAL assume true; 639173#factEXIT >#74#return; 639170#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 639171#$Ultimate##0 ~n := #in~n; 639234#L25 assume ~n <= 0;#res := 1; 639232#factFINAL assume true; 639169#factEXIT >#76#return; 635190#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 639167#$Ultimate##0 ~n := #in~n; 639236#L25 assume !(~n <= 0); 639177#L26 call #t~ret0 := fact(~n - 1);< 639183#$Ultimate##0 ~n := #in~n; 639228#L25 assume !(~n <= 0); 639179#L26 call #t~ret0 := fact(~n - 1);< 639224#$Ultimate##0 ~n := #in~n; 639228#L25 assume !(~n <= 0); 639179#L26 call #t~ret0 := fact(~n - 1);< 639224#$Ultimate##0 ~n := #in~n; 639226#L25 assume ~n <= 0;#res := 1; 639225#factFINAL assume true; 639223#factEXIT >#66#return; 639221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 639218#factFINAL assume true; 639209#factEXIT >#66#return; 639207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 639206#factFINAL assume true; 639176#factEXIT >#66#return; 635189#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635191#factFINAL assume true; 639166#factEXIT >#78#return; 639156#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 639155#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 639154#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 639153#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 635178#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 635174#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 635175#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 637998#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 637276#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 637281#$Ultimate##0 ~n := #in~n; 637993#L25 assume !(~n <= 0); 637973#L26 call #t~ret0 := fact(~n - 1);< 637992#$Ultimate##0 ~n := #in~n; 638042#L25 assume ~n <= 0;#res := 1; 638356#factFINAL assume true; 638340#factEXIT >#66#return; 638345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 638681#factFINAL assume true; 638680#factEXIT >#68#return; 638462#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 637211#$Ultimate##0 ~n := #in~n; 638465#L25 assume ~n <= 0;#res := 1; 638463#factFINAL assume true; 638461#factEXIT >#70#return; 638384#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 638618#$Ultimate##0 ~n := #in~n; 638617#L25 assume !(~n <= 0); 637955#L26 call #t~ret0 := fact(~n - 1);< 638366#$Ultimate##0 ~n := #in~n; 638042#L25 assume ~n <= 0;#res := 1; 638356#factFINAL assume true; 638340#factEXIT >#66#return; 638346#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 638679#factFINAL assume true; 638678#factEXIT >#72#return; 638677#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 638676#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 638674#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 638672#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 638670#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 638365#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 638369#$Ultimate##0 ~n := #in~n; 638367#L25 assume !(~n <= 0); 637959#L26 call #t~ret0 := fact(~n - 1);< 638366#$Ultimate##0 ~n := #in~n; 638042#L25 assume ~n <= 0;#res := 1; 638356#factFINAL assume true; 638340#factEXIT >#66#return; 638350#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 638400#factFINAL assume true; 638393#factEXIT >#68#return; 638288#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 638306#$Ultimate##0 ~n := #in~n; 638756#L25 assume !(~n <= 0); 637982#L26 call #t~ret0 := fact(~n - 1);< 637992#$Ultimate##0 ~n := #in~n; 638042#L25 assume ~n <= 0;#res := 1; 638356#factFINAL assume true; 638340#factEXIT >#66#return; 638349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 638314#factFINAL assume true; 638286#factEXIT >#70#return; 638275#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 638284#$Ultimate##0 ~n := #in~n; 638660#L25 assume ~n <= 0;#res := 1; 638389#factFINAL assume true; 638270#factEXIT >#72#return; 638269#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 638267#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 638266#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 638264#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 638263#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 638257#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 638261#$Ultimate##0 ~n := #in~n; 638285#L25 assume !(~n <= 0); 637958#L26 call #t~ret0 := fact(~n - 1);< 638268#$Ultimate##0 ~n := #in~n; 638128#L25 assume !(~n <= 0); 637960#L26 call #t~ret0 := fact(~n - 1);< 638020#$Ultimate##0 ~n := #in~n; 638024#L25 assume ~n <= 0;#res := 1; 638023#factFINAL assume true; 638017#factEXIT >#66#return; 638015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637994#factFINAL assume true; 637952#factEXIT >#66#return; 637988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 638265#factFINAL assume true; 638262#factEXIT >#74#return; 638204#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 638254#$Ultimate##0 ~n := #in~n; 638353#L25 assume !(~n <= 0); 637956#L26 call #t~ret0 := fact(~n - 1);< 637992#$Ultimate##0 ~n := #in~n; 638042#L25 assume ~n <= 0;#res := 1; 638356#factFINAL assume true; 638340#factEXIT >#66#return; 638339#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 638326#factFINAL assume true; 638202#factEXIT >#76#return; 638210#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 638229#$Ultimate##0 ~n := #in~n; 638352#L25 assume !(~n <= 0); 638343#L26 call #t~ret0 := fact(~n - 1);< 638351#$Ultimate##0 ~n := #in~n; 638042#L25 assume ~n <= 0;#res := 1; 638356#factFINAL assume true; 638340#factEXIT >#66#return; 638339#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 638326#factFINAL assume true; 638202#factEXIT >#78#return; 638201#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 638200#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 638199#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 638186#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 638179#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 638122#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 638144#$Ultimate##0 ~n := #in~n; 638730#L25 assume !(~n <= 0); 638164#L26 call #t~ret0 := fact(~n - 1);< 638308#$Ultimate##0 ~n := #in~n; 638854#L25 assume !(~n <= 0); 638167#L26 call #t~ret0 := fact(~n - 1);< 638313#$Ultimate##0 ~n := #in~n; 638854#L25 assume !(~n <= 0); 638167#L26 call #t~ret0 := fact(~n - 1);< 638313#$Ultimate##0 ~n := #in~n; 638392#L25 assume ~n <= 0;#res := 1; 638391#factFINAL assume true; 638310#factEXIT >#66#return; 638309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 638307#factFINAL assume true; 638188#factEXIT >#66#return; 638183#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 638176#factFINAL assume true; 638152#factEXIT >#66#return; 638172#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 638143#factFINAL assume true; 638132#factEXIT >#74#return; 638085#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 638148#$Ultimate##0 ~n := #in~n; 638776#L25 assume !(~n <= 0); 638161#L26 call #t~ret0 := fact(~n - 1);< 638775#$Ultimate##0 ~n := #in~n; 638398#L25 assume ~n <= 0;#res := 1; 638778#factFINAL assume true; 638770#factEXIT >#66#return; 638766#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 638765#factFINAL assume true; 638069#factEXIT >#76#return; 638090#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 638124#$Ultimate##0 ~n := #in~n; 638399#L25 assume !(~n <= 0); 638168#L26 call #t~ret0 := fact(~n - 1);< 638397#$Ultimate##0 ~n := #in~n; 638396#L25 assume !(~n <= 0); 638160#L26 call #t~ret0 := fact(~n - 1);< 638394#$Ultimate##0 ~n := #in~n; 638392#L25 assume ~n <= 0;#res := 1; 638391#factFINAL assume true; 638310#factEXIT >#66#return; 638309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 638307#factFINAL assume true; 638188#factEXIT >#66#return; 638182#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 638147#factFINAL assume true; 638107#factEXIT >#78#return; 638104#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 638102#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 638100#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 638099#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 638098#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 638097#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 638096#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 638095#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 637277#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 637281#$Ultimate##0 ~n := #in~n; 637993#L25 assume !(~n <= 0); 637973#L26 call #t~ret0 := fact(~n - 1);< 637992#$Ultimate##0 ~n := #in~n; 638031#L25 assume !(~n <= 0); 637983#L26 call #t~ret0 := fact(~n - 1);< 638026#$Ultimate##0 ~n := #in~n; 638024#L25 assume ~n <= 0;#res := 1; 638023#factFINAL assume true; 638017#factEXIT >#66#return; 638015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637994#factFINAL assume true; 637952#factEXIT >#66#return; 637950#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637407#factFINAL assume true; 637273#factEXIT >#68#return; 637205#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 637209#$Ultimate##0 ~n := #in~n; 637272#L25 assume ~n <= 0;#res := 1; 637271#factFINAL assume true; 637201#factEXIT >#70#return; 636892#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 636911#$Ultimate##0 ~n := #in~n; 636910#L25 assume !(~n <= 0); 636210#L26 call #t~ret0 := fact(~n - 1);< 636221#$Ultimate##0 ~n := #in~n; 636474#L25 assume !(~n <= 0); 636463#L26 call #t~ret0 := fact(~n - 1);< 636464#$Ultimate##0 ~n := #in~n; 636673#L25 assume ~n <= 0;#res := 1; 636671#factFINAL assume true; 636462#factEXIT >#66#return; 636460#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 636319#factFINAL assume true; 636203#factEXIT >#66#return; 636219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 639005#factFINAL assume true; 637192#factEXIT >#72#return; 637193#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 638491#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 638487#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 638483#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 638481#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 637161#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 636918#$Ultimate##0 ~n := #in~n; 637183#L25 assume !(~n <= 0); 636211#L26 call #t~ret0 := fact(~n - 1);< 636221#$Ultimate##0 ~n := #in~n; 636474#L25 assume !(~n <= 0); 636463#L26 call #t~ret0 := fact(~n - 1);< 636464#$Ultimate##0 ~n := #in~n; 636673#L25 assume ~n <= 0;#res := 1; 636671#factFINAL assume true; 636462#factEXIT >#66#return; 636460#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 636319#factFINAL assume true; 636203#factEXIT >#66#return; 636220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637172#factFINAL assume true; 637158#factEXIT >#68#return; 637112#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 637148#$Ultimate##0 ~n := #in~n; 637147#L25 assume !(~n <= 0); 636139#L26 call #t~ret0 := fact(~n - 1);< 636305#$Ultimate##0 ~n := #in~n; 636384#L25 assume ~n <= 0;#res := 1; 636286#factFINAL assume true; 636269#factEXIT >#66#return; 636278#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637186#factFINAL assume true; 637176#factEXIT >#70#return; 636289#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 637182#$Ultimate##0 ~n := #in~n; 638008#L25 assume !(~n <= 0); 636271#L26 call #t~ret0 := fact(~n - 1);< 636281#$Ultimate##0 ~n := #in~n; 636384#L25 assume ~n <= 0;#res := 1; 636286#factFINAL assume true; 636269#factEXIT >#66#return; 636278#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637186#factFINAL assume true; 637176#factEXIT >#72#return; 637178#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 638460#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 638446#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 638444#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 638442#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 637165#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 636918#$Ultimate##0 ~n := #in~n; 637183#L25 assume !(~n <= 0); 636211#L26 call #t~ret0 := fact(~n - 1);< 636221#$Ultimate##0 ~n := #in~n; 636474#L25 assume !(~n <= 0); 636463#L26 call #t~ret0 := fact(~n - 1);< 636464#$Ultimate##0 ~n := #in~n; 636673#L25 assume ~n <= 0;#res := 1; 636671#factFINAL assume true; 636462#factEXIT >#66#return; 636460#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 636319#factFINAL assume true; 636203#factEXIT >#66#return; 636220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637172#factFINAL assume true; 637158#factEXIT >#68#return; 636327#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 637157#$Ultimate##0 ~n := #in~n; 637874#L25 assume !(~n <= 0); 636132#L26 call #t~ret0 := fact(~n - 1);< 636149#$Ultimate##0 ~n := #in~n; 637105#L25 assume !(~n <= 0); 636212#L26 call #t~ret0 := fact(~n - 1);< 636466#$Ultimate##0 ~n := #in~n; 636673#L25 assume ~n <= 0;#res := 1; 636671#factFINAL assume true; 636462#factEXIT >#66#return; 636460#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 636319#factFINAL assume true; 636203#factEXIT >#66#return; 636217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 639006#factFINAL assume true; 637156#factEXIT >#70#return; 636900#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 636909#$Ultimate##0 ~n := #in~n; 636926#L25 assume ~n <= 0;#res := 1; 636923#factFINAL assume true; 636898#factEXIT >#72#return; 635181#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 635182#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 639326#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 639324#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 635187#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635188#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 636021#$Ultimate##0 ~n := #in~n; 636019#L25 assume !(~n <= 0); 635824#L26 call #t~ret0 := fact(~n - 1);< 635917#$Ultimate##0 ~n := #in~n; 635996#L25 assume !(~n <= 0); 635825#L26 call #t~ret0 := fact(~n - 1);< 635977#$Ultimate##0 ~n := #in~n; 635996#L25 assume !(~n <= 0); 635825#L26 call #t~ret0 := fact(~n - 1);< 635977#$Ultimate##0 ~n := #in~n; 635981#L25 assume ~n <= 0;#res := 1; 635987#factFINAL assume true; 635975#factEXIT >#66#return; 635972#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635933#factFINAL assume true; 635840#factEXIT >#66#return; 635845#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635836#factFINAL assume true; 635811#factEXIT >#66#return; 635834#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 636153#factFINAL assume true; 636025#factEXIT >#74#return; 635940#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635985#$Ultimate##0 ~n := #in~n; 639340#L25 assume !(~n <= 0); 635830#L26 call #t~ret0 := fact(~n - 1);< 635941#$Ultimate##0 ~n := #in~n; 635988#L25 assume !(~n <= 0); 635842#L26 call #t~ret0 := fact(~n - 1);< 635942#$Ultimate##0 ~n := #in~n; 635981#L25 assume ~n <= 0;#res := 1; 635987#factFINAL assume true; 635975#factEXIT >#66#return; 635972#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635933#factFINAL assume true; 635840#factEXIT >#66#return; 635844#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 636087#factFINAL assume true; 636016#factEXIT >#76#return; 635944#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635979#$Ultimate##0 ~n := #in~n; 635973#L25 assume !(~n <= 0); 635848#L26 call #t~ret0 := fact(~n - 1);< 635854#$Ultimate##0 ~n := #in~n; 635959#L25 assume ~n <= 0;#res := 1; 635943#factFINAL assume true; 635847#factEXIT >#66#return; 635850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 636088#factFINAL assume true; 636017#factEXIT >#78#return; 635861#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 636015#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 636013#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 636012#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 636010#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 636008#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 636006#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 636004#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635487#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635495#$Ultimate##0 ~n := #in~n; 635492#L25 assume !(~n <= 0); 635367#L26 call #t~ret0 := fact(~n - 1);< 635484#$Ultimate##0 ~n := #in~n; 635482#L25 assume !(~n <= 0); 635414#L26 call #t~ret0 := fact(~n - 1);< 635481#$Ultimate##0 ~n := #in~n; 635480#L25 assume !(~n <= 0); 635441#L26 call #t~ret0 := fact(~n - 1);< 635479#$Ultimate##0 ~n := #in~n; 635478#L25 assume !(~n <= 0); 635457#L26 call #t~ret0 := fact(~n - 1);< 635469#$Ultimate##0 ~n := #in~n; 635476#L25 assume !(~n <= 0); 635468#L26 call #t~ret0 := fact(~n - 1);< 635470#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635383#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635758#factFINAL assume true; 635756#factEXIT >#68#return; 635643#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635645#$Ultimate##0 ~n := #in~n; 635650#L25 assume ~n <= 0;#res := 1; 635649#factFINAL assume true; 635638#factEXIT >#70#return; 635630#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635652#$Ultimate##0 ~n := #in~n; 635657#L25 assume !(~n <= 0); 635369#L26 call #t~ret0 := fact(~n - 1);< 635388#$Ultimate##0 ~n := #in~n; 639426#L25 assume !(~n <= 0); 635199#L26 call #t~ret0 := fact(~n - 1);< 635418#$Ultimate##0 ~n := #in~n; 635198#L25 assume !(~n <= 0); 635200#L26 call #t~ret0 := fact(~n - 1);< 635207#$Ultimate##0 ~n := #in~n; 635209#L25 assume !(~n <= 0); 635366#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635384#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635755#factFINAL assume true; 635754#factEXIT >#72#return; 635635#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 636240#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 636239#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 636238#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 636237#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635352#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635496#$Ultimate##0 ~n := #in~n; 635493#L25 assume !(~n <= 0); 635372#L26 call #t~ret0 := fact(~n - 1);< 635485#$Ultimate##0 ~n := #in~n; 635483#L25 assume !(~n <= 0); 635412#L26 call #t~ret0 := fact(~n - 1);< 635419#$Ultimate##0 ~n := #in~n; 635743#L25 assume !(~n <= 0); 635438#L26 call #t~ret0 := fact(~n - 1);< 635450#$Ultimate##0 ~n := #in~n; 635740#L25 assume !(~n <= 0); 635456#L26 call #t~ret0 := fact(~n - 1);< 635460#$Ultimate##0 ~n := #in~n; 635476#L25 assume !(~n <= 0); 635468#L26 call #t~ret0 := fact(~n - 1);< 635470#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635351#factFINAL assume true; 635363#factEXIT >#68#return; 635260#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635513#$Ultimate##0 ~n := #in~n; 635266#L25 assume !(~n <= 0); 635267#L26 call #t~ret0 := fact(~n - 1);< 635531#$Ultimate##0 ~n := #in~n; 635537#L25 assume ~n <= 0;#res := 1; 635532#factFINAL assume true; 635528#factEXIT >#66#return; 635525#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635512#factFINAL assume true; 635503#factEXIT >#70#return; 635421#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635527#$Ultimate##0 ~n := #in~n; 639331#L25 assume !(~n <= 0); 635413#L26 call #t~ret0 := fact(~n - 1);< 635423#$Ultimate##0 ~n := #in~n; 636027#L25 assume !(~n <= 0); 635437#L26 call #t~ret0 := fact(~n - 1);< 635444#$Ultimate##0 ~n := #in~n; 635475#L25 assume !(~n <= 0); 635455#L26 call #t~ret0 := fact(~n - 1);< 635469#$Ultimate##0 ~n := #in~n; 635476#L25 assume !(~n <= 0); 635468#L26 call #t~ret0 := fact(~n - 1);< 635470#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635526#factFINAL assume true; 635514#factEXIT >#72#return; 635516#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 635591#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 635590#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 635589#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 635588#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635355#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635496#$Ultimate##0 ~n := #in~n; 635493#L25 assume !(~n <= 0); 635372#L26 call #t~ret0 := fact(~n - 1);< 635485#$Ultimate##0 ~n := #in~n; 635483#L25 assume !(~n <= 0); 635412#L26 call #t~ret0 := fact(~n - 1);< 635419#$Ultimate##0 ~n := #in~n; 635743#L25 assume !(~n <= 0); 635438#L26 call #t~ret0 := fact(~n - 1);< 635450#$Ultimate##0 ~n := #in~n; 635740#L25 assume !(~n <= 0); 635456#L26 call #t~ret0 := fact(~n - 1);< 635460#$Ultimate##0 ~n := #in~n; 635476#L25 assume !(~n <= 0); 635468#L26 call #t~ret0 := fact(~n - 1);< 635470#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635351#factFINAL assume true; 635363#factEXIT >#68#return; 635293#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635309#$Ultimate##0 ~n := #in~n; 635728#L25 assume !(~n <= 0); 635380#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635458#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635573#factFINAL assume true; 635553#factEXIT >#70#return; 635449#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635461#$Ultimate##0 ~n := #in~n; 635453#L25 assume !(~n <= 0); 635439#L26 call #t~ret0 := fact(~n - 1);< 635450#$Ultimate##0 ~n := #in~n; 635740#L25 assume !(~n <= 0); 635456#L26 call #t~ret0 := fact(~n - 1);< 635460#$Ultimate##0 ~n := #in~n; 635476#L25 assume !(~n <= 0); 635468#L26 call #t~ret0 := fact(~n - 1);< 635470#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635569#factFINAL assume true; 635559#factEXIT >#72#return; 635567#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 635648#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 635647#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 635572#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 635571#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635356#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635496#$Ultimate##0 ~n := #in~n; 635493#L25 assume !(~n <= 0); 635372#L26 call #t~ret0 := fact(~n - 1);< 635485#$Ultimate##0 ~n := #in~n; 635483#L25 assume !(~n <= 0); 635412#L26 call #t~ret0 := fact(~n - 1);< 635419#$Ultimate##0 ~n := #in~n; 635743#L25 assume !(~n <= 0); 635438#L26 call #t~ret0 := fact(~n - 1);< 635450#$Ultimate##0 ~n := #in~n; 635740#L25 assume !(~n <= 0); 635456#L26 call #t~ret0 := fact(~n - 1);< 635460#$Ultimate##0 ~n := #in~n; 635476#L25 assume !(~n <= 0); 635468#L26 call #t~ret0 := fact(~n - 1);< 635470#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635351#factFINAL assume true; 635363#factEXIT >#68#return; 635281#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635309#$Ultimate##0 ~n := #in~n; 635728#L25 assume !(~n <= 0); 635380#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635569#factFINAL assume true; 635559#factEXIT >#70#return; 635463#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635472#$Ultimate##0 ~n := #in~n; 635466#L25 assume !(~n <= 0); 635440#L26 call #t~ret0 := fact(~n - 1);< 635444#$Ultimate##0 ~n := #in~n; 635475#L25 assume !(~n <= 0); 635455#L26 call #t~ret0 := fact(~n - 1);< 635469#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635458#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635573#factFINAL assume true; 635553#factEXIT >#72#return; 635555#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 635735#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 635733#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 635731#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 635730#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635359#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635496#$Ultimate##0 ~n := #in~n; 635493#L25 assume !(~n <= 0); 635372#L26 call #t~ret0 := fact(~n - 1);< 635485#$Ultimate##0 ~n := #in~n; 635483#L25 assume !(~n <= 0); 635412#L26 call #t~ret0 := fact(~n - 1);< 635419#$Ultimate##0 ~n := #in~n; 635743#L25 assume !(~n <= 0); 635438#L26 call #t~ret0 := fact(~n - 1);< 635450#$Ultimate##0 ~n := #in~n; 635740#L25 assume !(~n <= 0); 635456#L26 call #t~ret0 := fact(~n - 1);< 635460#$Ultimate##0 ~n := #in~n; 635476#L25 assume !(~n <= 0); 635468#L26 call #t~ret0 := fact(~n - 1);< 635470#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635351#factFINAL assume true; 635363#factEXIT >#68#return; 635269#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635309#$Ultimate##0 ~n := #in~n; 635728#L25 assume !(~n <= 0); 635380#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635526#factFINAL assume true; 635514#factEXIT >#70#return; 635505#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635511#$Ultimate##0 ~n := #in~n; 635782#L25 assume !(~n <= 0); 635442#L26 call #t~ret0 := fact(~n - 1);< 635780#$Ultimate##0 ~n := #in~n; 635537#L25 assume ~n <= 0;#res := 1; 635532#factFINAL assume true; 635528#factEXIT >#66#return; 635525#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635512#factFINAL assume true; 635503#factEXIT >#72#return; 635509#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 635729#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 635408#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 635409#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 635347#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635348#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635496#$Ultimate##0 ~n := #in~n; 635493#L25 assume !(~n <= 0); 635372#L26 call #t~ret0 := fact(~n - 1);< 635485#$Ultimate##0 ~n := #in~n; 635483#L25 assume !(~n <= 0); 635412#L26 call #t~ret0 := fact(~n - 1);< 635419#$Ultimate##0 ~n := #in~n; 635743#L25 assume !(~n <= 0); 635438#L26 call #t~ret0 := fact(~n - 1);< 635450#$Ultimate##0 ~n := #in~n; 635740#L25 assume !(~n <= 0); 635456#L26 call #t~ret0 := fact(~n - 1);< 635460#$Ultimate##0 ~n := #in~n; 635476#L25 assume !(~n <= 0); 635468#L26 call #t~ret0 := fact(~n - 1);< 635470#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635351#factFINAL assume true; 635363#factEXIT >#68#return; 635288#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635309#$Ultimate##0 ~n := #in~n; 635728#L25 assume !(~n <= 0); 635380#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635385#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635310#factFINAL assume true; 635311#factEXIT >#70#return; 635252#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635264#$Ultimate##0 ~n := #in~n; 635781#L25 assume ~n <= 0;#res := 1; 635265#factFINAL assume true; 635220#factEXIT >#72#return; 635179#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 635180#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 638906#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 638900#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 638899#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 637652#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 638889#$Ultimate##0 ~n := #in~n; 638887#L25 assume !(~n <= 0); 637660#L26 call #t~ret0 := fact(~n - 1);< 638885#$Ultimate##0 ~n := #in~n; 638868#L25 assume !(~n <= 0); 637661#L26 call #t~ret0 := fact(~n - 1);< 638864#$Ultimate##0 ~n := #in~n; 638857#L25 assume !(~n <= 0); 637662#L26 call #t~ret0 := fact(~n - 1);< 638856#$Ultimate##0 ~n := #in~n; 638855#L25 assume !(~n <= 0); 637570#L26 call #t~ret0 := fact(~n - 1);< 637540#$Ultimate##0 ~n := #in~n; 637548#L25 assume !(~n <= 0); 637571#L26 call #t~ret0 := fact(~n - 1);< 638387#$Ultimate##0 ~n := #in~n; 637548#L25 assume !(~n <= 0); 637571#L26 call #t~ret0 := fact(~n - 1);< 638387#$Ultimate##0 ~n := #in~n; 638620#L25 assume ~n <= 0;#res := 1; 638619#factFINAL assume true; 638386#factEXIT >#66#return; 637577#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637574#factFINAL assume true; 637569#factEXIT >#66#return; 637572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637700#factFINAL assume true; 637681#factEXIT >#66#return; 637680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637679#factFINAL assume true; 637674#factEXIT >#66#return; 637673#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637671#factFINAL assume true; 637666#factEXIT >#66#return; 637664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637667#factFINAL assume true; 637658#factEXIT >#66#return; 637657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637656#factFINAL assume true; 637650#factEXIT >#74#return; 635210#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635211#$Ultimate##0 ~n := #in~n; 637557#L25 assume !(~n <= 0); 637547#L26 call #t~ret0 := fact(~n - 1);< 637546#$Ultimate##0 ~n := #in~n; 637548#L25 assume !(~n <= 0); 637571#L26 call #t~ret0 := fact(~n - 1);< 638387#$Ultimate##0 ~n := #in~n; 637548#L25 assume !(~n <= 0); 637571#L26 call #t~ret0 := fact(~n - 1);< 638387#$Ultimate##0 ~n := #in~n; 637548#L25 assume !(~n <= 0); 637571#L26 call #t~ret0 := fact(~n - 1);< 638387#$Ultimate##0 ~n := #in~n; 637548#L25 assume !(~n <= 0); 637571#L26 call #t~ret0 := fact(~n - 1);< 638387#$Ultimate##0 ~n := #in~n; 637548#L25 assume !(~n <= 0); 637571#L26 call #t~ret0 := fact(~n - 1);< 638387#$Ultimate##0 ~n := #in~n; 638620#L25 assume ~n <= 0;#res := 1; 638619#factFINAL assume true; 638386#factEXIT >#66#return; 637577#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637574#factFINAL assume true; 637569#factEXIT >#66#return; 637572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637700#factFINAL assume true; 637681#factEXIT >#66#return; 637680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637679#factFINAL assume true; 637674#factEXIT >#66#return; 637673#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637671#factFINAL assume true; 637666#factEXIT >#66#return; 637664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637667#factFINAL assume true; 637658#factEXIT >#66#return; 637657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637656#factFINAL assume true; 637650#factEXIT >#76#return; 637533#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 637587#$Ultimate##0 ~n := #in~n; 637586#L25 assume !(~n <= 0); 637530#L26 call #t~ret0 := fact(~n - 1);< 637535#$Ultimate##0 ~n := #in~n; 637921#L25 assume ~n <= 0;#res := 1; 637537#factFINAL assume true; 637529#factEXIT >#66#return; 637532#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637654#factFINAL assume true; 637649#factEXIT >#78#return; 637523#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 637524#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 637518#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 637519#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 637514#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 637515#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 637508#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 637509#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635667#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635158#$Ultimate##0 ~n := #in~n; 639344#L25 assume !(~n <= 0); 635393#L26 call #t~ret0 := fact(~n - 1);< 635653#$Ultimate##0 ~n := #in~n; 639420#L25 assume !(~n <= 0); 635374#L26 call #t~ret0 := fact(~n - 1);< 639419#$Ultimate##0 ~n := #in~n; 639418#L25 assume !(~n <= 0); 635377#L26 call #t~ret0 := fact(~n - 1);< 639417#$Ultimate##0 ~n := #in~n; 639416#L25 assume !(~n <= 0); 635375#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635391#factFINAL assume true; 635397#factEXIT >#66#return; 635543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635668#factFINAL assume true; 635664#factEXIT >#68#return; 635644#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635645#$Ultimate##0 ~n := #in~n; 635650#L25 assume ~n <= 0;#res := 1; 635649#factFINAL assume true; 635638#factEXIT >#70#return; 635626#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635636#$Ultimate##0 ~n := #in~n; 635656#L25 assume !(~n <= 0); 635392#L26 call #t~ret0 := fact(~n - 1);< 635653#$Ultimate##0 ~n := #in~n; 639420#L25 assume !(~n <= 0); 635374#L26 call #t~ret0 := fact(~n - 1);< 639419#$Ultimate##0 ~n := #in~n; 639418#L25 assume !(~n <= 0); 635377#L26 call #t~ret0 := fact(~n - 1);< 639417#$Ultimate##0 ~n := #in~n; 639416#L25 assume !(~n <= 0); 635375#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635391#factFINAL assume true; 635397#factEXIT >#66#return; 635541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635651#factFINAL assume true; 635624#factEXIT >#72#return; 635622#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 635620#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 635619#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 635618#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 635617#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635328#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635346#$Ultimate##0 ~n := #in~n; 635905#L25 assume !(~n <= 0); 635394#L26 call #t~ret0 := fact(~n - 1);< 635405#$Ultimate##0 ~n := #in~n; 639415#L25 assume !(~n <= 0); 635376#L26 call #t~ret0 := fact(~n - 1);< 635388#$Ultimate##0 ~n := #in~n; 639426#L25 assume !(~n <= 0); 635199#L26 call #t~ret0 := fact(~n - 1);< 635418#$Ultimate##0 ~n := #in~n; 635198#L25 assume !(~n <= 0); 635200#L26 call #t~ret0 := fact(~n - 1);< 635207#$Ultimate##0 ~n := #in~n; 635209#L25 assume !(~n <= 0); 635366#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635391#factFINAL assume true; 635397#factEXIT >#66#return; 635539#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635538#factFINAL assume true; 635313#factEXIT >#68#return; 635244#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635513#$Ultimate##0 ~n := #in~n; 635266#L25 assume !(~n <= 0); 635267#L26 call #t~ret0 := fact(~n - 1);< 635531#$Ultimate##0 ~n := #in~n; 635537#L25 assume ~n <= 0;#res := 1; 635532#factFINAL assume true; 635528#factEXIT >#66#return; 635525#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635512#factFINAL assume true; 635503#factEXIT >#70#return; 635283#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635445#$Ultimate##0 ~n := #in~n; 635434#L25 assume !(~n <= 0); 635370#L26 call #t~ret0 := fact(~n - 1);< 635388#$Ultimate##0 ~n := #in~n; 639426#L25 assume !(~n <= 0); 635199#L26 call #t~ret0 := fact(~n - 1);< 635418#$Ultimate##0 ~n := #in~n; 635198#L25 assume !(~n <= 0); 635200#L26 call #t~ret0 := fact(~n - 1);< 635207#$Ultimate##0 ~n := #in~n; 635209#L25 assume !(~n <= 0); 635366#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635391#factFINAL assume true; 635397#factEXIT >#66#return; 635349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635350#factFINAL assume true; 635268#factEXIT >#72#return; 635300#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 635612#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 635611#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 635610#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 635609#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635334#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635346#$Ultimate##0 ~n := #in~n; 635905#L25 assume !(~n <= 0); 635394#L26 call #t~ret0 := fact(~n - 1);< 635405#$Ultimate##0 ~n := #in~n; 639415#L25 assume !(~n <= 0); 635376#L26 call #t~ret0 := fact(~n - 1);< 635388#$Ultimate##0 ~n := #in~n; 639426#L25 assume !(~n <= 0); 635199#L26 call #t~ret0 := fact(~n - 1);< 635418#$Ultimate##0 ~n := #in~n; 635198#L25 assume !(~n <= 0); 635200#L26 call #t~ret0 := fact(~n - 1);< 635207#$Ultimate##0 ~n := #in~n; 635209#L25 assume !(~n <= 0); 635366#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635391#factFINAL assume true; 635397#factEXIT >#66#return; 635539#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635538#factFINAL assume true; 635313#factEXIT >#68#return; 635233#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635312#$Ultimate##0 ~n := #in~n; 635535#L25 assume !(~n <= 0); 635373#L26 call #t~ret0 := fact(~n - 1);< 635432#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635458#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635573#factFINAL assume true; 635553#factEXIT >#70#return; 635284#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635604#$Ultimate##0 ~n := #in~n; 635727#L25 assume !(~n <= 0); 635208#L26 call #t~ret0 := fact(~n - 1);< 635207#$Ultimate##0 ~n := #in~n; 635209#L25 assume !(~n <= 0); 635366#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635526#factFINAL assume true; 635514#factEXIT >#72#return; 635520#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 635662#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 635660#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 635658#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 635655#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635331#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635346#$Ultimate##0 ~n := #in~n; 635905#L25 assume !(~n <= 0); 635394#L26 call #t~ret0 := fact(~n - 1);< 635405#$Ultimate##0 ~n := #in~n; 639415#L25 assume !(~n <= 0); 635376#L26 call #t~ret0 := fact(~n - 1);< 635388#$Ultimate##0 ~n := #in~n; 639426#L25 assume !(~n <= 0); 635199#L26 call #t~ret0 := fact(~n - 1);< 635418#$Ultimate##0 ~n := #in~n; 635198#L25 assume !(~n <= 0); 635200#L26 call #t~ret0 := fact(~n - 1);< 635207#$Ultimate##0 ~n := #in~n; 635209#L25 assume !(~n <= 0); 635366#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635391#factFINAL assume true; 635397#factEXIT >#66#return; 635539#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635538#factFINAL assume true; 635313#factEXIT >#68#return; 635258#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635312#$Ultimate##0 ~n := #in~n; 635535#L25 assume !(~n <= 0); 635373#L26 call #t~ret0 := fact(~n - 1);< 635432#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635569#factFINAL assume true; 635559#factEXIT >#70#return; 635273#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635309#$Ultimate##0 ~n := #in~n; 635728#L25 assume !(~n <= 0); 635380#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635569#factFINAL assume true; 635559#factEXIT >#72#return; 635561#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 635726#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 635724#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 635722#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 635720#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635332#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635346#$Ultimate##0 ~n := #in~n; 635905#L25 assume !(~n <= 0); 635394#L26 call #t~ret0 := fact(~n - 1);< 635405#$Ultimate##0 ~n := #in~n; 639415#L25 assume !(~n <= 0); 635376#L26 call #t~ret0 := fact(~n - 1);< 635388#$Ultimate##0 ~n := #in~n; 639426#L25 assume !(~n <= 0); 635199#L26 call #t~ret0 := fact(~n - 1);< 635418#$Ultimate##0 ~n := #in~n; 635198#L25 assume !(~n <= 0); 635200#L26 call #t~ret0 := fact(~n - 1);< 635207#$Ultimate##0 ~n := #in~n; 635209#L25 assume !(~n <= 0); 635366#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635391#factFINAL assume true; 635397#factEXIT >#66#return; 635539#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635538#factFINAL assume true; 635313#factEXIT >#68#return; 635251#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635312#$Ultimate##0 ~n := #in~n; 635535#L25 assume !(~n <= 0); 635373#L26 call #t~ret0 := fact(~n - 1);< 635432#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635526#factFINAL assume true; 635514#factEXIT >#70#return; 635272#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635309#$Ultimate##0 ~n := #in~n; 635728#L25 assume !(~n <= 0); 635380#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635458#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635573#factFINAL assume true; 635553#factEXIT >#72#return; 635558#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 635737#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 635736#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 635734#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 635732#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635345#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635346#$Ultimate##0 ~n := #in~n; 635905#L25 assume !(~n <= 0); 635394#L26 call #t~ret0 := fact(~n - 1);< 635405#$Ultimate##0 ~n := #in~n; 639415#L25 assume !(~n <= 0); 635376#L26 call #t~ret0 := fact(~n - 1);< 635388#$Ultimate##0 ~n := #in~n; 639426#L25 assume !(~n <= 0); 635199#L26 call #t~ret0 := fact(~n - 1);< 635418#$Ultimate##0 ~n := #in~n; 635198#L25 assume !(~n <= 0); 635200#L26 call #t~ret0 := fact(~n - 1);< 635207#$Ultimate##0 ~n := #in~n; 635209#L25 assume !(~n <= 0); 635366#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635391#factFINAL assume true; 635397#factEXIT >#66#return; 635539#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635538#factFINAL assume true; 635313#factEXIT >#68#return; 635232#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635312#$Ultimate##0 ~n := #in~n; 635535#L25 assume !(~n <= 0); 635373#L26 call #t~ret0 := fact(~n - 1);< 635432#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635385#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635310#factFINAL assume true; 635311#factEXIT >#70#return; 635280#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635510#$Ultimate##0 ~n := #in~n; 635536#L25 assume !(~n <= 0); 635373#L26 call #t~ret0 := fact(~n - 1);< 635432#$Ultimate##0 ~n := #in~n; 635537#L25 assume ~n <= 0;#res := 1; 635532#factFINAL assume true; 635528#factEXIT >#66#return; 635525#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635512#factFINAL assume true; 635503#factEXIT >#72#return; 635501#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 635499#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 635498#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 635403#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 635404#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635320#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635346#$Ultimate##0 ~n := #in~n; 635905#L25 assume !(~n <= 0); 635394#L26 call #t~ret0 := fact(~n - 1);< 635405#$Ultimate##0 ~n := #in~n; 639415#L25 assume !(~n <= 0); 635376#L26 call #t~ret0 := fact(~n - 1);< 635388#$Ultimate##0 ~n := #in~n; 639426#L25 assume !(~n <= 0); 635199#L26 call #t~ret0 := fact(~n - 1);< 635418#$Ultimate##0 ~n := #in~n; 635198#L25 assume !(~n <= 0); 635200#L26 call #t~ret0 := fact(~n - 1);< 635207#$Ultimate##0 ~n := #in~n; 635209#L25 assume !(~n <= 0); 635366#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635391#factFINAL assume true; 635397#factEXIT >#66#return; 635539#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635538#factFINAL assume true; 635313#factEXIT >#68#return; 635248#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635312#$Ultimate##0 ~n := #in~n; 635535#L25 assume !(~n <= 0); 635373#L26 call #t~ret0 := fact(~n - 1);< 635432#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635391#factFINAL assume true; 635397#factEXIT >#66#return; 635349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635350#factFINAL assume true; 635268#factEXIT >#70#return; 635250#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635312#$Ultimate##0 ~n := #in~n; 635535#L25 assume ~n <= 0;#res := 1; 635265#factFINAL assume true; 635220#factEXIT >#72#return; 635261#L30-3 [2023-02-18 08:57:51,098 INFO L750 eck$LassoCheckResult]: Loop: 635261#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 635193#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 635194#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 638943#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 635186#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635133#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635134#$Ultimate##0 ~n := #in~n; 635197#L25 assume !(~n <= 0); 635166#L26 call #t~ret0 := fact(~n - 1);< 635169#$Ultimate##0 ~n := #in~n; 635206#L25 assume !(~n <= 0); 637663#L26 call #t~ret0 := fact(~n - 1);< 637668#$Ultimate##0 ~n := #in~n; 638925#L25 assume !(~n <= 0); 637659#L26 call #t~ret0 := fact(~n - 1);< 637676#$Ultimate##0 ~n := #in~n; 637699#L25 assume !(~n <= 0); 637539#L26 call #t~ret0 := fact(~n - 1);< 637549#$Ultimate##0 ~n := #in~n; 637541#L25 assume !(~n <= 0); 637538#L26 call #t~ret0 := fact(~n - 1);< 637540#$Ultimate##0 ~n := #in~n; 637548#L25 assume !(~n <= 0); 637571#L26 call #t~ret0 := fact(~n - 1);< 638387#$Ultimate##0 ~n := #in~n; 638620#L25 assume ~n <= 0;#res := 1; 638619#factFINAL assume true; 638386#factEXIT >#66#return; 637577#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637574#factFINAL assume true; 637569#factEXIT >#66#return; 637572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637700#factFINAL assume true; 637681#factEXIT >#66#return; 637680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637679#factFINAL assume true; 637674#factEXIT >#66#return; 637673#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637671#factFINAL assume true; 637666#factEXIT >#66#return; 637664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637667#factFINAL assume true; 637658#factEXIT >#66#return; 637657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637656#factFINAL assume true; 637650#factEXIT >#74#return; 637555#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635211#$Ultimate##0 ~n := #in~n; 637557#L25 assume !(~n <= 0); 637547#L26 call #t~ret0 := fact(~n - 1);< 637546#$Ultimate##0 ~n := #in~n; 637548#L25 assume !(~n <= 0); 637571#L26 call #t~ret0 := fact(~n - 1);< 638387#$Ultimate##0 ~n := #in~n; 637548#L25 assume !(~n <= 0); 637571#L26 call #t~ret0 := fact(~n - 1);< 638387#$Ultimate##0 ~n := #in~n; 637548#L25 assume !(~n <= 0); 637571#L26 call #t~ret0 := fact(~n - 1);< 638387#$Ultimate##0 ~n := #in~n; 637548#L25 assume !(~n <= 0); 637571#L26 call #t~ret0 := fact(~n - 1);< 638387#$Ultimate##0 ~n := #in~n; 638620#L25 assume ~n <= 0;#res := 1; 638619#factFINAL assume true; 638386#factEXIT >#66#return; 637577#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637574#factFINAL assume true; 637569#factEXIT >#66#return; 637572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637700#factFINAL assume true; 637681#factEXIT >#66#return; 637680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637679#factFINAL assume true; 637674#factEXIT >#66#return; 637673#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637671#factFINAL assume true; 637666#factEXIT >#66#return; 637665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637648#factFINAL assume true; 637647#factEXIT >#76#return; 637534#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 637587#$Ultimate##0 ~n := #in~n; 637586#L25 assume !(~n <= 0); 637530#L26 call #t~ret0 := fact(~n - 1);< 637535#$Ultimate##0 ~n := #in~n; 637921#L25 assume ~n <= 0;#res := 1; 637537#factFINAL assume true; 637529#factEXIT >#66#return; 637532#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 637654#factFINAL assume true; 637649#factEXIT >#78#return; 637526#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 637520#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 637521#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 637516#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 637517#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 637510#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 637511#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 637507#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635665#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 639348#$Ultimate##0 ~n := #in~n; 639349#L25 assume !(~n <= 0); 635396#L26 call #t~ret0 := fact(~n - 1);< 635405#$Ultimate##0 ~n := #in~n; 639415#L25 assume !(~n <= 0); 635376#L26 call #t~ret0 := fact(~n - 1);< 635388#$Ultimate##0 ~n := #in~n; 639426#L25 assume !(~n <= 0); 635199#L26 call #t~ret0 := fact(~n - 1);< 635418#$Ultimate##0 ~n := #in~n; 635198#L25 assume !(~n <= 0); 635200#L26 call #t~ret0 := fact(~n - 1);< 635207#$Ultimate##0 ~n := #in~n; 635209#L25 assume !(~n <= 0); 635366#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635391#factFINAL assume true; 635397#factEXIT >#66#return; 635543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635668#factFINAL assume true; 635664#factEXIT >#68#return; 635644#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635645#$Ultimate##0 ~n := #in~n; 635650#L25 assume ~n <= 0;#res := 1; 635649#factFINAL assume true; 635638#factEXIT >#70#return; 635626#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635636#$Ultimate##0 ~n := #in~n; 635656#L25 assume !(~n <= 0); 635392#L26 call #t~ret0 := fact(~n - 1);< 635653#$Ultimate##0 ~n := #in~n; 639420#L25 assume !(~n <= 0); 635374#L26 call #t~ret0 := fact(~n - 1);< 639419#$Ultimate##0 ~n := #in~n; 639418#L25 assume !(~n <= 0); 635377#L26 call #t~ret0 := fact(~n - 1);< 639417#$Ultimate##0 ~n := #in~n; 639416#L25 assume !(~n <= 0); 635375#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635391#factFINAL assume true; 635397#factEXIT >#66#return; 635541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635651#factFINAL assume true; 635624#factEXIT >#72#return; 635622#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 635620#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 635619#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 635618#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 635617#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635328#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635346#$Ultimate##0 ~n := #in~n; 635905#L25 assume !(~n <= 0); 635394#L26 call #t~ret0 := fact(~n - 1);< 635405#$Ultimate##0 ~n := #in~n; 639415#L25 assume !(~n <= 0); 635376#L26 call #t~ret0 := fact(~n - 1);< 635388#$Ultimate##0 ~n := #in~n; 639426#L25 assume !(~n <= 0); 635199#L26 call #t~ret0 := fact(~n - 1);< 635418#$Ultimate##0 ~n := #in~n; 635198#L25 assume !(~n <= 0); 635200#L26 call #t~ret0 := fact(~n - 1);< 635207#$Ultimate##0 ~n := #in~n; 635209#L25 assume !(~n <= 0); 635366#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635391#factFINAL assume true; 635397#factEXIT >#66#return; 635539#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635538#factFINAL assume true; 635313#factEXIT >#68#return; 635244#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635513#$Ultimate##0 ~n := #in~n; 635266#L25 assume !(~n <= 0); 635267#L26 call #t~ret0 := fact(~n - 1);< 635531#$Ultimate##0 ~n := #in~n; 635537#L25 assume ~n <= 0;#res := 1; 635532#factFINAL assume true; 635528#factEXIT >#66#return; 635525#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635512#factFINAL assume true; 635503#factEXIT >#70#return; 635283#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635445#$Ultimate##0 ~n := #in~n; 635434#L25 assume !(~n <= 0); 635370#L26 call #t~ret0 := fact(~n - 1);< 635388#$Ultimate##0 ~n := #in~n; 639426#L25 assume !(~n <= 0); 635199#L26 call #t~ret0 := fact(~n - 1);< 635418#$Ultimate##0 ~n := #in~n; 635198#L25 assume !(~n <= 0); 635200#L26 call #t~ret0 := fact(~n - 1);< 635207#$Ultimate##0 ~n := #in~n; 635209#L25 assume !(~n <= 0); 635366#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635385#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635310#factFINAL assume true; 635311#factEXIT >#72#return; 635300#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 635612#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 635611#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 635610#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 635609#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635334#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635346#$Ultimate##0 ~n := #in~n; 635905#L25 assume !(~n <= 0); 635394#L26 call #t~ret0 := fact(~n - 1);< 635405#$Ultimate##0 ~n := #in~n; 639415#L25 assume !(~n <= 0); 635376#L26 call #t~ret0 := fact(~n - 1);< 635388#$Ultimate##0 ~n := #in~n; 639426#L25 assume !(~n <= 0); 635199#L26 call #t~ret0 := fact(~n - 1);< 635418#$Ultimate##0 ~n := #in~n; 635198#L25 assume !(~n <= 0); 635200#L26 call #t~ret0 := fact(~n - 1);< 635207#$Ultimate##0 ~n := #in~n; 635209#L25 assume !(~n <= 0); 635366#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635391#factFINAL assume true; 635397#factEXIT >#66#return; 635539#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635538#factFINAL assume true; 635313#factEXIT >#68#return; 635233#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635312#$Ultimate##0 ~n := #in~n; 635535#L25 assume !(~n <= 0); 635373#L26 call #t~ret0 := fact(~n - 1);< 635432#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635458#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635573#factFINAL assume true; 635553#factEXIT >#70#return; 635284#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635604#$Ultimate##0 ~n := #in~n; 635727#L25 assume !(~n <= 0); 635208#L26 call #t~ret0 := fact(~n - 1);< 635207#$Ultimate##0 ~n := #in~n; 635209#L25 assume !(~n <= 0); 635366#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635526#factFINAL assume true; 635514#factEXIT >#72#return; 635520#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 635662#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 635660#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 635658#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 635655#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635331#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635346#$Ultimate##0 ~n := #in~n; 635905#L25 assume !(~n <= 0); 635394#L26 call #t~ret0 := fact(~n - 1);< 635405#$Ultimate##0 ~n := #in~n; 639415#L25 assume !(~n <= 0); 635376#L26 call #t~ret0 := fact(~n - 1);< 635388#$Ultimate##0 ~n := #in~n; 639426#L25 assume !(~n <= 0); 635199#L26 call #t~ret0 := fact(~n - 1);< 635418#$Ultimate##0 ~n := #in~n; 635198#L25 assume !(~n <= 0); 635200#L26 call #t~ret0 := fact(~n - 1);< 635207#$Ultimate##0 ~n := #in~n; 635209#L25 assume !(~n <= 0); 635366#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635391#factFINAL assume true; 635397#factEXIT >#66#return; 635539#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635538#factFINAL assume true; 635313#factEXIT >#68#return; 635258#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635312#$Ultimate##0 ~n := #in~n; 635535#L25 assume !(~n <= 0); 635373#L26 call #t~ret0 := fact(~n - 1);< 635432#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635569#factFINAL assume true; 635559#factEXIT >#70#return; 635273#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635309#$Ultimate##0 ~n := #in~n; 635728#L25 assume !(~n <= 0); 635380#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635569#factFINAL assume true; 635559#factEXIT >#72#return; 635561#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 635726#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 635724#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 635722#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 635720#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635332#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635346#$Ultimate##0 ~n := #in~n; 635905#L25 assume !(~n <= 0); 635394#L26 call #t~ret0 := fact(~n - 1);< 635405#$Ultimate##0 ~n := #in~n; 639415#L25 assume !(~n <= 0); 635376#L26 call #t~ret0 := fact(~n - 1);< 635388#$Ultimate##0 ~n := #in~n; 639426#L25 assume !(~n <= 0); 635199#L26 call #t~ret0 := fact(~n - 1);< 635418#$Ultimate##0 ~n := #in~n; 635198#L25 assume !(~n <= 0); 635200#L26 call #t~ret0 := fact(~n - 1);< 635207#$Ultimate##0 ~n := #in~n; 635209#L25 assume !(~n <= 0); 635366#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635391#factFINAL assume true; 635397#factEXIT >#66#return; 635539#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635538#factFINAL assume true; 635313#factEXIT >#68#return; 635251#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635312#$Ultimate##0 ~n := #in~n; 635535#L25 assume !(~n <= 0); 635373#L26 call #t~ret0 := fact(~n - 1);< 635432#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635526#factFINAL assume true; 635514#factEXIT >#70#return; 635272#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635309#$Ultimate##0 ~n := #in~n; 635728#L25 assume !(~n <= 0); 635380#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635458#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635573#factFINAL assume true; 635553#factEXIT >#72#return; 635558#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 635737#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 635736#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 635734#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 635732#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635345#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635346#$Ultimate##0 ~n := #in~n; 635905#L25 assume !(~n <= 0); 635394#L26 call #t~ret0 := fact(~n - 1);< 635405#$Ultimate##0 ~n := #in~n; 639415#L25 assume !(~n <= 0); 635376#L26 call #t~ret0 := fact(~n - 1);< 635388#$Ultimate##0 ~n := #in~n; 639426#L25 assume !(~n <= 0); 635199#L26 call #t~ret0 := fact(~n - 1);< 635418#$Ultimate##0 ~n := #in~n; 635198#L25 assume !(~n <= 0); 635200#L26 call #t~ret0 := fact(~n - 1);< 635207#$Ultimate##0 ~n := #in~n; 635209#L25 assume !(~n <= 0); 635366#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635391#factFINAL assume true; 635397#factEXIT >#66#return; 635539#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635538#factFINAL assume true; 635313#factEXIT >#68#return; 635232#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635312#$Ultimate##0 ~n := #in~n; 635535#L25 assume !(~n <= 0); 635373#L26 call #t~ret0 := fact(~n - 1);< 635432#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635385#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635310#factFINAL assume true; 635311#factEXIT >#70#return; 635280#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635510#$Ultimate##0 ~n := #in~n; 635536#L25 assume !(~n <= 0); 635373#L26 call #t~ret0 := fact(~n - 1);< 635432#$Ultimate##0 ~n := #in~n; 635537#L25 assume ~n <= 0;#res := 1; 635532#factFINAL assume true; 635528#factEXIT >#66#return; 635525#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635512#factFINAL assume true; 635503#factEXIT >#72#return; 635501#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 635499#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 635498#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 635403#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 635404#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 635320#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 635346#$Ultimate##0 ~n := #in~n; 635905#L25 assume !(~n <= 0); 635394#L26 call #t~ret0 := fact(~n - 1);< 635405#$Ultimate##0 ~n := #in~n; 639415#L25 assume !(~n <= 0); 635376#L26 call #t~ret0 := fact(~n - 1);< 635388#$Ultimate##0 ~n := #in~n; 639426#L25 assume !(~n <= 0); 635199#L26 call #t~ret0 := fact(~n - 1);< 635418#$Ultimate##0 ~n := #in~n; 635198#L25 assume !(~n <= 0); 635200#L26 call #t~ret0 := fact(~n - 1);< 635207#$Ultimate##0 ~n := #in~n; 635209#L25 assume !(~n <= 0); 635366#L26 call #t~ret0 := fact(~n - 1);< 635451#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635391#factFINAL assume true; 635397#factEXIT >#66#return; 635539#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635538#factFINAL assume true; 635313#factEXIT >#68#return; 635248#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 635312#$Ultimate##0 ~n := #in~n; 635535#L25 assume !(~n <= 0); 635373#L26 call #t~ret0 := fact(~n - 1);< 635432#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635477#L25 assume !(~n <= 0); 635368#L26 call #t~ret0 := fact(~n - 1);< 635471#$Ultimate##0 ~n := #in~n; 635474#L25 assume ~n <= 0;#res := 1; 635473#factFINAL assume true; 635467#factEXIT >#66#return; 635465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635462#factFINAL assume true; 635454#factEXIT >#66#return; 635452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635447#factFINAL assume true; 635436#factEXIT >#66#return; 635433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635420#factFINAL assume true; 635410#factEXIT >#66#return; 635415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635549#factFINAL assume true; 635365#factEXIT >#66#return; 635385#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 635310#factFINAL assume true; 635311#factEXIT >#70#return; 635250#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 635312#$Ultimate##0 ~n := #in~n; 635535#L25 assume ~n <= 0;#res := 1; 635265#factFINAL assume true; 635220#factEXIT >#72#return; 635261#L30-3 [2023-02-18 08:57:51,098 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:51,099 INFO L85 PathProgramCache]: Analyzing trace with hash -817879231, now seen corresponding path program 68 times [2023-02-18 08:57:51,099 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:51,099 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1001078383] [2023-02-18 08:57:51,099 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:51,099 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:51,126 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:51,126 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [785369341] [2023-02-18 08:57:51,126 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:57:51,127 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:51,127 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:51,130 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-18 08:57:51,131 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-18 08:57:51,938 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:57:51,938 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:51,952 INFO L263 TraceCheckSpWp]: Trace formula consists of 3784 conjuncts, 15 conjunts are in the unsatisfiable core [2023-02-18 08:57:51,963 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:52,022 INFO L134 CoverageAnalysis]: Checked inductivity of 198842 backedges. 84050 proven. 338 refuted. 0 times theorem prover too weak. 114454 trivial. 0 not checked. [2023-02-18 08:57:52,022 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:52,136 INFO L134 CoverageAnalysis]: Checked inductivity of 198842 backedges. 2320 proven. 3899 refuted. 0 times theorem prover too weak. 192623 trivial. 0 not checked. [2023-02-18 08:57:52,136 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:52,136 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1001078383] [2023-02-18 08:57:52,136 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:52,136 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [785369341] [2023-02-18 08:57:52,136 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [785369341] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:52,136 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:52,136 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 16 [2023-02-18 08:57:52,136 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [662837727] [2023-02-18 08:57:52,137 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:52,137 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:57:52,137 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:52,137 INFO L85 PathProgramCache]: Analyzing trace with hash -472549804, now seen corresponding path program 68 times [2023-02-18 08:57:52,137 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:52,137 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1218751438] [2023-02-18 08:57:52,137 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:52,137 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:52,153 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:52,153 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1531909966] [2023-02-18 08:57:52,153 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:57:52,153 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:52,153 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:52,156 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-18 08:57:52,156 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-18 08:57:52,813 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:57:52,813 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:52,818 INFO L263 TraceCheckSpWp]: Trace formula consists of 1556 conjuncts, 22 conjunts are in the unsatisfiable core [2023-02-18 08:57:52,822 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:52,895 INFO L134 CoverageAnalysis]: Checked inductivity of 37211 backedges. 3571 proven. 52 refuted. 0 times theorem prover too weak. 33588 trivial. 0 not checked. [2023-02-18 08:57:52,895 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:53,062 INFO L134 CoverageAnalysis]: Checked inductivity of 37211 backedges. 3099 proven. 95 refuted. 0 times theorem prover too weak. 34017 trivial. 0 not checked. [2023-02-18 08:57:53,062 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:53,062 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1218751438] [2023-02-18 08:57:53,062 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:53,062 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1531909966] [2023-02-18 08:57:53,062 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1531909966] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:53,062 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:53,063 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 22] total 23 [2023-02-18 08:57:53,063 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [74497380] [2023-02-18 08:57:53,063 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:53,063 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:57:53,063 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:57:53,063 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 23 interpolants. [2023-02-18 08:57:53,063 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=106, Invalid=400, Unknown=0, NotChecked=0, Total=506 [2023-02-18 08:57:53,064 INFO L87 Difference]: Start difference. First operand 4295 states and 6379 transitions. cyclomatic complexity: 2123 Second operand has 23 states, 22 states have (on average 3.4545454545454546) internal successors, (76), 23 states have internal predecessors, (76), 15 states have call successors, (32), 2 states have call predecessors, (32), 8 states have return successors, (36), 14 states have call predecessors, (36), 15 states have call successors, (36) [2023-02-18 08:57:53,747 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:57:53,747 INFO L93 Difference]: Finished difference Result 4811 states and 7406 transitions. [2023-02-18 08:57:53,747 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4811 states and 7406 transitions. [2023-02-18 08:57:53,768 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 363 [2023-02-18 08:57:53,794 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4811 states to 4811 states and 7406 transitions. [2023-02-18 08:57:53,794 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 238 [2023-02-18 08:57:53,795 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 238 [2023-02-18 08:57:53,795 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4811 states and 7406 transitions. [2023-02-18 08:57:53,795 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:57:53,795 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4811 states and 7406 transitions. [2023-02-18 08:57:53,796 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4811 states and 7406 transitions. [2023-02-18 08:57:53,839 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4811 to 4295. [2023-02-18 08:57:53,842 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4295 states, 2659 states have (on average 1.0511470477623166) internal successors, (2795), 2653 states have internal predecessors, (2795), 1305 states have call successors, (1327), 433 states have call predecessors, (1327), 331 states have return successors, (2247), 1208 states have call predecessors, (2247), 1305 states have call successors, (2247) [2023-02-18 08:57:53,853 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4295 states to 4295 states and 6369 transitions. [2023-02-18 08:57:53,854 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4295 states and 6369 transitions. [2023-02-18 08:57:53,854 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2023-02-18 08:57:53,854 INFO L428 stractBuchiCegarLoop]: Abstraction has 4295 states and 6369 transitions. [2023-02-18 08:57:53,854 INFO L335 stractBuchiCegarLoop]: ======== Iteration 81 ============ [2023-02-18 08:57:53,854 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4295 states and 6369 transitions. [2023-02-18 08:57:53,862 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 305 [2023-02-18 08:57:53,862 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:57:53,862 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:57:53,867 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [280, 280, 202, 202, 202, 202, 78, 26, 25, 19, 19, 19, 19, 19, 19, 19, 18, 18, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 4, 4, 1, 1, 1, 1] [2023-02-18 08:57:53,867 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [121, 121, 97, 97, 97, 97, 24, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:57:53,868 INFO L748 eck$LassoCheckResult]: Stem: 659246#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 659196#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; 659197#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 659219#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; 659207#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 659208#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 662720#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659194#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659195#$Ultimate##0 ~n := #in~n; 662798#L25 assume ~n <= 0;#res := 1; 662794#factFINAL assume true; 662699#factEXIT >#68#return; 659239#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659240#$Ultimate##0 ~n := #in~n; 662659#L25 assume ~n <= 0;#res := 1; 662657#factFINAL assume true; 662654#factEXIT >#70#return; 659160#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659161#$Ultimate##0 ~n := #in~n; 663188#L25 assume ~n <= 0;#res := 1; 663187#factFINAL assume true; 663186#factEXIT >#72#return; 663184#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 663183#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 663182#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 663181#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 663180#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 663159#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 663160#$Ultimate##0 ~n := #in~n; 663178#L25 assume !(~n <= 0); 663175#L26 call #t~ret0 := fact(~n - 1);< 663176#$Ultimate##0 ~n := #in~n; 663179#L25 assume ~n <= 0;#res := 1; 663177#factFINAL assume true; 663174#factEXIT >#66#return; 663173#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 663170#factFINAL assume true; 663158#factEXIT >#74#return; 663155#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 663156#$Ultimate##0 ~n := #in~n; 663172#L25 assume ~n <= 0;#res := 1; 663169#factFINAL assume true; 663154#factEXIT >#76#return; 663151#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 663152#$Ultimate##0 ~n := #in~n; 663185#L25 assume !(~n <= 0); 663166#L26 call #t~ret0 := fact(~n - 1);< 663167#$Ultimate##0 ~n := #in~n; 663171#L25 assume ~n <= 0;#res := 1; 663168#factFINAL assume true; 663165#factEXIT >#66#return; 663164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 663163#factFINAL assume true; 663150#factEXIT >#78#return; 663149#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 663146#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 663143#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 663140#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 663139#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 663128#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 663129#$Ultimate##0 ~n := #in~n; 663162#L25 assume !(~n <= 0); 663132#L26 call #t~ret0 := fact(~n - 1);< 663137#$Ultimate##0 ~n := #in~n; 663161#L25 assume !(~n <= 0); 663134#L26 call #t~ret0 := fact(~n - 1);< 663148#$Ultimate##0 ~n := #in~n; 663157#L25 assume ~n <= 0;#res := 1; 663153#factFINAL assume true; 663147#factEXIT >#66#return; 663144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 663142#factFINAL assume true; 663131#factEXIT >#66#return; 663135#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 663191#factFINAL assume true; 663127#factEXIT >#74#return; 663122#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 663123#$Ultimate##0 ~n := #in~n; 663138#L25 assume ~n <= 0;#res := 1; 663126#factFINAL assume true; 663121#factEXIT >#76#return; 663115#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 663116#$Ultimate##0 ~n := #in~n; 663145#L25 assume !(~n <= 0); 663133#L26 call #t~ret0 := fact(~n - 1);< 663137#$Ultimate##0 ~n := #in~n; 663161#L25 assume !(~n <= 0); 663134#L26 call #t~ret0 := fact(~n - 1);< 663148#$Ultimate##0 ~n := #in~n; 663157#L25 assume ~n <= 0;#res := 1; 663153#factFINAL assume true; 663147#factEXIT >#66#return; 663144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 663142#factFINAL assume true; 663131#factEXIT >#66#return; 663125#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 663120#factFINAL assume true; 663114#factEXIT >#78#return; 663111#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 663109#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 663106#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 663101#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 663098#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 663094#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 663095#$Ultimate##0 ~n := #in~n; 663108#L25 assume !(~n <= 0); 663103#L26 call #t~ret0 := fact(~n - 1);< 663105#$Ultimate##0 ~n := #in~n; 663119#L25 assume !(~n <= 0); 663104#L26 call #t~ret0 := fact(~n - 1);< 663113#$Ultimate##0 ~n := #in~n; 663119#L25 assume !(~n <= 0); 663104#L26 call #t~ret0 := fact(~n - 1);< 663113#$Ultimate##0 ~n := #in~n; 663141#L25 assume ~n <= 0;#res := 1; 663130#factFINAL assume true; 663124#factEXIT >#66#return; 663118#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 663117#factFINAL assume true; 663112#factEXIT >#66#return; 663110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 663107#factFINAL assume true; 663102#factEXIT >#66#return; 663100#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 663097#factFINAL assume true; 663093#factEXIT >#74#return; 663090#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 663091#$Ultimate##0 ~n := #in~n; 663096#L25 assume ~n <= 0;#res := 1; 663092#factFINAL assume true; 663089#factEXIT >#76#return; 659227#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 663088#$Ultimate##0 ~n := #in~n; 663203#L25 assume !(~n <= 0); 663072#L26 call #t~ret0 := fact(~n - 1);< 663077#$Ultimate##0 ~n := #in~n; 663085#L25 assume !(~n <= 0); 663073#L26 call #t~ret0 := fact(~n - 1);< 663209#$Ultimate##0 ~n := #in~n; 663085#L25 assume !(~n <= 0); 663073#L26 call #t~ret0 := fact(~n - 1);< 663209#$Ultimate##0 ~n := #in~n; 663211#L25 assume ~n <= 0;#res := 1; 663210#factFINAL assume true; 663208#factEXIT >#66#return; 663207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 663206#factFINAL assume true; 663205#factEXIT >#66#return; 663204#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 663202#factFINAL assume true; 663199#factEXIT >#66#return; 659226#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659228#factFINAL assume true; 663246#factEXIT >#78#return; 662862#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 662859#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 662559#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 662557#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 662556#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 660387#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 660385#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 660383#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 660317#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 660320#$Ultimate##0 ~n := #in~n; 660374#L25 assume !(~n <= 0); 660352#L26 call #t~ret0 := fact(~n - 1);< 660373#$Ultimate##0 ~n := #in~n; 660929#L25 assume ~n <= 0;#res := 1; 661321#factFINAL assume true; 661310#factEXIT >#66#return; 661308#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661307#factFINAL assume true; 661305#factEXIT >#68#return; 661013#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 660265#$Ultimate##0 ~n := #in~n; 661018#L25 assume ~n <= 0;#res := 1; 661016#factFINAL assume true; 661012#factEXIT >#70#return; 661004#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 661009#$Ultimate##0 ~n := #in~n; 661007#L25 assume !(~n <= 0); 660337#L26 call #t~ret0 := fact(~n - 1);< 661005#$Ultimate##0 ~n := #in~n; 660929#L25 assume ~n <= 0;#res := 1; 661321#factFINAL assume true; 661310#factEXIT >#66#return; 661316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661677#factFINAL assume true; 661675#factEXIT >#72#return; 661674#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 661671#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 661666#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 661661#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 661637#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 661328#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 661412#$Ultimate##0 ~n := #in~n; 661408#L25 assume !(~n <= 0); 660335#L26 call #t~ret0 := fact(~n - 1);< 661005#$Ultimate##0 ~n := #in~n; 660929#L25 assume ~n <= 0;#res := 1; 661321#factFINAL assume true; 661310#factEXIT >#66#return; 661315#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661605#factFINAL assume true; 661599#factEXIT >#68#return; 661337#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 661518#$Ultimate##0 ~n := #in~n; 661519#L25 assume !(~n <= 0); 660361#L26 call #t~ret0 := fact(~n - 1);< 660373#$Ultimate##0 ~n := #in~n; 660929#L25 assume ~n <= 0;#res := 1; 661321#factFINAL assume true; 661310#factEXIT >#66#return; 661319#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661594#factFINAL assume true; 661578#factEXIT >#70#return; 661543#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 661555#$Ultimate##0 ~n := #in~n; 661577#L25 assume ~n <= 0;#res := 1; 661576#factFINAL assume true; 661541#factEXIT >#72#return; 661537#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 661532#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 661530#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 661529#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 661528#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 661446#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 661521#$Ultimate##0 ~n := #in~n; 661520#L25 assume !(~n <= 0); 660339#L26 call #t~ret0 := fact(~n - 1);< 661447#$Ultimate##0 ~n := #in~n; 661470#L25 assume !(~n <= 0); 660336#L26 call #t~ret0 := fact(~n - 1);< 660382#$Ultimate##0 ~n := #in~n; 660386#L25 assume ~n <= 0;#res := 1; 660384#factFINAL assume true; 660379#factEXIT >#66#return; 660378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 660375#factFINAL assume true; 660333#factEXIT >#66#return; 660370#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 662087#factFINAL assume true; 661927#factEXIT >#74#return; 661355#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 661358#$Ultimate##0 ~n := #in~n; 661357#L25 assume !(~n <= 0); 660349#L26 call #t~ret0 := fact(~n - 1);< 660373#$Ultimate##0 ~n := #in~n; 660929#L25 assume ~n <= 0;#res := 1; 661321#factFINAL assume true; 661310#factEXIT >#66#return; 661318#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 662101#factFINAL assume true; 661911#factEXIT >#76#return; 661331#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 661641#$Ultimate##0 ~n := #in~n; 661995#L25 assume !(~n <= 0); 661313#L26 call #t~ret0 := fact(~n - 1);< 661333#$Ultimate##0 ~n := #in~n; 660929#L25 assume ~n <= 0;#res := 1; 661321#factFINAL assume true; 661310#factEXIT >#66#return; 661318#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 662101#factFINAL assume true; 661911#factEXIT >#78#return; 661913#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 661922#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 661920#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 661918#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 661917#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 661075#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 661886#$Ultimate##0 ~n := #in~n; 662060#L25 assume !(~n <= 0); 661766#L26 call #t~ret0 := fact(~n - 1);< 662054#$Ultimate##0 ~n := #in~n; 661910#L25 assume !(~n <= 0); 661761#L26 call #t~ret0 := fact(~n - 1);< 661877#$Ultimate##0 ~n := #in~n; 661910#L25 assume !(~n <= 0); 661761#L26 call #t~ret0 := fact(~n - 1);< 661877#$Ultimate##0 ~n := #in~n; 661883#L25 assume ~n <= 0;#res := 1; 661879#factFINAL assume true; 661875#factEXIT >#66#return; 661872#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661869#factFINAL assume true; 661863#factEXIT >#66#return; 661866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661773#factFINAL assume true; 661751#factEXIT >#66#return; 661769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661982#factFINAL assume true; 661931#factEXIT >#74#return; 661852#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 661881#$Ultimate##0 ~n := #in~n; 662047#L25 assume !(~n <= 0); 661762#L26 call #t~ret0 := fact(~n - 1);< 662045#$Ultimate##0 ~n := #in~n; 661884#L25 assume ~n <= 0;#res := 1; 662051#factFINAL assume true; 662040#factEXIT >#66#return; 662036#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661928#factFINAL assume true; 661893#factEXIT >#76#return; 661844#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 661859#$Ultimate##0 ~n := #in~n; 661924#L25 assume !(~n <= 0); 661763#L26 call #t~ret0 := fact(~n - 1);< 661923#$Ultimate##0 ~n := #in~n; 661921#L25 assume !(~n <= 0); 661756#L26 call #t~ret0 := fact(~n - 1);< 661888#$Ultimate##0 ~n := #in~n; 661883#L25 assume ~n <= 0;#res := 1; 661879#factFINAL assume true; 661875#factEXIT >#66#return; 661872#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661869#factFINAL assume true; 661863#factEXIT >#66#return; 661862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661860#factFINAL assume true; 661837#factEXIT >#78#return; 661833#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 661809#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 661808#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 661807#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 661806#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 661804#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 661803#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 661802#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 660314#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 660320#$Ultimate##0 ~n := #in~n; 660374#L25 assume !(~n <= 0); 660352#L26 call #t~ret0 := fact(~n - 1);< 660373#$Ultimate##0 ~n := #in~n; 660911#L25 assume !(~n <= 0); 660362#L26 call #t~ret0 := fact(~n - 1);< 660392#$Ultimate##0 ~n := #in~n; 660386#L25 assume ~n <= 0;#res := 1; 660384#factFINAL assume true; 660379#factEXIT >#66#return; 660378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 660375#factFINAL assume true; 660333#factEXIT >#66#return; 660331#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 660327#factFINAL assume true; 660312#factEXIT >#68#return; 660257#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 660263#$Ultimate##0 ~n := #in~n; 660269#L25 assume ~n <= 0;#res := 1; 660268#factFINAL assume true; 660255#factEXIT >#70#return; 660245#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 660254#$Ultimate##0 ~n := #in~n; 660328#L25 assume !(~n <= 0); 660156#L26 call #t~ret0 := fact(~n - 1);< 660183#$Ultimate##0 ~n := #in~n; 660211#L25 assume !(~n <= 0); 660189#L26 call #t~ret0 := fact(~n - 1);< 660190#$Ultimate##0 ~n := #in~n; 660204#L25 assume ~n <= 0;#res := 1; 660202#factFINAL assume true; 660187#factEXIT >#66#return; 660185#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 660174#factFINAL assume true; 660151#factEXIT >#66#return; 660170#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 660293#factFINAL assume true; 660242#factEXIT >#72#return; 660250#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 661801#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 661800#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 661799#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 661798#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 660132#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 660147#$Ultimate##0 ~n := #in~n; 660197#L25 assume !(~n <= 0); 660157#L26 call #t~ret0 := fact(~n - 1);< 660183#$Ultimate##0 ~n := #in~n; 660211#L25 assume !(~n <= 0); 660189#L26 call #t~ret0 := fact(~n - 1);< 660190#$Ultimate##0 ~n := #in~n; 660204#L25 assume ~n <= 0;#res := 1; 660202#factFINAL assume true; 660187#factEXIT >#66#return; 660185#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 660174#factFINAL assume true; 660151#factEXIT >#66#return; 660171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 660149#factFINAL assume true; 660128#factEXIT >#68#return; 660141#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 660226#$Ultimate##0 ~n := #in~n; 660330#L25 assume !(~n <= 0); 659971#L26 call #t~ret0 := fact(~n - 1);< 660181#$Ultimate##0 ~n := #in~n; 660088#L25 assume ~n <= 0;#res := 1; 660077#factFINAL assume true; 659970#factEXIT >#66#return; 659989#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 660232#factFINAL assume true; 660213#factEXIT >#70#return; 660218#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 660225#$Ultimate##0 ~n := #in~n; 660323#L25 assume !(~n <= 0); 659987#L26 call #t~ret0 := fact(~n - 1);< 659993#$Ultimate##0 ~n := #in~n; 660088#L25 assume ~n <= 0;#res := 1; 660077#factFINAL assume true; 659970#factEXIT >#66#return; 659989#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 660232#factFINAL assume true; 660213#factEXIT >#72#return; 660223#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 661797#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 661796#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 661795#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 661794#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 660134#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 660147#$Ultimate##0 ~n := #in~n; 660197#L25 assume !(~n <= 0); 660157#L26 call #t~ret0 := fact(~n - 1);< 660183#$Ultimate##0 ~n := #in~n; 660211#L25 assume !(~n <= 0); 660189#L26 call #t~ret0 := fact(~n - 1);< 660190#$Ultimate##0 ~n := #in~n; 660204#L25 assume ~n <= 0;#res := 1; 660202#factFINAL assume true; 660187#factEXIT >#66#return; 660185#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 660174#factFINAL assume true; 660151#factEXIT >#66#return; 660171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 660149#factFINAL assume true; 660128#factEXIT >#68#return; 660121#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 660126#$Ultimate##0 ~n := #in~n; 660182#L25 assume !(~n <= 0); 660160#L26 call #t~ret0 := fact(~n - 1);< 660172#$Ultimate##0 ~n := #in~n; 660273#L25 assume !(~n <= 0); 660161#L26 call #t~ret0 := fact(~n - 1);< 660229#$Ultimate##0 ~n := #in~n; 660204#L25 assume ~n <= 0;#res := 1; 660202#factFINAL assume true; 660187#factEXIT >#66#return; 660185#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 660174#factFINAL assume true; 660151#factEXIT >#66#return; 660148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 660127#factFINAL assume true; 660119#factEXIT >#70#return; 660109#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 660117#$Ultimate##0 ~n := #in~n; 662155#L25 assume ~n <= 0;#res := 1; 661780#factFINAL assume true; 660105#factEXIT >#72#return; 660116#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 661793#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 660975#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 660974#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 660968#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 660881#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 660887#$Ultimate##0 ~n := #in~n; 660886#L25 assume !(~n <= 0); 659742#L26 call #t~ret0 := fact(~n - 1);< 659764#$Ultimate##0 ~n := #in~n; 659824#L25 assume !(~n <= 0); 659746#L26 call #t~ret0 := fact(~n - 1);< 659822#$Ultimate##0 ~n := #in~n; 659824#L25 assume !(~n <= 0); 659746#L26 call #t~ret0 := fact(~n - 1);< 659822#$Ultimate##0 ~n := #in~n; 659913#L25 assume ~n <= 0;#res := 1; 659840#factFINAL assume true; 659819#factEXIT >#66#return; 659817#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659808#factFINAL assume true; 659800#factEXIT >#66#return; 659798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659790#factFINAL assume true; 659778#factEXIT >#66#return; 659786#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 660979#factFINAL assume true; 660966#factEXIT >#74#return; 659814#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 660961#$Ultimate##0 ~n := #in~n; 661234#L25 assume !(~n <= 0); 659781#L26 call #t~ret0 := fact(~n - 1);< 659816#$Ultimate##0 ~n := #in~n; 659911#L25 assume !(~n <= 0); 659801#L26 call #t~ret0 := fact(~n - 1);< 659807#$Ultimate##0 ~n := #in~n; 659913#L25 assume ~n <= 0;#res := 1; 659840#factFINAL assume true; 659819#factEXIT >#66#return; 659817#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659808#factFINAL assume true; 659800#factEXIT >#66#return; 659804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 660959#factFINAL assume true; 660960#factEXIT >#76#return; 659838#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 660962#$Ultimate##0 ~n := #in~n; 661298#L25 assume !(~n <= 0); 661212#L26 call #t~ret0 := fact(~n - 1);< 661214#$Ultimate##0 ~n := #in~n; 659842#L25 assume ~n <= 0;#res := 1; 661228#factFINAL assume true; 661210#factEXIT >#66#return; 661213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661241#factFINAL assume true; 659896#factEXIT >#78#return; 659171#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 659198#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 659220#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 659237#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 659211#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 659212#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 659712#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 659709#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659599#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659601#$Ultimate##0 ~n := #in~n; 659600#L25 assume !(~n <= 0); 659438#L26 call #t~ret0 := fact(~n - 1);< 659597#$Ultimate##0 ~n := #in~n; 659595#L25 assume !(~n <= 0); 659476#L26 call #t~ret0 := fact(~n - 1);< 659487#$Ultimate##0 ~n := #in~n; 659681#L25 assume !(~n <= 0); 659492#L26 call #t~ret0 := fact(~n - 1);< 659499#$Ultimate##0 ~n := #in~n; 659686#L25 assume !(~n <= 0); 659531#L26 call #t~ret0 := fact(~n - 1);< 659534#$Ultimate##0 ~n := #in~n; 659571#L25 assume !(~n <= 0); 659552#L26 call #t~ret0 := fact(~n - 1);< 659553#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659442#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659652#factFINAL assume true; 659651#factEXIT >#68#return; 659646#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659650#$Ultimate##0 ~n := #in~n; 659662#L25 assume ~n <= 0;#res := 1; 659656#factFINAL assume true; 659641#factEXIT >#70#return; 659589#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659631#$Ultimate##0 ~n := #in~n; 661750#L25 assume !(~n <= 0); 659417#L26 call #t~ret0 := fact(~n - 1);< 659424#$Ultimate##0 ~n := #in~n; 659561#L25 assume !(~n <= 0); 659411#L26 call #t~ret0 := fact(~n - 1);< 659559#$Ultimate##0 ~n := #in~n; 659558#L25 assume !(~n <= 0); 659410#L26 call #t~ret0 := fact(~n - 1);< 659482#$Ultimate##0 ~n := #in~n; 659556#L25 assume !(~n <= 0); 659413#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 660087#factFINAL assume true; 659628#factEXIT >#72#return; 659627#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 659625#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 659623#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 659621#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 659620#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659351#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659359#$Ultimate##0 ~n := #in~n; 659427#L25 assume !(~n <= 0); 659439#L26 call #t~ret0 := fact(~n - 1);< 659444#$Ultimate##0 ~n := #in~n; 659602#L25 assume !(~n <= 0); 659477#L26 call #t~ret0 := fact(~n - 1);< 659584#$Ultimate##0 ~n := #in~n; 659583#L25 assume !(~n <= 0); 659497#L26 call #t~ret0 := fact(~n - 1);< 659505#$Ultimate##0 ~n := #in~n; 659579#L25 assume !(~n <= 0); 659529#L26 call #t~ret0 := fact(~n - 1);< 659574#$Ultimate##0 ~n := #in~n; 659571#L25 assume !(~n <= 0); 659552#L26 call #t~ret0 := fact(~n - 1);< 659553#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659435#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659434#factFINAL assume true; 659344#factEXIT >#68#return; 659261#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659428#$Ultimate##0 ~n := #in~n; 659297#L25 assume !(~n <= 0); 659298#L26 call #t~ret0 := fact(~n - 1);< 659619#$Ultimate##0 ~n := #in~n; 659655#L25 assume ~n <= 0;#res := 1; 659636#factFINAL assume true; 659616#factEXIT >#66#return; 659613#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659594#factFINAL assume true; 659449#factEXIT >#70#return; 659458#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659473#$Ultimate##0 ~n := #in~n; 659596#L25 assume !(~n <= 0); 659478#L26 call #t~ret0 := fact(~n - 1);< 659483#$Ultimate##0 ~n := #in~n; 659661#L25 assume !(~n <= 0); 659496#L26 call #t~ret0 := fact(~n - 1);< 659548#$Ultimate##0 ~n := #in~n; 659570#L25 assume !(~n <= 0); 659530#L26 call #t~ret0 := fact(~n - 1);< 659534#$Ultimate##0 ~n := #in~n; 659571#L25 assume !(~n <= 0); 659552#L26 call #t~ret0 := fact(~n - 1);< 659553#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659471#factFINAL assume true; 659460#factEXIT >#72#return; 659465#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 659581#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 659578#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 659576#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 659573#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659350#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659359#$Ultimate##0 ~n := #in~n; 659427#L25 assume !(~n <= 0); 659439#L26 call #t~ret0 := fact(~n - 1);< 659444#$Ultimate##0 ~n := #in~n; 659602#L25 assume !(~n <= 0); 659477#L26 call #t~ret0 := fact(~n - 1);< 659584#$Ultimate##0 ~n := #in~n; 659583#L25 assume !(~n <= 0); 659497#L26 call #t~ret0 := fact(~n - 1);< 659505#$Ultimate##0 ~n := #in~n; 659579#L25 assume !(~n <= 0); 659529#L26 call #t~ret0 := fact(~n - 1);< 659574#$Ultimate##0 ~n := #in~n; 659571#L25 assume !(~n <= 0); 659552#L26 call #t~ret0 := fact(~n - 1);< 659553#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659435#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659434#factFINAL assume true; 659344#factEXIT >#68#return; 659310#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659340#$Ultimate##0 ~n := #in~n; 659685#L25 assume !(~n <= 0); 659416#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659533#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659537#factFINAL assume true; 659519#factEXIT >#70#return; 659503#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659535#$Ultimate##0 ~n := #in~n; 659517#L25 assume !(~n <= 0); 659493#L26 call #t~ret0 := fact(~n - 1);< 659505#$Ultimate##0 ~n := #in~n; 659579#L25 assume !(~n <= 0); 659529#L26 call #t~ret0 := fact(~n - 1);< 659574#$Ultimate##0 ~n := #in~n; 659571#L25 assume !(~n <= 0); 659552#L26 call #t~ret0 := fact(~n - 1);< 659553#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659498#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659557#factFINAL assume true; 659538#factEXIT >#72#return; 659542#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 659567#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 659563#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 659562#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 659560#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659347#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659359#$Ultimate##0 ~n := #in~n; 659427#L25 assume !(~n <= 0); 659439#L26 call #t~ret0 := fact(~n - 1);< 659444#$Ultimate##0 ~n := #in~n; 659602#L25 assume !(~n <= 0); 659477#L26 call #t~ret0 := fact(~n - 1);< 659584#$Ultimate##0 ~n := #in~n; 659583#L25 assume !(~n <= 0); 659497#L26 call #t~ret0 := fact(~n - 1);< 659505#$Ultimate##0 ~n := #in~n; 659579#L25 assume !(~n <= 0); 659529#L26 call #t~ret0 := fact(~n - 1);< 659574#$Ultimate##0 ~n := #in~n; 659571#L25 assume !(~n <= 0); 659552#L26 call #t~ret0 := fact(~n - 1);< 659553#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659435#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659434#factFINAL assume true; 659344#factEXIT >#68#return; 659329#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659340#$Ultimate##0 ~n := #in~n; 659685#L25 assume !(~n <= 0); 659416#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659498#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659557#factFINAL assume true; 659538#factEXIT >#70#return; 659520#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659527#$Ultimate##0 ~n := #in~n; 659549#L25 assume !(~n <= 0); 659495#L26 call #t~ret0 := fact(~n - 1);< 659548#$Ultimate##0 ~n := #in~n; 659570#L25 assume !(~n <= 0); 659530#L26 call #t~ret0 := fact(~n - 1);< 659534#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659533#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659537#factFINAL assume true; 659519#factEXIT >#72#return; 659515#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 659501#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 659490#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 659488#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 659484#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659345#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659359#$Ultimate##0 ~n := #in~n; 659427#L25 assume !(~n <= 0); 659439#L26 call #t~ret0 := fact(~n - 1);< 659444#$Ultimate##0 ~n := #in~n; 659602#L25 assume !(~n <= 0); 659477#L26 call #t~ret0 := fact(~n - 1);< 659584#$Ultimate##0 ~n := #in~n; 659583#L25 assume !(~n <= 0); 659497#L26 call #t~ret0 := fact(~n - 1);< 659505#$Ultimate##0 ~n := #in~n; 659579#L25 assume !(~n <= 0); 659529#L26 call #t~ret0 := fact(~n - 1);< 659574#$Ultimate##0 ~n := #in~n; 659571#L25 assume !(~n <= 0); 659552#L26 call #t~ret0 := fact(~n - 1);< 659553#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659435#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659434#factFINAL assume true; 659344#factEXIT >#68#return; 659326#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659340#$Ultimate##0 ~n := #in~n; 659685#L25 assume !(~n <= 0); 659416#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659471#factFINAL assume true; 659460#factEXIT >#70#return; 659451#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659459#$Ultimate##0 ~n := #in~n; 659660#L25 assume !(~n <= 0); 659494#L26 call #t~ret0 := fact(~n - 1);< 659657#$Ultimate##0 ~n := #in~n; 659655#L25 assume ~n <= 0;#res := 1; 659636#factFINAL assume true; 659616#factEXIT >#66#return; 659613#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659594#factFINAL assume true; 659449#factEXIT >#72#return; 659456#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 659920#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 659919#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 659912#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 659360#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659352#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659359#$Ultimate##0 ~n := #in~n; 659427#L25 assume !(~n <= 0); 659439#L26 call #t~ret0 := fact(~n - 1);< 659444#$Ultimate##0 ~n := #in~n; 659602#L25 assume !(~n <= 0); 659477#L26 call #t~ret0 := fact(~n - 1);< 659584#$Ultimate##0 ~n := #in~n; 659583#L25 assume !(~n <= 0); 659497#L26 call #t~ret0 := fact(~n - 1);< 659505#$Ultimate##0 ~n := #in~n; 659579#L25 assume !(~n <= 0); 659529#L26 call #t~ret0 := fact(~n - 1);< 659574#$Ultimate##0 ~n := #in~n; 659571#L25 assume !(~n <= 0); 659552#L26 call #t~ret0 := fact(~n - 1);< 659553#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659435#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659434#factFINAL assume true; 659344#factEXIT >#68#return; 659302#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659340#$Ultimate##0 ~n := #in~n; 659685#L25 assume !(~n <= 0); 659416#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659361#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659341#factFINAL assume true; 659299#factEXIT >#70#return; 659269#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659295#$Ultimate##0 ~n := #in~n; 659659#L25 assume ~n <= 0;#res := 1; 659296#factFINAL assume true; 659251#factEXIT >#72#return; 659292#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 661155#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 661153#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 661151#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 661149#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 660918#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 661107#$Ultimate##0 ~n := #in~n; 661144#L25 assume !(~n <= 0); 661140#L26 call #t~ret0 := fact(~n - 1);< 661142#$Ultimate##0 ~n := #in~n; 661141#L25 assume !(~n <= 0); 661135#L26 call #t~ret0 := fact(~n - 1);< 661138#$Ultimate##0 ~n := #in~n; 661136#L25 assume !(~n <= 0); 661132#L26 call #t~ret0 := fact(~n - 1);< 661134#$Ultimate##0 ~n := #in~n; 661133#L25 assume !(~n <= 0); 661116#L26 call #t~ret0 := fact(~n - 1);< 661123#$Ultimate##0 ~n := #in~n; 661128#L25 assume !(~n <= 0); 661114#L26 call #t~ret0 := fact(~n - 1);< 661130#$Ultimate##0 ~n := #in~n; 661128#L25 assume !(~n <= 0); 661114#L26 call #t~ret0 := fact(~n - 1);< 661130#$Ultimate##0 ~n := #in~n; 661139#L25 assume ~n <= 0;#res := 1; 661137#factFINAL assume true; 661129#factEXIT >#66#return; 661125#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661121#factFINAL assume true; 661113#factEXIT >#66#return; 661118#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661175#factFINAL assume true; 661174#factEXIT >#66#return; 661173#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661171#factFINAL assume true; 661167#factEXIT >#66#return; 661165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661164#factFINAL assume true; 661163#factEXIT >#66#return; 661162#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661680#factFINAL assume true; 661161#factEXIT >#66#return; 661159#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661158#factFINAL assume true; 661106#factEXIT >#74#return; 661060#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659243#$Ultimate##0 ~n := #in~n; 661131#L25 assume !(~n <= 0); 661115#L26 call #t~ret0 := fact(~n - 1);< 661127#$Ultimate##0 ~n := #in~n; 661128#L25 assume !(~n <= 0); 661114#L26 call #t~ret0 := fact(~n - 1);< 661130#$Ultimate##0 ~n := #in~n; 661128#L25 assume !(~n <= 0); 661114#L26 call #t~ret0 := fact(~n - 1);< 661130#$Ultimate##0 ~n := #in~n; 661128#L25 assume !(~n <= 0); 661114#L26 call #t~ret0 := fact(~n - 1);< 661130#$Ultimate##0 ~n := #in~n; 661128#L25 assume !(~n <= 0); 661114#L26 call #t~ret0 := fact(~n - 1);< 661130#$Ultimate##0 ~n := #in~n; 661128#L25 assume !(~n <= 0); 661114#L26 call #t~ret0 := fact(~n - 1);< 661130#$Ultimate##0 ~n := #in~n; 661139#L25 assume ~n <= 0;#res := 1; 661137#factFINAL assume true; 661129#factEXIT >#66#return; 661125#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661121#factFINAL assume true; 661113#factEXIT >#66#return; 661118#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661175#factFINAL assume true; 661174#factEXIT >#66#return; 661173#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661171#factFINAL assume true; 661167#factEXIT >#66#return; 661165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661164#factFINAL assume true; 661163#factEXIT >#66#return; 661162#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661680#factFINAL assume true; 661161#factEXIT >#66#return; 661159#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661158#factFINAL assume true; 661106#factEXIT >#76#return; 659202#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659858#$Ultimate##0 ~n := #in~n; 661466#L25 assume !(~n <= 0); 659201#L26 call #t~ret0 := fact(~n - 1);< 659204#$Ultimate##0 ~n := #in~n; 659232#L25 assume ~n <= 0;#res := 1; 659234#factFINAL assume true; 661648#factEXIT >#66#return; 661647#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661646#factFINAL assume true; 659856#factEXIT >#78#return; 659857#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 661109#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 661108#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 661105#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 661104#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 661103#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 661101#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 659700#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659689#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659690#$Ultimate##0 ~n := #in~n; 659697#L25 assume !(~n <= 0); 659407#L26 call #t~ret0 := fact(~n - 1);< 659683#$Ultimate##0 ~n := #in~n; 659682#L25 assume !(~n <= 0); 659397#L26 call #t~ret0 := fact(~n - 1);< 659680#$Ultimate##0 ~n := #in~n; 659679#L25 assume !(~n <= 0); 659400#L26 call #t~ret0 := fact(~n - 1);< 659486#$Ultimate##0 ~n := #in~n; 659684#L25 assume !(~n <= 0); 659398#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659430#factFINAL assume true; 659396#factEXIT >#66#return; 659422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659695#factFINAL assume true; 659691#factEXIT >#68#return; 659642#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659650#$Ultimate##0 ~n := #in~n; 659662#L25 assume ~n <= 0;#res := 1; 659656#factFINAL assume true; 659641#factEXIT >#70#return; 659648#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659688#$Ultimate##0 ~n := #in~n; 659687#L25 assume !(~n <= 0); 659399#L26 call #t~ret0 := fact(~n - 1);< 659683#$Ultimate##0 ~n := #in~n; 659682#L25 assume !(~n <= 0); 659397#L26 call #t~ret0 := fact(~n - 1);< 659680#$Ultimate##0 ~n := #in~n; 659679#L25 assume !(~n <= 0); 659400#L26 call #t~ret0 := fact(~n - 1);< 659486#$Ultimate##0 ~n := #in~n; 659684#L25 assume !(~n <= 0); 659398#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659430#factFINAL assume true; 659396#factEXIT >#66#return; 659419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661185#factFINAL assume true; 660954#factEXIT >#72#return; 660953#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 660949#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 660947#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 660945#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 659895#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659378#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659358#$Ultimate##0 ~n := #in~n; 659426#L25 assume !(~n <= 0); 659415#L26 call #t~ret0 := fact(~n - 1);< 659425#$Ultimate##0 ~n := #in~n; 659694#L25 assume !(~n <= 0); 659402#L26 call #t~ret0 := fact(~n - 1);< 659424#$Ultimate##0 ~n := #in~n; 659561#L25 assume !(~n <= 0); 659411#L26 call #t~ret0 := fact(~n - 1);< 659559#$Ultimate##0 ~n := #in~n; 659558#L25 assume !(~n <= 0); 659410#L26 call #t~ret0 := fact(~n - 1);< 659482#$Ultimate##0 ~n := #in~n; 659556#L25 assume !(~n <= 0); 659413#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659430#factFINAL assume true; 659396#factEXIT >#66#return; 659423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659362#factFINAL assume true; 659394#factEXIT >#68#return; 659263#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659428#$Ultimate##0 ~n := #in~n; 659297#L25 assume !(~n <= 0); 659298#L26 call #t~ret0 := fact(~n - 1);< 659619#$Ultimate##0 ~n := #in~n; 659655#L25 assume ~n <= 0;#res := 1; 659636#factFINAL assume true; 659616#factEXIT >#66#return; 659613#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659594#factFINAL assume true; 659449#factEXIT >#70#return; 659312#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659343#$Ultimate##0 ~n := #in~n; 659910#L25 assume !(~n <= 0); 659409#L26 call #t~ret0 := fact(~n - 1);< 659424#$Ultimate##0 ~n := #in~n; 659561#L25 assume !(~n <= 0); 659411#L26 call #t~ret0 := fact(~n - 1);< 659559#$Ultimate##0 ~n := #in~n; 659558#L25 assume !(~n <= 0); 659410#L26 call #t~ret0 := fact(~n - 1);< 659482#$Ultimate##0 ~n := #in~n; 659556#L25 assume !(~n <= 0); 659413#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659430#factFINAL assume true; 659396#factEXIT >#66#return; 659421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659666#factFINAL assume true; 659665#factEXIT >#72#return; 659335#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 660756#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 660733#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 660725#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 660723#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659372#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659358#$Ultimate##0 ~n := #in~n; 659426#L25 assume !(~n <= 0); 659415#L26 call #t~ret0 := fact(~n - 1);< 659425#$Ultimate##0 ~n := #in~n; 659694#L25 assume !(~n <= 0); 659402#L26 call #t~ret0 := fact(~n - 1);< 659424#$Ultimate##0 ~n := #in~n; 659561#L25 assume !(~n <= 0); 659411#L26 call #t~ret0 := fact(~n - 1);< 659559#$Ultimate##0 ~n := #in~n; 659558#L25 assume !(~n <= 0); 659410#L26 call #t~ret0 := fact(~n - 1);< 659482#$Ultimate##0 ~n := #in~n; 659556#L25 assume !(~n <= 0); 659413#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659430#factFINAL assume true; 659396#factEXIT >#66#return; 659423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659362#factFINAL assume true; 659394#factEXIT >#68#return; 659280#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659342#$Ultimate##0 ~n := #in~n; 659654#L25 assume !(~n <= 0); 659403#L26 call #t~ret0 := fact(~n - 1);< 659514#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659533#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659537#factFINAL assume true; 659519#factEXIT >#70#return; 659328#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659472#$Ultimate##0 ~n := #in~n; 659678#L25 assume !(~n <= 0); 659408#L26 call #t~ret0 := fact(~n - 1);< 659482#$Ultimate##0 ~n := #in~n; 659556#L25 assume !(~n <= 0); 659413#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659471#factFINAL assume true; 659460#factEXIT >#72#return; 659468#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 661607#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 661606#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 661604#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 661603#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659386#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659358#$Ultimate##0 ~n := #in~n; 659426#L25 assume !(~n <= 0); 659415#L26 call #t~ret0 := fact(~n - 1);< 659425#$Ultimate##0 ~n := #in~n; 659694#L25 assume !(~n <= 0); 659402#L26 call #t~ret0 := fact(~n - 1);< 659424#$Ultimate##0 ~n := #in~n; 659561#L25 assume !(~n <= 0); 659411#L26 call #t~ret0 := fact(~n - 1);< 659559#$Ultimate##0 ~n := #in~n; 659558#L25 assume !(~n <= 0); 659410#L26 call #t~ret0 := fact(~n - 1);< 659482#$Ultimate##0 ~n := #in~n; 659556#L25 assume !(~n <= 0); 659413#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659430#factFINAL assume true; 659396#factEXIT >#66#return; 659423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659362#factFINAL assume true; 659394#factEXIT >#68#return; 659283#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659342#$Ultimate##0 ~n := #in~n; 659654#L25 assume !(~n <= 0); 659403#L26 call #t~ret0 := fact(~n - 1);< 659514#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659498#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659557#factFINAL assume true; 659538#factEXIT >#70#return; 659315#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659340#$Ultimate##0 ~n := #in~n; 659685#L25 assume !(~n <= 0); 659416#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659498#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659557#factFINAL assume true; 659538#factEXIT >#72#return; 659540#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 661601#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 661600#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 661598#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 661593#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659373#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659358#$Ultimate##0 ~n := #in~n; 659426#L25 assume !(~n <= 0); 659415#L26 call #t~ret0 := fact(~n - 1);< 659425#$Ultimate##0 ~n := #in~n; 659694#L25 assume !(~n <= 0); 659402#L26 call #t~ret0 := fact(~n - 1);< 659424#$Ultimate##0 ~n := #in~n; 659561#L25 assume !(~n <= 0); 659411#L26 call #t~ret0 := fact(~n - 1);< 659559#$Ultimate##0 ~n := #in~n; 659558#L25 assume !(~n <= 0); 659410#L26 call #t~ret0 := fact(~n - 1);< 659482#$Ultimate##0 ~n := #in~n; 659556#L25 assume !(~n <= 0); 659413#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659430#factFINAL assume true; 659396#factEXIT >#66#return; 659423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659362#factFINAL assume true; 659394#factEXIT >#68#return; 659290#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659342#$Ultimate##0 ~n := #in~n; 659654#L25 assume !(~n <= 0); 659403#L26 call #t~ret0 := fact(~n - 1);< 659514#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659471#factFINAL assume true; 659460#factEXIT >#70#return; 659321#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659340#$Ultimate##0 ~n := #in~n; 659685#L25 assume !(~n <= 0); 659416#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659533#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659537#factFINAL assume true; 659519#factEXIT >#72#return; 659526#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 661575#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 661540#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 661536#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 661535#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659389#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659358#$Ultimate##0 ~n := #in~n; 659426#L25 assume !(~n <= 0); 659415#L26 call #t~ret0 := fact(~n - 1);< 659425#$Ultimate##0 ~n := #in~n; 659694#L25 assume !(~n <= 0); 659402#L26 call #t~ret0 := fact(~n - 1);< 659424#$Ultimate##0 ~n := #in~n; 659561#L25 assume !(~n <= 0); 659411#L26 call #t~ret0 := fact(~n - 1);< 659559#$Ultimate##0 ~n := #in~n; 659558#L25 assume !(~n <= 0); 659410#L26 call #t~ret0 := fact(~n - 1);< 659482#$Ultimate##0 ~n := #in~n; 659556#L25 assume !(~n <= 0); 659413#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659430#factFINAL assume true; 659396#factEXIT >#66#return; 659423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659362#factFINAL assume true; 659394#factEXIT >#68#return; 659257#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659342#$Ultimate##0 ~n := #in~n; 659654#L25 assume !(~n <= 0); 659403#L26 call #t~ret0 := fact(~n - 1);< 659514#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659361#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659341#factFINAL assume true; 659299#factEXIT >#70#return; 659307#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659658#$Ultimate##0 ~n := #in~n; 659653#L25 assume !(~n <= 0); 659403#L26 call #t~ret0 := fact(~n - 1);< 659514#$Ultimate##0 ~n := #in~n; 659655#L25 assume ~n <= 0;#res := 1; 659636#factFINAL assume true; 659616#factEXIT >#66#return; 659613#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659594#factFINAL assume true; 659449#factEXIT >#72#return; 659453#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 661812#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 661810#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 661748#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 659582#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659357#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659358#$Ultimate##0 ~n := #in~n; 659426#L25 assume !(~n <= 0); 659415#L26 call #t~ret0 := fact(~n - 1);< 659425#$Ultimate##0 ~n := #in~n; 659694#L25 assume !(~n <= 0); 659402#L26 call #t~ret0 := fact(~n - 1);< 659424#$Ultimate##0 ~n := #in~n; 659561#L25 assume !(~n <= 0); 659411#L26 call #t~ret0 := fact(~n - 1);< 659559#$Ultimate##0 ~n := #in~n; 659558#L25 assume !(~n <= 0); 659410#L26 call #t~ret0 := fact(~n - 1);< 659482#$Ultimate##0 ~n := #in~n; 659556#L25 assume !(~n <= 0); 659413#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659430#factFINAL assume true; 659396#factEXIT >#66#return; 659423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659362#factFINAL assume true; 659394#factEXIT >#68#return; 659274#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659342#$Ultimate##0 ~n := #in~n; 659654#L25 assume !(~n <= 0); 659403#L26 call #t~ret0 := fact(~n - 1);< 659514#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659430#factFINAL assume true; 659396#factEXIT >#66#return; 659421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659666#factFINAL assume true; 659665#factEXIT >#70#return; 659291#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659342#$Ultimate##0 ~n := #in~n; 659654#L25 assume ~n <= 0;#res := 1; 659296#factFINAL assume true; 659251#factEXIT >#72#return; 659215#L30-3 [2023-02-18 08:57:53,878 INFO L750 eck$LassoCheckResult]: Loop: 659215#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 659216#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 659230#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 659846#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 659222#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659223#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659157#$Ultimate##0 ~n := #in~n; 661157#L25 assume !(~n <= 0); 661152#L26 call #t~ret0 := fact(~n - 1);< 661156#$Ultimate##0 ~n := #in~n; 661154#L25 assume !(~n <= 0); 661147#L26 call #t~ret0 := fact(~n - 1);< 661150#$Ultimate##0 ~n := #in~n; 661148#L25 assume !(~n <= 0); 661143#L26 call #t~ret0 := fact(~n - 1);< 661146#$Ultimate##0 ~n := #in~n; 661145#L25 assume !(~n <= 0); 661122#L26 call #t~ret0 := fact(~n - 1);< 661126#$Ultimate##0 ~n := #in~n; 661124#L25 assume !(~n <= 0); 661117#L26 call #t~ret0 := fact(~n - 1);< 661123#$Ultimate##0 ~n := #in~n; 661128#L25 assume !(~n <= 0); 661114#L26 call #t~ret0 := fact(~n - 1);< 661130#$Ultimate##0 ~n := #in~n; 661139#L25 assume ~n <= 0;#res := 1; 661137#factFINAL assume true; 661129#factEXIT >#66#return; 661125#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661121#factFINAL assume true; 661113#factEXIT >#66#return; 661118#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661175#factFINAL assume true; 661174#factEXIT >#66#return; 661173#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661171#factFINAL assume true; 661167#factEXIT >#66#return; 661165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661164#factFINAL assume true; 661163#factEXIT >#66#return; 661162#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661680#factFINAL assume true; 661161#factEXIT >#66#return; 661159#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661158#factFINAL assume true; 661106#factEXIT >#74#return; 659242#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659243#$Ultimate##0 ~n := #in~n; 661131#L25 assume !(~n <= 0); 661115#L26 call #t~ret0 := fact(~n - 1);< 661127#$Ultimate##0 ~n := #in~n; 661128#L25 assume !(~n <= 0); 661114#L26 call #t~ret0 := fact(~n - 1);< 661130#$Ultimate##0 ~n := #in~n; 661128#L25 assume !(~n <= 0); 661114#L26 call #t~ret0 := fact(~n - 1);< 661130#$Ultimate##0 ~n := #in~n; 661128#L25 assume !(~n <= 0); 661114#L26 call #t~ret0 := fact(~n - 1);< 661130#$Ultimate##0 ~n := #in~n; 661128#L25 assume !(~n <= 0); 661114#L26 call #t~ret0 := fact(~n - 1);< 661130#$Ultimate##0 ~n := #in~n; 661128#L25 assume !(~n <= 0); 661114#L26 call #t~ret0 := fact(~n - 1);< 661130#$Ultimate##0 ~n := #in~n; 661139#L25 assume ~n <= 0;#res := 1; 661137#factFINAL assume true; 661129#factEXIT >#66#return; 661125#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661121#factFINAL assume true; 661113#factEXIT >#66#return; 661118#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661175#factFINAL assume true; 661174#factEXIT >#66#return; 661173#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661171#factFINAL assume true; 661167#factEXIT >#66#return; 661165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661164#factFINAL assume true; 661163#factEXIT >#66#return; 661162#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661680#factFINAL assume true; 661161#factEXIT >#66#return; 661159#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661158#factFINAL assume true; 661106#factEXIT >#76#return; 659203#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659858#$Ultimate##0 ~n := #in~n; 661466#L25 assume !(~n <= 0); 659201#L26 call #t~ret0 := fact(~n - 1);< 659204#$Ultimate##0 ~n := #in~n; 659232#L25 assume ~n <= 0;#res := 1; 659234#factFINAL assume true; 661648#factEXIT >#66#return; 661647#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661646#factFINAL assume true; 659856#factEXIT >#78#return; 659854#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 659855#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 661043#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 659848#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 659847#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 659845#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 659844#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 659843#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659192#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659193#$Ultimate##0 ~n := #in~n; 659699#L25 assume !(~n <= 0); 659406#L26 call #t~ret0 := fact(~n - 1);< 659425#$Ultimate##0 ~n := #in~n; 659694#L25 assume !(~n <= 0); 659402#L26 call #t~ret0 := fact(~n - 1);< 659424#$Ultimate##0 ~n := #in~n; 659561#L25 assume !(~n <= 0); 659411#L26 call #t~ret0 := fact(~n - 1);< 659559#$Ultimate##0 ~n := #in~n; 659558#L25 assume !(~n <= 0); 659410#L26 call #t~ret0 := fact(~n - 1);< 659482#$Ultimate##0 ~n := #in~n; 659556#L25 assume !(~n <= 0); 659413#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659430#factFINAL assume true; 659396#factEXIT >#66#return; 659422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659695#factFINAL assume true; 659691#factEXIT >#68#return; 659642#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659650#$Ultimate##0 ~n := #in~n; 659662#L25 assume ~n <= 0;#res := 1; 659656#factFINAL assume true; 659641#factEXIT >#70#return; 659648#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659688#$Ultimate##0 ~n := #in~n; 659687#L25 assume !(~n <= 0); 659399#L26 call #t~ret0 := fact(~n - 1);< 659683#$Ultimate##0 ~n := #in~n; 659682#L25 assume !(~n <= 0); 659397#L26 call #t~ret0 := fact(~n - 1);< 659680#$Ultimate##0 ~n := #in~n; 659679#L25 assume !(~n <= 0); 659400#L26 call #t~ret0 := fact(~n - 1);< 659486#$Ultimate##0 ~n := #in~n; 659684#L25 assume !(~n <= 0); 659398#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659430#factFINAL assume true; 659396#factEXIT >#66#return; 659419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 661185#factFINAL assume true; 660954#factEXIT >#72#return; 660953#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 660949#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 660947#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 660945#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 659895#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659378#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659358#$Ultimate##0 ~n := #in~n; 659426#L25 assume !(~n <= 0); 659415#L26 call #t~ret0 := fact(~n - 1);< 659425#$Ultimate##0 ~n := #in~n; 659694#L25 assume !(~n <= 0); 659402#L26 call #t~ret0 := fact(~n - 1);< 659424#$Ultimate##0 ~n := #in~n; 659561#L25 assume !(~n <= 0); 659411#L26 call #t~ret0 := fact(~n - 1);< 659559#$Ultimate##0 ~n := #in~n; 659558#L25 assume !(~n <= 0); 659410#L26 call #t~ret0 := fact(~n - 1);< 659482#$Ultimate##0 ~n := #in~n; 659556#L25 assume !(~n <= 0); 659413#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659430#factFINAL assume true; 659396#factEXIT >#66#return; 659423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659362#factFINAL assume true; 659394#factEXIT >#68#return; 659263#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659428#$Ultimate##0 ~n := #in~n; 659297#L25 assume !(~n <= 0); 659298#L26 call #t~ret0 := fact(~n - 1);< 659619#$Ultimate##0 ~n := #in~n; 659655#L25 assume ~n <= 0;#res := 1; 659636#factFINAL assume true; 659616#factEXIT >#66#return; 659613#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659594#factFINAL assume true; 659449#factEXIT >#70#return; 659312#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659343#$Ultimate##0 ~n := #in~n; 659910#L25 assume !(~n <= 0); 659409#L26 call #t~ret0 := fact(~n - 1);< 659424#$Ultimate##0 ~n := #in~n; 659561#L25 assume !(~n <= 0); 659411#L26 call #t~ret0 := fact(~n - 1);< 659559#$Ultimate##0 ~n := #in~n; 659558#L25 assume !(~n <= 0); 659410#L26 call #t~ret0 := fact(~n - 1);< 659482#$Ultimate##0 ~n := #in~n; 659556#L25 assume !(~n <= 0); 659413#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659361#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659341#factFINAL assume true; 659299#factEXIT >#72#return; 659335#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 660756#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 660733#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 660725#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 660723#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659372#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659358#$Ultimate##0 ~n := #in~n; 659426#L25 assume !(~n <= 0); 659415#L26 call #t~ret0 := fact(~n - 1);< 659425#$Ultimate##0 ~n := #in~n; 659694#L25 assume !(~n <= 0); 659402#L26 call #t~ret0 := fact(~n - 1);< 659424#$Ultimate##0 ~n := #in~n; 659561#L25 assume !(~n <= 0); 659411#L26 call #t~ret0 := fact(~n - 1);< 659559#$Ultimate##0 ~n := #in~n; 659558#L25 assume !(~n <= 0); 659410#L26 call #t~ret0 := fact(~n - 1);< 659482#$Ultimate##0 ~n := #in~n; 659556#L25 assume !(~n <= 0); 659413#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659430#factFINAL assume true; 659396#factEXIT >#66#return; 659423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659362#factFINAL assume true; 659394#factEXIT >#68#return; 659280#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659342#$Ultimate##0 ~n := #in~n; 659654#L25 assume !(~n <= 0); 659403#L26 call #t~ret0 := fact(~n - 1);< 659514#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659533#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659537#factFINAL assume true; 659519#factEXIT >#70#return; 659328#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659472#$Ultimate##0 ~n := #in~n; 659678#L25 assume !(~n <= 0); 659408#L26 call #t~ret0 := fact(~n - 1);< 659482#$Ultimate##0 ~n := #in~n; 659556#L25 assume !(~n <= 0); 659413#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659471#factFINAL assume true; 659460#factEXIT >#72#return; 659468#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 661607#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 661606#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 661604#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 661603#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659386#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659358#$Ultimate##0 ~n := #in~n; 659426#L25 assume !(~n <= 0); 659415#L26 call #t~ret0 := fact(~n - 1);< 659425#$Ultimate##0 ~n := #in~n; 659694#L25 assume !(~n <= 0); 659402#L26 call #t~ret0 := fact(~n - 1);< 659424#$Ultimate##0 ~n := #in~n; 659561#L25 assume !(~n <= 0); 659411#L26 call #t~ret0 := fact(~n - 1);< 659559#$Ultimate##0 ~n := #in~n; 659558#L25 assume !(~n <= 0); 659410#L26 call #t~ret0 := fact(~n - 1);< 659482#$Ultimate##0 ~n := #in~n; 659556#L25 assume !(~n <= 0); 659413#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659430#factFINAL assume true; 659396#factEXIT >#66#return; 659423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659362#factFINAL assume true; 659394#factEXIT >#68#return; 659283#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659342#$Ultimate##0 ~n := #in~n; 659654#L25 assume !(~n <= 0); 659403#L26 call #t~ret0 := fact(~n - 1);< 659514#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659498#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659557#factFINAL assume true; 659538#factEXIT >#70#return; 659315#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659340#$Ultimate##0 ~n := #in~n; 659685#L25 assume !(~n <= 0); 659416#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659498#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659557#factFINAL assume true; 659538#factEXIT >#72#return; 659540#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 661601#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 661600#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 661598#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 661593#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659373#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659358#$Ultimate##0 ~n := #in~n; 659426#L25 assume !(~n <= 0); 659415#L26 call #t~ret0 := fact(~n - 1);< 659425#$Ultimate##0 ~n := #in~n; 659694#L25 assume !(~n <= 0); 659402#L26 call #t~ret0 := fact(~n - 1);< 659424#$Ultimate##0 ~n := #in~n; 659561#L25 assume !(~n <= 0); 659411#L26 call #t~ret0 := fact(~n - 1);< 659559#$Ultimate##0 ~n := #in~n; 659558#L25 assume !(~n <= 0); 659410#L26 call #t~ret0 := fact(~n - 1);< 659482#$Ultimate##0 ~n := #in~n; 659556#L25 assume !(~n <= 0); 659413#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659430#factFINAL assume true; 659396#factEXIT >#66#return; 659423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659362#factFINAL assume true; 659394#factEXIT >#68#return; 659290#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659342#$Ultimate##0 ~n := #in~n; 659654#L25 assume !(~n <= 0); 659403#L26 call #t~ret0 := fact(~n - 1);< 659514#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659471#factFINAL assume true; 659460#factEXIT >#70#return; 659321#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659340#$Ultimate##0 ~n := #in~n; 659685#L25 assume !(~n <= 0); 659416#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659533#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659537#factFINAL assume true; 659519#factEXIT >#72#return; 659526#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 661575#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 661540#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 661536#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 661535#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659389#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659358#$Ultimate##0 ~n := #in~n; 659426#L25 assume !(~n <= 0); 659415#L26 call #t~ret0 := fact(~n - 1);< 659425#$Ultimate##0 ~n := #in~n; 659694#L25 assume !(~n <= 0); 659402#L26 call #t~ret0 := fact(~n - 1);< 659424#$Ultimate##0 ~n := #in~n; 659561#L25 assume !(~n <= 0); 659411#L26 call #t~ret0 := fact(~n - 1);< 659559#$Ultimate##0 ~n := #in~n; 659558#L25 assume !(~n <= 0); 659410#L26 call #t~ret0 := fact(~n - 1);< 659482#$Ultimate##0 ~n := #in~n; 659556#L25 assume !(~n <= 0); 659413#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659430#factFINAL assume true; 659396#factEXIT >#66#return; 659423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659362#factFINAL assume true; 659394#factEXIT >#68#return; 659257#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659342#$Ultimate##0 ~n := #in~n; 659654#L25 assume !(~n <= 0); 659403#L26 call #t~ret0 := fact(~n - 1);< 659514#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659361#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659341#factFINAL assume true; 659299#factEXIT >#70#return; 659307#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659658#$Ultimate##0 ~n := #in~n; 659653#L25 assume !(~n <= 0); 659403#L26 call #t~ret0 := fact(~n - 1);< 659514#$Ultimate##0 ~n := #in~n; 659655#L25 assume ~n <= 0;#res := 1; 659636#factFINAL assume true; 659616#factEXIT >#66#return; 659613#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659594#factFINAL assume true; 659449#factEXIT >#72#return; 659453#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 661812#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 661810#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 661748#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 659582#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 659357#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 659358#$Ultimate##0 ~n := #in~n; 659426#L25 assume !(~n <= 0); 659415#L26 call #t~ret0 := fact(~n - 1);< 659425#$Ultimate##0 ~n := #in~n; 659694#L25 assume !(~n <= 0); 659402#L26 call #t~ret0 := fact(~n - 1);< 659424#$Ultimate##0 ~n := #in~n; 659561#L25 assume !(~n <= 0); 659411#L26 call #t~ret0 := fact(~n - 1);< 659559#$Ultimate##0 ~n := #in~n; 659558#L25 assume !(~n <= 0); 659410#L26 call #t~ret0 := fact(~n - 1);< 659482#$Ultimate##0 ~n := #in~n; 659556#L25 assume !(~n <= 0); 659413#L26 call #t~ret0 := fact(~n - 1);< 659500#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659430#factFINAL assume true; 659396#factEXIT >#66#return; 659423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659362#factFINAL assume true; 659394#factEXIT >#68#return; 659274#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 659342#$Ultimate##0 ~n := #in~n; 659654#L25 assume !(~n <= 0); 659403#L26 call #t~ret0 := fact(~n - 1);< 659514#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659555#L25 assume !(~n <= 0); 659404#L26 call #t~ret0 := fact(~n - 1);< 659554#$Ultimate##0 ~n := #in~n; 659569#L25 assume ~n <= 0;#res := 1; 659568#factFINAL assume true; 659551#factEXIT >#66#return; 659550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659547#factFINAL assume true; 659528#factEXIT >#66#return; 659516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659502#factFINAL assume true; 659491#factEXIT >#66#return; 659489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659485#factFINAL assume true; 659475#factEXIT >#66#return; 659480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659586#factFINAL assume true; 659437#factEXIT >#66#return; 659418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659430#factFINAL assume true; 659396#factEXIT >#66#return; 659421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 659666#factFINAL assume true; 659665#factEXIT >#70#return; 659291#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 659342#$Ultimate##0 ~n := #in~n; 659654#L25 assume ~n <= 0;#res := 1; 659296#factFINAL assume true; 659251#factEXIT >#72#return; 659215#L30-3 [2023-02-18 08:57:53,879 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:53,879 INFO L85 PathProgramCache]: Analyzing trace with hash -817879231, now seen corresponding path program 69 times [2023-02-18 08:57:53,879 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:53,879 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1539836750] [2023-02-18 08:57:53,879 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:53,879 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:53,905 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:53,906 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [285753339] [2023-02-18 08:57:53,906 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:57:53,906 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:53,906 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:53,908 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-18 08:57:53,909 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-18 08:57:54,894 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 15 check-sat command(s) [2023-02-18 08:57:54,894 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:57:54,901 INFO L263 TraceCheckSpWp]: Trace formula consists of 1243 conjuncts, 39 conjunts are in the unsatisfiable core [2023-02-18 08:57:54,911 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:57:55,061 INFO L134 CoverageAnalysis]: Checked inductivity of 198842 backedges. 12379 proven. 3463 refuted. 0 times theorem prover too weak. 183000 trivial. 0 not checked. [2023-02-18 08:57:55,061 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:57:55,492 INFO L134 CoverageAnalysis]: Checked inductivity of 198842 backedges. 12335 proven. 3562 refuted. 0 times theorem prover too weak. 182945 trivial. 0 not checked. [2023-02-18 08:57:55,493 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:57:55,493 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1539836750] [2023-02-18 08:57:55,493 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:57:55,493 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [285753339] [2023-02-18 08:57:55,493 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [285753339] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:57:55,493 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:57:55,493 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 32] total 39 [2023-02-18 08:57:55,493 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1517223850] [2023-02-18 08:57:55,493 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:57:55,494 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:57:55,494 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:57:55,494 INFO L85 PathProgramCache]: Analyzing trace with hash 1651261652, now seen corresponding path program 69 times [2023-02-18 08:57:55,494 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:57:55,494 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2005646366] [2023-02-18 08:57:55,494 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:57:55,494 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:57:55,509 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:57:55,509 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1896185290] [2023-02-18 08:57:55,509 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:57:55,509 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:57:55,509 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:57:55,512 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-18 08:57:55,512 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-18 08:58:07,099 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 61 check-sat command(s) [2023-02-18 08:58:07,100 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:58:07,109 INFO L263 TraceCheckSpWp]: Trace formula consists of 1560 conjuncts, 39 conjunts are in the unsatisfiable core [2023-02-18 08:58:07,114 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:07,247 INFO L134 CoverageAnalysis]: Checked inductivity of 38549 backedges. 3064 proven. 3433 refuted. 0 times theorem prover too weak. 32052 trivial. 0 not checked. [2023-02-18 08:58:07,247 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:07,641 INFO L134 CoverageAnalysis]: Checked inductivity of 38549 backedges. 3020 proven. 3532 refuted. 0 times theorem prover too weak. 31997 trivial. 0 not checked. [2023-02-18 08:58:07,642 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:07,642 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2005646366] [2023-02-18 08:58:07,642 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:07,642 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1896185290] [2023-02-18 08:58:07,642 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1896185290] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:07,642 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:07,642 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 32] total 39 [2023-02-18 08:58:07,642 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1047045428] [2023-02-18 08:58:07,642 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:07,642 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:58:07,643 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:58:07,643 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 40 interpolants. [2023-02-18 08:58:07,643 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=183, Invalid=1377, Unknown=0, NotChecked=0, Total=1560 [2023-02-18 08:58:07,643 INFO L87 Difference]: Start difference. First operand 4295 states and 6369 transitions. cyclomatic complexity: 2113 Second operand has 40 states, 33 states have (on average 2.6363636363636362) internal successors, (87), 39 states have internal predecessors, (87), 24 states have call successors, (34), 1 states have call predecessors, (34), 13 states have return successors, (42), 23 states have call predecessors, (42), 24 states have call successors, (42) [2023-02-18 08:58:09,962 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:58:09,962 INFO L93 Difference]: Finished difference Result 5061 states and 7628 transitions. [2023-02-18 08:58:09,962 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 5061 states and 7628 transitions. [2023-02-18 08:58:09,984 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 409 [2023-02-18 08:58:10,010 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 5061 states to 4977 states and 7503 transitions. [2023-02-18 08:58:10,010 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 299 [2023-02-18 08:58:10,010 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 299 [2023-02-18 08:58:10,010 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4977 states and 7503 transitions. [2023-02-18 08:58:10,011 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:58:10,011 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4977 states and 7503 transitions. [2023-02-18 08:58:10,012 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4977 states and 7503 transitions. [2023-02-18 08:58:10,056 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4977 to 4350. [2023-02-18 08:58:10,059 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4350 states, 2689 states have (on average 1.0513201933804388) internal successors, (2827), 2685 states have internal predecessors, (2827), 1330 states have call successors, (1352), 433 states have call predecessors, (1352), 331 states have return successors, (2278), 1231 states have call predecessors, (2278), 1330 states have call successors, (2278) [2023-02-18 08:58:10,070 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4350 states to 4350 states and 6457 transitions. [2023-02-18 08:58:10,071 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4350 states and 6457 transitions. [2023-02-18 08:58:10,071 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 41 states. [2023-02-18 08:58:10,071 INFO L428 stractBuchiCegarLoop]: Abstraction has 4350 states and 6457 transitions. [2023-02-18 08:58:10,071 INFO L335 stractBuchiCegarLoop]: ======== Iteration 82 ============ [2023-02-18 08:58:10,071 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4350 states and 6457 transitions. [2023-02-18 08:58:10,081 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 259 [2023-02-18 08:58:10,081 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:58:10,081 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:58:10,084 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [172, 172, 116, 116, 116, 116, 56, 19, 18, 12, 12, 12, 12, 12, 12, 12, 12, 12, 7, 7, 7, 7, 7, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-18 08:58:10,084 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [142, 142, 115, 115, 115, 115, 27, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:58:10,085 INFO L748 eck$LassoCheckResult]: Stem: 683682#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 683630#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; 683631#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 683652#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; 683683#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 687592#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 687589#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 687585#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 687586#$Ultimate##0 ~n := #in~n; 687591#L25 assume ~n <= 0;#res := 1; 687588#factFINAL assume true; 687584#factEXIT >#68#return; 683673#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 683674#$Ultimate##0 ~n := #in~n; 687446#L25 assume ~n <= 0;#res := 1; 687445#factFINAL assume true; 687363#factEXIT >#70#return; 683621#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 683622#$Ultimate##0 ~n := #in~n; 687414#L25 assume ~n <= 0;#res := 1; 687413#factFINAL assume true; 687412#factEXIT >#72#return; 687411#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 687410#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 687409#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 687408#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 687406#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 687383#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 687384#$Ultimate##0 ~n := #in~n; 687392#L25 assume !(~n <= 0); 687390#L26 call #t~ret0 := fact(~n - 1);< 687391#$Ultimate##0 ~n := #in~n; 687395#L25 assume ~n <= 0;#res := 1; 687393#factFINAL assume true; 687389#factEXIT >#66#return; 687387#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687385#factFINAL assume true; 687382#factEXIT >#74#return; 687380#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 687381#$Ultimate##0 ~n := #in~n; 687388#L25 assume ~n <= 0;#res := 1; 687386#factFINAL assume true; 687379#factEXIT >#76#return; 687377#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 687378#$Ultimate##0 ~n := #in~n; 687400#L25 assume !(~n <= 0); 687398#L26 call #t~ret0 := fact(~n - 1);< 687399#$Ultimate##0 ~n := #in~n; 687402#L25 assume ~n <= 0;#res := 1; 687401#factFINAL assume true; 687397#factEXIT >#66#return; 687396#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687394#factFINAL assume true; 687376#factEXIT >#78#return; 687375#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 687374#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 687373#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 687372#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 687370#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 685008#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 685060#$Ultimate##0 ~n := #in~n; 685058#L25 assume !(~n <= 0); 684995#L26 call #t~ret0 := fact(~n - 1);< 684999#$Ultimate##0 ~n := #in~n; 685018#L25 assume !(~n <= 0); 684994#L26 call #t~ret0 := fact(~n - 1);< 685016#$Ultimate##0 ~n := #in~n; 685021#L25 assume ~n <= 0;#res := 1; 685020#factFINAL assume true; 685015#factEXIT >#66#return; 685014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 685007#factFINAL assume true; 684993#factEXIT >#66#return; 684997#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687524#factFINAL assume true; 687520#factEXIT >#74#return; 685407#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 687518#$Ultimate##0 ~n := #in~n; 687574#L25 assume ~n <= 0;#res := 1; 687572#factFINAL assume true; 687517#factEXIT >#76#return; 684988#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 684989#$Ultimate##0 ~n := #in~n; 685001#L25 assume !(~n <= 0); 684996#L26 call #t~ret0 := fact(~n - 1);< 684999#$Ultimate##0 ~n := #in~n; 685018#L25 assume !(~n <= 0); 684994#L26 call #t~ret0 := fact(~n - 1);< 685016#$Ultimate##0 ~n := #in~n; 685021#L25 assume ~n <= 0;#res := 1; 685020#factFINAL assume true; 685015#factEXIT >#66#return; 685014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 685007#factFINAL assume true; 684993#factEXIT >#66#return; 684991#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684990#factFINAL assume true; 684987#factEXIT >#78#return; 684985#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 684980#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 684978#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 684976#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 684974#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 684972#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 684973#$Ultimate##0 ~n := #in~n; 684986#L25 assume !(~n <= 0); 684983#L26 call #t~ret0 := fact(~n - 1);< 684984#$Ultimate##0 ~n := #in~n; 685004#L25 assume !(~n <= 0); 684982#L26 call #t~ret0 := fact(~n - 1);< 685003#$Ultimate##0 ~n := #in~n; 685004#L25 assume !(~n <= 0); 684982#L26 call #t~ret0 := fact(~n - 1);< 685003#$Ultimate##0 ~n := #in~n; 685013#L25 assume ~n <= 0;#res := 1; 685012#factFINAL assume true; 685009#factEXIT >#66#return; 685006#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 685005#factFINAL assume true; 685002#factEXIT >#66#return; 685000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684992#factFINAL assume true; 684981#factEXIT >#66#return; 684979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684977#factFINAL assume true; 684971#factEXIT >#74#return; 684969#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 684970#$Ultimate##0 ~n := #in~n; 685019#L25 assume ~n <= 0;#res := 1; 685017#factFINAL assume true; 684968#factEXIT >#76#return; 683658#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 684967#$Ultimate##0 ~n := #in~n; 687119#L25 assume !(~n <= 0); 685026#L26 call #t~ret0 := fact(~n - 1);< 685031#$Ultimate##0 ~n := #in~n; 685133#L25 assume !(~n <= 0); 685028#L26 call #t~ret0 := fact(~n - 1);< 685105#$Ultimate##0 ~n := #in~n; 685133#L25 assume !(~n <= 0); 685028#L26 call #t~ret0 := fact(~n - 1);< 685105#$Ultimate##0 ~n := #in~n; 685157#L25 assume ~n <= 0;#res := 1; 685119#factFINAL assume true; 685104#factEXIT >#66#return; 685102#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 685101#factFINAL assume true; 685095#factEXIT >#66#return; 685093#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 685034#factFINAL assume true; 685024#factEXIT >#66#return; 683657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683659#factFINAL assume true; 684966#factEXIT >#78#return; 684948#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 684946#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 684944#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 684942#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 684940#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 684938#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 684794#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 684725#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 684665#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 684666#$Ultimate##0 ~n := #in~n; 684716#L25 assume !(~n <= 0); 684680#L26 call #t~ret0 := fact(~n - 1);< 684714#$Ultimate##0 ~n := #in~n; 685147#L25 assume ~n <= 0;#res := 1; 685530#factFINAL assume true; 685491#factEXIT >#66#return; 685499#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 685703#factFINAL assume true; 685700#factEXIT >#68#return; 685692#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 684657#$Ultimate##0 ~n := #in~n; 685707#L25 assume ~n <= 0;#res := 1; 685704#factFINAL assume true; 685691#factEXIT >#70#return; 685681#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 685689#$Ultimate##0 ~n := #in~n; 685687#L25 assume !(~n <= 0); 684685#L26 call #t~ret0 := fact(~n - 1);< 685539#$Ultimate##0 ~n := #in~n; 685147#L25 assume ~n <= 0;#res := 1; 685530#factFINAL assume true; 685491#factEXIT >#66#return; 685496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 685816#factFINAL assume true; 685814#factEXIT >#72#return; 685812#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 685810#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 685808#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 685807#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 685806#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 685536#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 685543#$Ultimate##0 ~n := #in~n; 685541#L25 assume !(~n <= 0); 684696#L26 call #t~ret0 := fact(~n - 1);< 685539#$Ultimate##0 ~n := #in~n; 685147#L25 assume ~n <= 0;#res := 1; 685530#factFINAL assume true; 685491#factEXIT >#66#return; 685501#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 685817#factFINAL assume true; 685804#factEXIT >#68#return; 685781#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 685791#$Ultimate##0 ~n := #in~n; 686049#L25 assume !(~n <= 0); 684679#L26 call #t~ret0 := fact(~n - 1);< 684714#$Ultimate##0 ~n := #in~n; 685147#L25 assume ~n <= 0;#res := 1; 685530#factFINAL assume true; 685491#factEXIT >#66#return; 685498#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 685893#factFINAL assume true; 685771#factEXIT >#70#return; 685759#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 685769#$Ultimate##0 ~n := #in~n; 686013#L25 assume ~n <= 0;#res := 1; 685886#factFINAL assume true; 685755#factEXIT >#72#return; 685754#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 685751#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 685750#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 685749#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 685748#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 685742#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 685746#$Ultimate##0 ~n := #in~n; 685805#L25 assume !(~n <= 0); 684688#L26 call #t~ret0 := fact(~n - 1);< 685803#$Ultimate##0 ~n := #in~n; 686960#L25 assume !(~n <= 0); 684684#L26 call #t~ret0 := fact(~n - 1);< 684779#$Ultimate##0 ~n := #in~n; 684862#L25 assume ~n <= 0;#res := 1; 684861#factFINAL assume true; 684777#factEXIT >#66#return; 684775#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684738#factFINAL assume true; 684674#factEXIT >#66#return; 684712#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 685852#factFINAL assume true; 685849#factEXIT >#74#return; 685468#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 685488#$Ultimate##0 ~n := #in~n; 685504#L25 assume !(~n <= 0); 684694#L26 call #t~ret0 := fact(~n - 1);< 684714#$Ultimate##0 ~n := #in~n; 685147#L25 assume ~n <= 0;#res := 1; 685530#factFINAL assume true; 685491#factEXIT >#66#return; 685490#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 685487#factFINAL assume true; 685457#factEXIT >#76#return; 685467#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 685484#$Ultimate##0 ~n := #in~n; 685515#L25 assume !(~n <= 0); 685493#L26 call #t~ret0 := fact(~n - 1);< 685502#$Ultimate##0 ~n := #in~n; 685147#L25 assume ~n <= 0;#res := 1; 685530#factFINAL assume true; 685491#factEXIT >#66#return; 685490#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 685487#factFINAL assume true; 685457#factEXIT >#78#return; 685456#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 685454#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 685452#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 685446#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 685443#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 684902#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 685135#$Ultimate##0 ~n := #in~n; 686588#L25 assume !(~n <= 0); 685282#L26 call #t~ret0 := fact(~n - 1);< 686585#$Ultimate##0 ~n := #in~n; 686584#L25 assume !(~n <= 0); 685285#L26 call #t~ret0 := fact(~n - 1);< 686565#$Ultimate##0 ~n := #in~n; 686584#L25 assume !(~n <= 0); 685285#L26 call #t~ret0 := fact(~n - 1);< 686565#$Ultimate##0 ~n := #in~n; 686174#L25 assume ~n <= 0;#res := 1; 686177#factFINAL assume true; 686169#factEXIT >#66#return; 686168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 686133#factFINAL assume true; 686125#factEXIT >#66#return; 685293#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 685291#factFINAL assume true; 685269#factEXIT >#66#return; 685287#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 685431#factFINAL assume true; 685417#factEXIT >#74#return; 685245#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 685390#$Ultimate##0 ~n := #in~n; 685557#L25 assume !(~n <= 0); 685280#L26 call #t~ret0 := fact(~n - 1);< 685290#$Ultimate##0 ~n := #in~n; 685869#L25 assume ~n <= 0;#res := 1; 685740#factFINAL assume true; 685547#factEXIT >#66#return; 685546#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 685415#factFINAL assume true; 685388#factEXIT >#76#return; 684920#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 684929#$Ultimate##0 ~n := #in~n; 686562#L25 assume !(~n <= 0); 685283#L26 call #t~ret0 := fact(~n - 1);< 686561#$Ultimate##0 ~n := #in~n; 687371#L25 assume !(~n <= 0); 685276#L26 call #t~ret0 := fact(~n - 1);< 686171#$Ultimate##0 ~n := #in~n; 686174#L25 assume ~n <= 0;#res := 1; 686177#factFINAL assume true; 686169#factEXIT >#66#return; 686168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 686133#factFINAL assume true; 686125#factEXIT >#66#return; 686128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687419#factFINAL assume true; 685233#factEXIT >#78#return; 685252#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 686462#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 686460#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 686458#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 683651#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 683644#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 683645#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 687206#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 684660#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 684666#$Ultimate##0 ~n := #in~n; 684716#L25 assume !(~n <= 0); 684680#L26 call #t~ret0 := fact(~n - 1);< 684714#$Ultimate##0 ~n := #in~n; 685138#L25 assume !(~n <= 0); 684682#L26 call #t~ret0 := fact(~n - 1);< 684933#$Ultimate##0 ~n := #in~n; 684862#L25 assume ~n <= 0;#res := 1; 684861#factFINAL assume true; 684777#factEXIT >#66#return; 684775#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684738#factFINAL assume true; 684674#factEXIT >#66#return; 684672#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684669#factFINAL assume true; 684658#factEXIT >#68#return; 684652#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 684656#$Ultimate##0 ~n := #in~n; 684847#L25 assume ~n <= 0;#res := 1; 684772#factFINAL assume true; 684647#factEXIT >#70#return; 684640#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 684646#$Ultimate##0 ~n := #in~n; 684811#L25 assume !(~n <= 0); 684406#L26 call #t~ret0 := fact(~n - 1);< 684519#$Ultimate##0 ~n := #in~n; 684574#L25 assume !(~n <= 0); 684531#L26 call #t~ret0 := fact(~n - 1);< 684534#$Ultimate##0 ~n := #in~n; 684547#L25 assume ~n <= 0;#res := 1; 684546#factFINAL assume true; 684530#factEXIT >#66#return; 684528#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684523#factFINAL assume true; 684395#factEXIT >#66#return; 684425#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684755#factFINAL assume true; 684634#factEXIT >#72#return; 684642#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 686164#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 686163#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 686162#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 686161#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 684501#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 684516#$Ultimate##0 ~n := #in~n; 684522#L25 assume !(~n <= 0); 684404#L26 call #t~ret0 := fact(~n - 1);< 684519#$Ultimate##0 ~n := #in~n; 684574#L25 assume !(~n <= 0); 684531#L26 call #t~ret0 := fact(~n - 1);< 684534#$Ultimate##0 ~n := #in~n; 684547#L25 assume ~n <= 0;#res := 1; 684546#factFINAL assume true; 684530#factEXIT >#66#return; 684528#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684523#factFINAL assume true; 684395#factEXIT >#66#return; 684423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684518#factFINAL assume true; 684497#factEXIT >#68#return; 684511#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 684573#$Ultimate##0 ~n := #in~n; 684771#L25 assume !(~n <= 0); 684370#L26 call #t~ret0 := fact(~n - 1);< 684428#$Ultimate##0 ~n := #in~n; 684392#L25 assume ~n <= 0;#res := 1; 684387#factFINAL assume true; 684363#factEXIT >#66#return; 684385#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684572#factFINAL assume true; 684556#factEXIT >#70#return; 684562#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 684568#$Ultimate##0 ~n := #in~n; 684774#L25 assume !(~n <= 0); 684380#L26 call #t~ret0 := fact(~n - 1);< 684386#$Ultimate##0 ~n := #in~n; 684392#L25 assume ~n <= 0;#res := 1; 684387#factFINAL assume true; 684363#factEXIT >#66#return; 684385#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684572#factFINAL assume true; 684556#factEXIT >#72#return; 684567#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 686156#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 686154#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 686153#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 686152#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 684504#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 684516#$Ultimate##0 ~n := #in~n; 684522#L25 assume !(~n <= 0); 684404#L26 call #t~ret0 := fact(~n - 1);< 684519#$Ultimate##0 ~n := #in~n; 684574#L25 assume !(~n <= 0); 684531#L26 call #t~ret0 := fact(~n - 1);< 684534#$Ultimate##0 ~n := #in~n; 684547#L25 assume ~n <= 0;#res := 1; 684546#factFINAL assume true; 684530#factEXIT >#66#return; 684528#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684523#factFINAL assume true; 684395#factEXIT >#66#return; 684423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684518#factFINAL assume true; 684497#factEXIT >#68#return; 684494#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 684496#$Ultimate##0 ~n := #in~n; 684569#L25 assume !(~n <= 0); 684416#L26 call #t~ret0 := fact(~n - 1);< 684552#$Ultimate##0 ~n := #in~n; 684550#L25 assume !(~n <= 0); 684396#L26 call #t~ret0 := fact(~n - 1);< 684532#$Ultimate##0 ~n := #in~n; 684547#L25 assume ~n <= 0;#res := 1; 684546#factFINAL assume true; 684530#factEXIT >#66#return; 684528#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684523#factFINAL assume true; 684395#factEXIT >#66#return; 684424#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684529#factFINAL assume true; 684489#factEXIT >#70#return; 684480#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 684488#$Ultimate##0 ~n := #in~n; 684576#L25 assume ~n <= 0;#res := 1; 684544#factFINAL assume true; 684476#factEXIT >#72#return; 684487#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 686148#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 686146#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 686145#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 684251#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 684248#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 684249#$Ultimate##0 ~n := #in~n; 686124#L25 assume !(~n <= 0); 684182#L26 call #t~ret0 := fact(~n - 1);< 684200#$Ultimate##0 ~n := #in~n; 685317#L25 assume !(~n <= 0); 684186#L26 call #t~ret0 := fact(~n - 1);< 687537#$Ultimate##0 ~n := #in~n; 685317#L25 assume !(~n <= 0); 684186#L26 call #t~ret0 := fact(~n - 1);< 687537#$Ultimate##0 ~n := #in~n; 684258#L25 assume ~n <= 0;#res := 1; 687540#factFINAL assume true; 687534#factEXIT >#66#return; 687532#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684241#factFINAL assume true; 684234#factEXIT >#66#return; 684238#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684253#factFINAL assume true; 684176#factEXIT >#66#return; 684199#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687530#factFINAL assume true; 684245#factEXIT >#74#return; 684139#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 684175#$Ultimate##0 ~n := #in~n; 685096#L25 assume !(~n <= 0); 684180#L26 call #t~ret0 := fact(~n - 1);< 684250#$Ultimate##0 ~n := #in~n; 684391#L25 assume !(~n <= 0); 684235#L26 call #t~ret0 := fact(~n - 1);< 684256#$Ultimate##0 ~n := #in~n; 684258#L25 assume ~n <= 0;#res := 1; 687540#factFINAL assume true; 687534#factEXIT >#66#return; 687532#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684241#factFINAL assume true; 684234#factEXIT >#66#return; 684239#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687544#factFINAL assume true; 684137#factEXIT >#76#return; 684078#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 684142#$Ultimate##0 ~n := #in~n; 684360#L25 assume !(~n <= 0); 684349#L26 call #t~ret0 := fact(~n - 1);< 684351#$Ultimate##0 ~n := #in~n; 684390#L25 assume ~n <= 0;#res := 1; 684356#factFINAL assume true; 684347#factEXIT >#66#return; 684350#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684337#factFINAL assume true; 684070#factEXIT >#78#return; 684062#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 684060#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 684058#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 684056#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 684055#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 684054#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 684053#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 684052#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 684049#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 684051#$Ultimate##0 ~n := #in~n; 684157#L25 assume !(~n <= 0); 683836#L26 call #t~ret0 := fact(~n - 1);< 684154#$Ultimate##0 ~n := #in~n; 687559#L25 assume !(~n <= 0); 683853#L26 call #t~ret0 := fact(~n - 1);< 683860#$Ultimate##0 ~n := #in~n; 684005#L25 assume !(~n <= 0); 683966#L26 call #t~ret0 := fact(~n - 1);< 683984#$Ultimate##0 ~n := #in~n; 684008#L25 assume !(~n <= 0); 683956#L26 call #t~ret0 := fact(~n - 1);< 683967#$Ultimate##0 ~n := #in~n; 683993#L25 assume !(~n <= 0); 683980#L26 call #t~ret0 := fact(~n - 1);< 683981#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683839#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684089#factFINAL assume true; 684048#factEXIT >#68#return; 684041#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 684047#$Ultimate##0 ~n := #in~n; 684145#L25 assume ~n <= 0;#res := 1; 684088#factFINAL assume true; 684038#factEXIT >#70#return; 684032#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 684037#$Ultimate##0 ~n := #in~n; 684440#L25 assume !(~n <= 0); 683668#L26 call #t~ret0 := fact(~n - 1);< 683677#$Ultimate##0 ~n := #in~n; 683664#L25 assume !(~n <= 0); 683666#L26 call #t~ret0 := fact(~n - 1);< 683859#$Ultimate##0 ~n := #in~n; 687618#L25 assume !(~n <= 0); 683796#L26 call #t~ret0 := fact(~n - 1);< 683873#$Ultimate##0 ~n := #in~n; 687617#L25 assume !(~n <= 0); 683794#L26 call #t~ret0 := fact(~n - 1);< 683847#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683841#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687829#factFINAL assume true; 684031#factEXIT >#72#return; 684028#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 684025#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 684022#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 684019#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 684016#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 683821#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 683830#$Ultimate##0 ~n := #in~n; 683848#L25 assume !(~n <= 0); 683838#L26 call #t~ret0 := fact(~n - 1);< 683842#$Ultimate##0 ~n := #in~n; 684006#L25 assume !(~n <= 0); 683855#L26 call #t~ret0 := fact(~n - 1);< 684004#$Ultimate##0 ~n := #in~n; 684003#L25 assume !(~n <= 0); 683973#L26 call #t~ret0 := fact(~n - 1);< 683976#$Ultimate##0 ~n := #in~n; 683999#L25 assume !(~n <= 0); 683953#L26 call #t~ret0 := fact(~n - 1);< 683997#$Ultimate##0 ~n := #in~n; 683993#L25 assume !(~n <= 0); 683980#L26 call #t~ret0 := fact(~n - 1);< 683981#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683831#factFINAL assume true; 683817#factEXIT >#68#return; 683703#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 683814#$Ultimate##0 ~n := #in~n; 683736#L25 assume !(~n <= 0); 683737#L26 call #t~ret0 := fact(~n - 1);< 683895#$Ultimate##0 ~n := #in~n; 683915#L25 assume ~n <= 0;#res := 1; 683907#factFINAL assume true; 683891#factEXIT >#66#return; 683890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683888#factFINAL assume true; 683861#factEXIT >#70#return; 683868#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 683914#$Ultimate##0 ~n := #in~n; 687561#L25 assume !(~n <= 0); 683854#L26 call #t~ret0 := fact(~n - 1);< 683874#$Ultimate##0 ~n := #in~n; 684000#L25 assume !(~n <= 0); 683952#L26 call #t~ret0 := fact(~n - 1);< 683959#$Ultimate##0 ~n := #in~n; 683994#L25 assume !(~n <= 0); 683954#L26 call #t~ret0 := fact(~n - 1);< 683967#$Ultimate##0 ~n := #in~n; 683993#L25 assume !(~n <= 0); 683980#L26 call #t~ret0 := fact(~n - 1);< 683981#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683913#factFINAL assume true; 683896#factEXIT >#72#return; 683902#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 683995#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 683992#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 683991#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 683990#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 683824#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 683830#$Ultimate##0 ~n := #in~n; 683848#L25 assume !(~n <= 0); 683838#L26 call #t~ret0 := fact(~n - 1);< 683842#$Ultimate##0 ~n := #in~n; 684006#L25 assume !(~n <= 0); 683855#L26 call #t~ret0 := fact(~n - 1);< 684004#$Ultimate##0 ~n := #in~n; 684003#L25 assume !(~n <= 0); 683973#L26 call #t~ret0 := fact(~n - 1);< 683976#$Ultimate##0 ~n := #in~n; 683999#L25 assume !(~n <= 0); 683953#L26 call #t~ret0 := fact(~n - 1);< 683997#$Ultimate##0 ~n := #in~n; 683993#L25 assume !(~n <= 0); 683980#L26 call #t~ret0 := fact(~n - 1);< 683981#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683831#factFINAL assume true; 683817#factEXIT >#68#return; 683746#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 683784#$Ultimate##0 ~n := #in~n; 683968#L25 assume !(~n <= 0); 683800#L26 call #t~ret0 := fact(~n - 1);< 683847#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683948#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683938#factFINAL assume true; 683927#factEXIT >#70#return; 683934#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 683950#$Ultimate##0 ~n := #in~n; 683989#L25 assume !(~n <= 0); 683974#L26 call #t~ret0 := fact(~n - 1);< 683976#$Ultimate##0 ~n := #in~n; 683999#L25 assume !(~n <= 0); 683953#L26 call #t~ret0 := fact(~n - 1);< 683997#$Ultimate##0 ~n := #in~n; 683993#L25 assume !(~n <= 0); 683980#L26 call #t~ret0 := fact(~n - 1);< 683981#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683960#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683949#factFINAL assume true; 683939#factEXIT >#72#return; 683947#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 683969#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 683963#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 683962#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 683961#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 683822#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 683830#$Ultimate##0 ~n := #in~n; 683848#L25 assume !(~n <= 0); 683838#L26 call #t~ret0 := fact(~n - 1);< 683842#$Ultimate##0 ~n := #in~n; 684006#L25 assume !(~n <= 0); 683855#L26 call #t~ret0 := fact(~n - 1);< 684004#$Ultimate##0 ~n := #in~n; 684003#L25 assume !(~n <= 0); 683973#L26 call #t~ret0 := fact(~n - 1);< 683976#$Ultimate##0 ~n := #in~n; 683999#L25 assume !(~n <= 0); 683953#L26 call #t~ret0 := fact(~n - 1);< 683997#$Ultimate##0 ~n := #in~n; 683993#L25 assume !(~n <= 0); 683980#L26 call #t~ret0 := fact(~n - 1);< 683981#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683831#factFINAL assume true; 683817#factEXIT >#68#return; 683758#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 683784#$Ultimate##0 ~n := #in~n; 683968#L25 assume !(~n <= 0); 683800#L26 call #t~ret0 := fact(~n - 1);< 683847#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683960#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683949#factFINAL assume true; 683939#factEXIT >#70#return; 683928#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 683937#$Ultimate##0 ~n := #in~n; 683971#L25 assume !(~n <= 0); 683955#L26 call #t~ret0 := fact(~n - 1);< 683959#$Ultimate##0 ~n := #in~n; 683994#L25 assume !(~n <= 0); 683954#L26 call #t~ret0 := fact(~n - 1);< 683967#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683948#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683938#factFINAL assume true; 683927#factEXIT >#72#return; 683925#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 683923#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 683921#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 683919#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 683918#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 683826#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 683830#$Ultimate##0 ~n := #in~n; 683848#L25 assume !(~n <= 0); 683838#L26 call #t~ret0 := fact(~n - 1);< 683842#$Ultimate##0 ~n := #in~n; 684006#L25 assume !(~n <= 0); 683855#L26 call #t~ret0 := fact(~n - 1);< 684004#$Ultimate##0 ~n := #in~n; 684003#L25 assume !(~n <= 0); 683973#L26 call #t~ret0 := fact(~n - 1);< 683976#$Ultimate##0 ~n := #in~n; 683999#L25 assume !(~n <= 0); 683953#L26 call #t~ret0 := fact(~n - 1);< 683997#$Ultimate##0 ~n := #in~n; 683993#L25 assume !(~n <= 0); 683980#L26 call #t~ret0 := fact(~n - 1);< 683981#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683831#factFINAL assume true; 683817#factEXIT >#68#return; 683757#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 683784#$Ultimate##0 ~n := #in~n; 683968#L25 assume !(~n <= 0); 683800#L26 call #t~ret0 := fact(~n - 1);< 683847#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683913#factFINAL assume true; 683896#factEXIT >#70#return; 683863#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 683871#$Ultimate##0 ~n := #in~n; 684001#L25 assume !(~n <= 0); 683893#L26 call #t~ret0 := fact(~n - 1);< 683998#$Ultimate##0 ~n := #in~n; 683915#L25 assume ~n <= 0;#res := 1; 683907#factFINAL assume true; 683891#factEXIT >#66#return; 683890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683888#factFINAL assume true; 683861#factEXIT >#72#return; 683851#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 683849#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 683843#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 683834#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 683832#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 683818#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 683830#$Ultimate##0 ~n := #in~n; 683848#L25 assume !(~n <= 0); 683838#L26 call #t~ret0 := fact(~n - 1);< 683842#$Ultimate##0 ~n := #in~n; 684006#L25 assume !(~n <= 0); 683855#L26 call #t~ret0 := fact(~n - 1);< 684004#$Ultimate##0 ~n := #in~n; 684003#L25 assume !(~n <= 0); 683973#L26 call #t~ret0 := fact(~n - 1);< 683976#$Ultimate##0 ~n := #in~n; 683999#L25 assume !(~n <= 0); 683953#L26 call #t~ret0 := fact(~n - 1);< 683997#$Ultimate##0 ~n := #in~n; 683993#L25 assume !(~n <= 0); 683980#L26 call #t~ret0 := fact(~n - 1);< 683981#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683831#factFINAL assume true; 683817#factEXIT >#68#return; 683766#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 683784#$Ultimate##0 ~n := #in~n; 683968#L25 assume !(~n <= 0); 683800#L26 call #t~ret0 := fact(~n - 1);< 683847#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683789#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683790#factFINAL assume true; 683738#factEXIT >#70#return; 683695#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 683734#$Ultimate##0 ~n := #in~n; 684002#L25 assume ~n <= 0;#res := 1; 683735#factFINAL assume true; 683686#factEXIT >#72#return; 683732#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 687694#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 687692#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 687688#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 687684#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 687649#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 683605#$Ultimate##0 ~n := #in~n; 687713#L25 assume !(~n <= 0); 683640#L26 call #t~ret0 := fact(~n - 1);< 683675#$Ultimate##0 ~n := #in~n; 683676#L25 assume !(~n <= 0); 683639#L26 call #t~ret0 := fact(~n - 1);< 683641#$Ultimate##0 ~n := #in~n; 687781#L25 assume !(~n <= 0); 687640#L26 call #t~ret0 := fact(~n - 1);< 687661#$Ultimate##0 ~n := #in~n; 687704#L25 assume !(~n <= 0); 687639#L26 call #t~ret0 := fact(~n - 1);< 687671#$Ultimate##0 ~n := #in~n; 687698#L25 assume !(~n <= 0); 687634#L26 call #t~ret0 := fact(~n - 1);< 687691#$Ultimate##0 ~n := #in~n; 687698#L25 assume !(~n <= 0); 687634#L26 call #t~ret0 := fact(~n - 1);< 687691#$Ultimate##0 ~n := #in~n; 687700#L25 assume ~n <= 0;#res := 1; 687696#factFINAL assume true; 687690#factEXIT >#66#return; 687687#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687683#factFINAL assume true; 687681#factEXIT >#66#return; 687680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687678#factFINAL assume true; 687670#factEXIT >#66#return; 687668#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687665#factFINAL assume true; 687659#factEXIT >#66#return; 687656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687652#factFINAL assume true; 687633#factEXIT >#66#return; 687642#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687676#factFINAL assume true; 687662#factEXIT >#66#return; 687657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687653#factFINAL assume true; 687644#factEXIT >#74#return; 687627#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 687679#$Ultimate##0 ~n := #in~n; 687677#L25 assume !(~n <= 0); 687638#L26 call #t~ret0 := fact(~n - 1);< 687643#$Ultimate##0 ~n := #in~n; 687698#L25 assume !(~n <= 0); 687634#L26 call #t~ret0 := fact(~n - 1);< 687691#$Ultimate##0 ~n := #in~n; 687698#L25 assume !(~n <= 0); 687634#L26 call #t~ret0 := fact(~n - 1);< 687691#$Ultimate##0 ~n := #in~n; 687698#L25 assume !(~n <= 0); 687634#L26 call #t~ret0 := fact(~n - 1);< 687691#$Ultimate##0 ~n := #in~n; 687698#L25 assume !(~n <= 0); 687634#L26 call #t~ret0 := fact(~n - 1);< 687691#$Ultimate##0 ~n := #in~n; 687698#L25 assume !(~n <= 0); 687634#L26 call #t~ret0 := fact(~n - 1);< 687691#$Ultimate##0 ~n := #in~n; 687700#L25 assume ~n <= 0;#res := 1; 687696#factFINAL assume true; 687690#factEXIT >#66#return; 687687#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687683#factFINAL assume true; 687681#factEXIT >#66#return; 687680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687678#factFINAL assume true; 687670#factEXIT >#66#return; 687668#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687665#factFINAL assume true; 687659#factEXIT >#66#return; 687656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687652#factFINAL assume true; 687633#factEXIT >#66#return; 687642#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687676#factFINAL assume true; 687662#factEXIT >#66#return; 687657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687653#factFINAL assume true; 687644#factEXIT >#76#return; 683636#L30-7 [2023-02-18 08:58:10,086 INFO L750 eck$LassoCheckResult]: Loop: 683636#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 683684#$Ultimate##0 ~n := #in~n; 687785#L25 assume !(~n <= 0); 683609#L26 call #t~ret0 := fact(~n - 1);< 683638#$Ultimate##0 ~n := #in~n; 683663#L25 assume ~n <= 0;#res := 1; 683623#factFINAL assume true; 683608#factEXIT >#66#return; 683611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687782#factFINAL assume true; 687615#factEXIT >#78#return; 683632#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 683633#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 683653#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 683670#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 683671#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 687898#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 687803#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 687804#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 683616#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 683627#$Ultimate##0 ~n := #in~n; 687789#L25 assume !(~n <= 0); 683803#L26 call #t~ret0 := fact(~n - 1);< 683816#$Ultimate##0 ~n := #in~n; 687784#L25 assume !(~n <= 0); 683665#L26 call #t~ret0 := fact(~n - 1);< 683677#$Ultimate##0 ~n := #in~n; 683664#L25 assume !(~n <= 0); 683666#L26 call #t~ret0 := fact(~n - 1);< 683859#$Ultimate##0 ~n := #in~n; 687618#L25 assume !(~n <= 0); 683796#L26 call #t~ret0 := fact(~n - 1);< 683873#$Ultimate##0 ~n := #in~n; 687617#L25 assume !(~n <= 0); 683794#L26 call #t~ret0 := fact(~n - 1);< 683847#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683815#factFINAL assume true; 683791#factEXIT >#66#return; 683810#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687779#factFINAL assume true; 683612#factEXIT >#68#return; 683619#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 684047#$Ultimate##0 ~n := #in~n; 684145#L25 assume ~n <= 0;#res := 1; 684088#factFINAL assume true; 684038#factEXIT >#70#return; 684043#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 684342#$Ultimate##0 ~n := #in~n; 684352#L25 assume !(~n <= 0); 683806#L26 call #t~ret0 := fact(~n - 1);< 684346#$Ultimate##0 ~n := #in~n; 687595#L25 assume !(~n <= 0); 683795#L26 call #t~ret0 := fact(~n - 1);< 687594#$Ultimate##0 ~n := #in~n; 687593#L25 assume !(~n <= 0); 683802#L26 call #t~ret0 := fact(~n - 1);< 687590#$Ultimate##0 ~n := #in~n; 687587#L25 assume !(~n <= 0); 683804#L26 call #t~ret0 := fact(~n - 1);< 683847#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683815#factFINAL assume true; 683791#factEXIT >#66#return; 683813#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 684340#factFINAL assume true; 684341#factEXIT >#72#return; 687827#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 687820#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 687821#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 687815#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 687816#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 687745#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 683629#$Ultimate##0 ~n := #in~n; 687786#L25 assume !(~n <= 0); 683792#L26 call #t~ret0 := fact(~n - 1);< 683816#$Ultimate##0 ~n := #in~n; 687784#L25 assume !(~n <= 0); 683665#L26 call #t~ret0 := fact(~n - 1);< 683677#$Ultimate##0 ~n := #in~n; 683664#L25 assume !(~n <= 0); 683666#L26 call #t~ret0 := fact(~n - 1);< 683859#$Ultimate##0 ~n := #in~n; 687618#L25 assume !(~n <= 0); 683796#L26 call #t~ret0 := fact(~n - 1);< 683873#$Ultimate##0 ~n := #in~n; 687617#L25 assume !(~n <= 0); 683794#L26 call #t~ret0 := fact(~n - 1);< 683847#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683815#factFINAL assume true; 683791#factEXIT >#66#return; 683809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687741#factFINAL assume true; 687777#factEXIT >#68#return; 683687#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 683814#$Ultimate##0 ~n := #in~n; 683736#L25 assume !(~n <= 0); 683737#L26 call #t~ret0 := fact(~n - 1);< 683895#$Ultimate##0 ~n := #in~n; 683915#L25 assume ~n <= 0;#res := 1; 683907#factFINAL assume true; 683891#factEXIT >#66#return; 683890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683888#factFINAL assume true; 683861#factEXIT >#70#return; 683772#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 683788#$Ultimate##0 ~n := #in~n; 683886#L25 assume !(~n <= 0); 683669#L26 call #t~ret0 := fact(~n - 1);< 683677#$Ultimate##0 ~n := #in~n; 683664#L25 assume !(~n <= 0); 683666#L26 call #t~ret0 := fact(~n - 1);< 683859#$Ultimate##0 ~n := #in~n; 687618#L25 assume !(~n <= 0); 683796#L26 call #t~ret0 := fact(~n - 1);< 683873#$Ultimate##0 ~n := #in~n; 687617#L25 assume !(~n <= 0); 683794#L26 call #t~ret0 := fact(~n - 1);< 683847#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683789#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683790#factFINAL assume true; 683738#factEXIT >#72#return; 683783#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 687813#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 687814#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 687808#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 687809#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 687762#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 683629#$Ultimate##0 ~n := #in~n; 687786#L25 assume !(~n <= 0); 683792#L26 call #t~ret0 := fact(~n - 1);< 683816#$Ultimate##0 ~n := #in~n; 687784#L25 assume !(~n <= 0); 683665#L26 call #t~ret0 := fact(~n - 1);< 683677#$Ultimate##0 ~n := #in~n; 683664#L25 assume !(~n <= 0); 683666#L26 call #t~ret0 := fact(~n - 1);< 683859#$Ultimate##0 ~n := #in~n; 687618#L25 assume !(~n <= 0); 683796#L26 call #t~ret0 := fact(~n - 1);< 683873#$Ultimate##0 ~n := #in~n; 687617#L25 assume !(~n <= 0); 683794#L26 call #t~ret0 := fact(~n - 1);< 683847#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683815#factFINAL assume true; 683791#factEXIT >#66#return; 683809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687741#factFINAL assume true; 687777#factEXIT >#68#return; 683730#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 683787#$Ultimate##0 ~n := #in~n; 683912#L25 assume !(~n <= 0); 683798#L26 call #t~ret0 := fact(~n - 1);< 683885#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683948#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683938#factFINAL assume true; 683927#factEXIT >#70#return; 683769#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 684339#$Ultimate##0 ~n := #in~n; 683964#L25 assume !(~n <= 0); 683805#L26 call #t~ret0 := fact(~n - 1);< 683873#$Ultimate##0 ~n := #in~n; 687617#L25 assume !(~n <= 0); 683794#L26 call #t~ret0 := fact(~n - 1);< 683847#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683815#factFINAL assume true; 683791#factEXIT >#66#return; 683811#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683785#factFINAL assume true; 683786#factEXIT >#72#return; 683780#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 687897#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 687895#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 687893#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 687891#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 687760#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 683629#$Ultimate##0 ~n := #in~n; 687786#L25 assume !(~n <= 0); 683792#L26 call #t~ret0 := fact(~n - 1);< 683816#$Ultimate##0 ~n := #in~n; 687784#L25 assume !(~n <= 0); 683665#L26 call #t~ret0 := fact(~n - 1);< 683677#$Ultimate##0 ~n := #in~n; 683664#L25 assume !(~n <= 0); 683666#L26 call #t~ret0 := fact(~n - 1);< 683859#$Ultimate##0 ~n := #in~n; 687618#L25 assume !(~n <= 0); 683796#L26 call #t~ret0 := fact(~n - 1);< 683873#$Ultimate##0 ~n := #in~n; 687617#L25 assume !(~n <= 0); 683794#L26 call #t~ret0 := fact(~n - 1);< 683847#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683815#factFINAL assume true; 683791#factEXIT >#66#return; 683809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687741#factFINAL assume true; 687777#factEXIT >#68#return; 683713#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 683787#$Ultimate##0 ~n := #in~n; 683912#L25 assume !(~n <= 0); 683798#L26 call #t~ret0 := fact(~n - 1);< 683885#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683960#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683949#factFINAL assume true; 683939#factEXIT >#70#return; 683756#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 683784#$Ultimate##0 ~n := #in~n; 683968#L25 assume !(~n <= 0); 683800#L26 call #t~ret0 := fact(~n - 1);< 683847#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683913#factFINAL assume true; 683896#factEXIT >#72#return; 683898#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 687909#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 687908#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 687907#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 687906#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 687758#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 683629#$Ultimate##0 ~n := #in~n; 687786#L25 assume !(~n <= 0); 683792#L26 call #t~ret0 := fact(~n - 1);< 683816#$Ultimate##0 ~n := #in~n; 687784#L25 assume !(~n <= 0); 683665#L26 call #t~ret0 := fact(~n - 1);< 683677#$Ultimate##0 ~n := #in~n; 683664#L25 assume !(~n <= 0); 683666#L26 call #t~ret0 := fact(~n - 1);< 683859#$Ultimate##0 ~n := #in~n; 687618#L25 assume !(~n <= 0); 683796#L26 call #t~ret0 := fact(~n - 1);< 683873#$Ultimate##0 ~n := #in~n; 687617#L25 assume !(~n <= 0); 683794#L26 call #t~ret0 := fact(~n - 1);< 683847#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683815#factFINAL assume true; 683791#factEXIT >#66#return; 683809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687741#factFINAL assume true; 687777#factEXIT >#68#return; 683716#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 683787#$Ultimate##0 ~n := #in~n; 683912#L25 assume !(~n <= 0); 683798#L26 call #t~ret0 := fact(~n - 1);< 683885#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683913#factFINAL assume true; 683896#factEXIT >#70#return; 683742#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 683784#$Ultimate##0 ~n := #in~n; 683968#L25 assume !(~n <= 0); 683800#L26 call #t~ret0 := fact(~n - 1);< 683847#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683960#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683949#factFINAL assume true; 683939#factEXIT >#72#return; 683944#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 687905#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 687904#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 687903#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 687902#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 687770#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 683629#$Ultimate##0 ~n := #in~n; 687786#L25 assume !(~n <= 0); 683792#L26 call #t~ret0 := fact(~n - 1);< 683816#$Ultimate##0 ~n := #in~n; 687784#L25 assume !(~n <= 0); 683665#L26 call #t~ret0 := fact(~n - 1);< 683677#$Ultimate##0 ~n := #in~n; 683664#L25 assume !(~n <= 0); 683666#L26 call #t~ret0 := fact(~n - 1);< 683859#$Ultimate##0 ~n := #in~n; 687618#L25 assume !(~n <= 0); 683796#L26 call #t~ret0 := fact(~n - 1);< 683873#$Ultimate##0 ~n := #in~n; 687617#L25 assume !(~n <= 0); 683794#L26 call #t~ret0 := fact(~n - 1);< 683847#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683815#factFINAL assume true; 683791#factEXIT >#66#return; 683809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687741#factFINAL assume true; 687777#factEXIT >#68#return; 683689#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 683787#$Ultimate##0 ~n := #in~n; 683912#L25 assume !(~n <= 0); 683798#L26 call #t~ret0 := fact(~n - 1);< 683885#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683789#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683790#factFINAL assume true; 683738#factEXIT >#70#return; 683750#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 683784#$Ultimate##0 ~n := #in~n; 683968#L25 assume !(~n <= 0); 683800#L26 call #t~ret0 := fact(~n - 1);< 683847#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683948#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683938#factFINAL assume true; 683927#factEXIT >#72#return; 683930#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 687881#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 687880#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 687878#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 687875#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 687749#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 683629#$Ultimate##0 ~n := #in~n; 687786#L25 assume !(~n <= 0); 683792#L26 call #t~ret0 := fact(~n - 1);< 683816#$Ultimate##0 ~n := #in~n; 687784#L25 assume !(~n <= 0); 683665#L26 call #t~ret0 := fact(~n - 1);< 683677#$Ultimate##0 ~n := #in~n; 683664#L25 assume !(~n <= 0); 683666#L26 call #t~ret0 := fact(~n - 1);< 683859#$Ultimate##0 ~n := #in~n; 687618#L25 assume !(~n <= 0); 683796#L26 call #t~ret0 := fact(~n - 1);< 683873#$Ultimate##0 ~n := #in~n; 687617#L25 assume !(~n <= 0); 683794#L26 call #t~ret0 := fact(~n - 1);< 683847#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683815#factFINAL assume true; 683791#factEXIT >#66#return; 683809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687741#factFINAL assume true; 687777#factEXIT >#68#return; 683705#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 683787#$Ultimate##0 ~n := #in~n; 683912#L25 assume !(~n <= 0); 683798#L26 call #t~ret0 := fact(~n - 1);< 683885#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683815#factFINAL assume true; 683791#factEXIT >#66#return; 683811#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683785#factFINAL assume true; 683786#factEXIT >#70#return; 683753#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 683889#$Ultimate##0 ~n := #in~n; 683911#L25 assume !(~n <= 0); 683798#L26 call #t~ret0 := fact(~n - 1);< 683885#$Ultimate##0 ~n := #in~n; 683915#L25 assume ~n <= 0;#res := 1; 683907#factFINAL assume true; 683891#factEXIT >#66#return; 683890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683888#factFINAL assume true; 683861#factEXIT >#72#return; 683866#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 687830#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 687825#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 687822#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 687802#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 687747#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 683629#$Ultimate##0 ~n := #in~n; 687786#L25 assume !(~n <= 0); 683792#L26 call #t~ret0 := fact(~n - 1);< 683816#$Ultimate##0 ~n := #in~n; 687784#L25 assume !(~n <= 0); 683665#L26 call #t~ret0 := fact(~n - 1);< 683677#$Ultimate##0 ~n := #in~n; 683664#L25 assume !(~n <= 0); 683666#L26 call #t~ret0 := fact(~n - 1);< 683859#$Ultimate##0 ~n := #in~n; 687618#L25 assume !(~n <= 0); 683796#L26 call #t~ret0 := fact(~n - 1);< 683873#$Ultimate##0 ~n := #in~n; 687617#L25 assume !(~n <= 0); 683794#L26 call #t~ret0 := fact(~n - 1);< 683847#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683815#factFINAL assume true; 683791#factEXIT >#66#return; 683809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687741#factFINAL assume true; 687777#factEXIT >#68#return; 683710#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 683787#$Ultimate##0 ~n := #in~n; 683912#L25 assume !(~n <= 0); 683798#L26 call #t~ret0 := fact(~n - 1);< 683885#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683996#L25 assume !(~n <= 0); 683799#L26 call #t~ret0 := fact(~n - 1);< 683982#$Ultimate##0 ~n := #in~n; 683988#L25 assume ~n <= 0;#res := 1; 683987#factFINAL assume true; 683979#factEXIT >#66#return; 683970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683965#factFINAL assume true; 683951#factEXIT >#66#return; 683957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683983#factFINAL assume true; 683972#factEXIT >#66#return; 683975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683872#factFINAL assume true; 683852#factEXIT >#66#return; 683850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683844#factFINAL assume true; 683835#factEXIT >#66#return; 683808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683815#factFINAL assume true; 683791#factEXIT >#66#return; 683811#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 683785#factFINAL assume true; 683786#factEXIT >#70#return; 683709#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 683787#$Ultimate##0 ~n := #in~n; 683912#L25 assume ~n <= 0;#res := 1; 683735#factFINAL assume true; 683686#factEXIT >#72#return; 683646#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 683647#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 683661#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 687734#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 687731#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 687645#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 687709#$Ultimate##0 ~n := #in~n; 687708#L25 assume !(~n <= 0); 687663#L26 call #t~ret0 := fact(~n - 1);< 687707#$Ultimate##0 ~n := #in~n; 687706#L25 assume !(~n <= 0); 687641#L26 call #t~ret0 := fact(~n - 1);< 687705#$Ultimate##0 ~n := #in~n; 687703#L25 assume !(~n <= 0); 687636#L26 call #t~ret0 := fact(~n - 1);< 687702#$Ultimate##0 ~n := #in~n; 687701#L25 assume !(~n <= 0); 687635#L26 call #t~ret0 := fact(~n - 1);< 687699#$Ultimate##0 ~n := #in~n; 687697#L25 assume !(~n <= 0); 687637#L26 call #t~ret0 := fact(~n - 1);< 687671#$Ultimate##0 ~n := #in~n; 687698#L25 assume !(~n <= 0); 687634#L26 call #t~ret0 := fact(~n - 1);< 687691#$Ultimate##0 ~n := #in~n; 687700#L25 assume ~n <= 0;#res := 1; 687696#factFINAL assume true; 687690#factEXIT >#66#return; 687687#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687683#factFINAL assume true; 687681#factEXIT >#66#return; 687680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687678#factFINAL assume true; 687670#factEXIT >#66#return; 687668#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687665#factFINAL assume true; 687659#factEXIT >#66#return; 687656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687652#factFINAL assume true; 687633#factEXIT >#66#return; 687642#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687676#factFINAL assume true; 687662#factEXIT >#66#return; 687657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687653#factFINAL assume true; 687644#factEXIT >#74#return; 687624#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 687679#$Ultimate##0 ~n := #in~n; 687677#L25 assume !(~n <= 0); 687638#L26 call #t~ret0 := fact(~n - 1);< 687643#$Ultimate##0 ~n := #in~n; 687698#L25 assume !(~n <= 0); 687634#L26 call #t~ret0 := fact(~n - 1);< 687691#$Ultimate##0 ~n := #in~n; 687698#L25 assume !(~n <= 0); 687634#L26 call #t~ret0 := fact(~n - 1);< 687691#$Ultimate##0 ~n := #in~n; 687698#L25 assume !(~n <= 0); 687634#L26 call #t~ret0 := fact(~n - 1);< 687691#$Ultimate##0 ~n := #in~n; 687698#L25 assume !(~n <= 0); 687634#L26 call #t~ret0 := fact(~n - 1);< 687691#$Ultimate##0 ~n := #in~n; 687698#L25 assume !(~n <= 0); 687634#L26 call #t~ret0 := fact(~n - 1);< 687691#$Ultimate##0 ~n := #in~n; 687700#L25 assume ~n <= 0;#res := 1; 687696#factFINAL assume true; 687690#factEXIT >#66#return; 687687#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687683#factFINAL assume true; 687681#factEXIT >#66#return; 687680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687678#factFINAL assume true; 687670#factEXIT >#66#return; 687668#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687665#factFINAL assume true; 687659#factEXIT >#66#return; 687656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687652#factFINAL assume true; 687633#factEXIT >#66#return; 687642#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687676#factFINAL assume true; 687662#factEXIT >#66#return; 687657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 687653#factFINAL assume true; 687644#factEXIT >#76#return; 683636#L30-7 [2023-02-18 08:58:10,086 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:10,086 INFO L85 PathProgramCache]: Analyzing trace with hash 1294601560, now seen corresponding path program 70 times [2023-02-18 08:58:10,086 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:10,087 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1111067381] [2023-02-18 08:58:10,087 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:10,087 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:10,107 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:10,107 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2049297964] [2023-02-18 08:58:10,107 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:58:10,107 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:10,107 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:10,111 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-18 08:58:10,111 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-18 08:58:10,801 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:58:10,801 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:58:10,809 INFO L263 TraceCheckSpWp]: Trace formula consists of 2377 conjuncts, 15 conjunts are in the unsatisfiable core [2023-02-18 08:58:10,815 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:10,862 INFO L134 CoverageAnalysis]: Checked inductivity of 73145 backedges. 37937 proven. 338 refuted. 0 times theorem prover too weak. 34870 trivial. 0 not checked. [2023-02-18 08:58:10,862 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:10,961 INFO L134 CoverageAnalysis]: Checked inductivity of 73145 backedges. 1787 proven. 1915 refuted. 0 times theorem prover too weak. 69443 trivial. 0 not checked. [2023-02-18 08:58:10,961 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:10,963 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1111067381] [2023-02-18 08:58:10,963 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:10,963 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2049297964] [2023-02-18 08:58:10,963 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2049297964] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:10,963 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:10,964 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 16 [2023-02-18 08:58:10,964 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1345692952] [2023-02-18 08:58:10,964 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:10,964 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:58:10,964 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:10,964 INFO L85 PathProgramCache]: Analyzing trace with hash 1939822659, now seen corresponding path program 70 times [2023-02-18 08:58:10,964 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:10,964 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1270156698] [2023-02-18 08:58:10,964 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:10,964 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:10,982 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:10,982 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1736380890] [2023-02-18 08:58:10,982 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:58:10,982 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:10,982 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:10,984 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-18 08:58:10,985 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-18 08:58:11,617 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:58:11,617 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:58:11,623 INFO L263 TraceCheckSpWp]: Trace formula consists of 1847 conjuncts, 35 conjunts are in the unsatisfiable core [2023-02-18 08:58:11,628 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:11,768 INFO L134 CoverageAnalysis]: Checked inductivity of 53411 backedges. 25205 proven. 1307 refuted. 0 times theorem prover too weak. 26899 trivial. 0 not checked. [2023-02-18 08:58:11,769 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:12,150 INFO L134 CoverageAnalysis]: Checked inductivity of 53411 backedges. 1046 proven. 6382 refuted. 0 times theorem prover too weak. 45983 trivial. 0 not checked. [2023-02-18 08:58:12,151 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:12,151 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1270156698] [2023-02-18 08:58:12,151 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:12,151 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1736380890] [2023-02-18 08:58:12,151 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1736380890] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:12,151 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:12,151 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 32] total 39 [2023-02-18 08:58:12,151 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [236153154] [2023-02-18 08:58:12,151 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:12,151 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:58:12,152 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:58:12,152 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 39 interpolants. [2023-02-18 08:58:12,152 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=185, Invalid=1297, Unknown=0, NotChecked=0, Total=1482 [2023-02-18 08:58:12,152 INFO L87 Difference]: Start difference. First operand 4350 states and 6457 transitions. cyclomatic complexity: 2147 Second operand has 39 states, 35 states have (on average 2.8) internal successors, (98), 39 states have internal predecessors, (98), 23 states have call successors, (44), 2 states have call predecessors, (44), 14 states have return successors, (52), 19 states have call predecessors, (52), 23 states have call successors, (52) [2023-02-18 08:58:14,843 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:58:14,843 INFO L93 Difference]: Finished difference Result 5866 states and 9142 transitions. [2023-02-18 08:58:14,843 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 5866 states and 9142 transitions. [2023-02-18 08:58:14,869 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 968 [2023-02-18 08:58:14,899 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 5866 states to 5864 states and 9131 transitions. [2023-02-18 08:58:14,899 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 334 [2023-02-18 08:58:14,900 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 334 [2023-02-18 08:58:14,900 INFO L73 IsDeterministic]: Start isDeterministic. Operand 5864 states and 9131 transitions. [2023-02-18 08:58:14,900 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:58:14,900 INFO L218 hiAutomatonCegarLoop]: Abstraction has 5864 states and 9131 transitions. [2023-02-18 08:58:14,902 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 5864 states and 9131 transitions. [2023-02-18 08:58:14,953 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 5864 to 4965. [2023-02-18 08:58:14,956 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4965 states, 3048 states have (on average 1.046259842519685) internal successors, (3189), 3040 states have internal predecessors, (3189), 1583 states have call successors, (1605), 446 states have call predecessors, (1605), 334 states have return successors, (2723), 1478 states have call predecessors, (2723), 1583 states have call successors, (2723) [2023-02-18 08:58:14,969 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4965 states to 4965 states and 7517 transitions. [2023-02-18 08:58:14,969 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4965 states and 7517 transitions. [2023-02-18 08:58:14,970 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 53 states. [2023-02-18 08:58:14,970 INFO L428 stractBuchiCegarLoop]: Abstraction has 4965 states and 7517 transitions. [2023-02-18 08:58:14,970 INFO L335 stractBuchiCegarLoop]: ======== Iteration 83 ============ [2023-02-18 08:58:14,970 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4965 states and 7517 transitions. [2023-02-18 08:58:14,979 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 673 [2023-02-18 08:58:14,979 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:58:14,979 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:58:14,982 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [172, 172, 116, 116, 116, 116, 56, 19, 18, 12, 12, 12, 12, 12, 12, 12, 12, 12, 7, 7, 7, 7, 7, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-18 08:58:14,982 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [140, 140, 113, 113, 113, 113, 27, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:58:14,983 INFO L748 eck$LassoCheckResult]: Stem: 705781#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 705727#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; 705728#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 705750#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; 705782#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 710206#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 710205#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 710202#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 710203#$Ultimate##0 ~n := #in~n; 710212#L25 assume ~n <= 0;#res := 1; 710211#factFINAL assume true; 710201#factEXIT >#68#return; 710142#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 710143#$Ultimate##0 ~n := #in~n; 710145#L25 assume ~n <= 0;#res := 1; 710144#factFINAL assume true; 710141#factEXIT >#70#return; 710139#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 710140#$Ultimate##0 ~n := #in~n; 710147#L25 assume ~n <= 0;#res := 1; 710146#factFINAL assume true; 710138#factEXIT >#72#return; 710136#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 710132#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 709988#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 709987#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 709986#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 708482#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 708483#$Ultimate##0 ~n := #in~n; 710137#L25 assume !(~n <= 0); 710134#L26 call #t~ret0 := fact(~n - 1);< 710135#$Ultimate##0 ~n := #in~n; 710150#L25 assume ~n <= 0;#res := 1; 710148#factFINAL assume true; 710133#factEXIT >#66#return; 710131#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 709984#factFINAL assume true; 708481#factEXIT >#74#return; 708476#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 708477#$Ultimate##0 ~n := #in~n; 709206#L25 assume ~n <= 0;#res := 1; 709148#factFINAL assume true; 708475#factEXIT >#76#return; 708473#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 708474#$Ultimate##0 ~n := #in~n; 709146#L25 assume !(~n <= 0); 709143#L26 call #t~ret0 := fact(~n - 1);< 709144#$Ultimate##0 ~n := #in~n; 709205#L25 assume ~n <= 0;#res := 1; 709147#factFINAL assume true; 709142#factEXIT >#66#return; 709140#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 709139#factFINAL assume true; 708472#factEXIT >#78#return; 708470#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 708468#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 708466#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 708464#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 708462#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 708439#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 708459#$Ultimate##0 ~n := #in~n; 708458#L25 assume !(~n <= 0); 708429#L26 call #t~ret0 := fact(~n - 1);< 708433#$Ultimate##0 ~n := #in~n; 708456#L25 assume !(~n <= 0); 708428#L26 call #t~ret0 := fact(~n - 1);< 708454#$Ultimate##0 ~n := #in~n; 709138#L25 assume ~n <= 0;#res := 1; 709137#factFINAL assume true; 708453#factEXIT >#66#return; 708448#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 708438#factFINAL assume true; 708427#factEXIT >#66#return; 708432#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 710554#factFINAL assume true; 709132#factEXIT >#74#return; 709130#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 709131#$Ultimate##0 ~n := #in~n; 709145#L25 assume ~n <= 0;#res := 1; 709141#factFINAL assume true; 709129#factEXIT >#76#return; 708401#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 708402#$Ultimate##0 ~n := #in~n; 708435#L25 assume !(~n <= 0); 708430#L26 call #t~ret0 := fact(~n - 1);< 708433#$Ultimate##0 ~n := #in~n; 708456#L25 assume !(~n <= 0); 708428#L26 call #t~ret0 := fact(~n - 1);< 708454#$Ultimate##0 ~n := #in~n; 709138#L25 assume ~n <= 0;#res := 1; 709137#factFINAL assume true; 708453#factEXIT >#66#return; 708448#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 708438#factFINAL assume true; 708427#factEXIT >#66#return; 708426#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 708424#factFINAL assume true; 708400#factEXIT >#78#return; 708399#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 708398#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 708396#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 708395#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 708393#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 708373#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 708374#$Ultimate##0 ~n := #in~n; 709155#L25 assume !(~n <= 0); 709152#L26 call #t~ret0 := fact(~n - 1);< 709153#$Ultimate##0 ~n := #in~n; 709211#L25 assume !(~n <= 0); 709151#L26 call #t~ret0 := fact(~n - 1);< 709210#$Ultimate##0 ~n := #in~n; 709211#L25 assume !(~n <= 0); 709151#L26 call #t~ret0 := fact(~n - 1);< 709210#$Ultimate##0 ~n := #in~n; 709266#L25 assume ~n <= 0;#res := 1; 709265#factFINAL assume true; 709216#factEXIT >#66#return; 709214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 709212#factFINAL assume true; 709209#factEXIT >#66#return; 709208#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 709207#factFINAL assume true; 709150#factEXIT >#66#return; 709149#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 708414#factFINAL assume true; 708372#factEXIT >#74#return; 708346#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 708347#$Ultimate##0 ~n := #in~n; 708356#L25 assume ~n <= 0;#res := 1; 708353#factFINAL assume true; 708345#factEXIT >#76#return; 705760#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 708279#$Ultimate##0 ~n := #in~n; 710358#L25 assume !(~n <= 0); 710335#L26 call #t~ret0 := fact(~n - 1);< 710339#$Ultimate##0 ~n := #in~n; 710349#L25 assume !(~n <= 0); 710332#L26 call #t~ret0 := fact(~n - 1);< 710360#$Ultimate##0 ~n := #in~n; 710349#L25 assume !(~n <= 0); 710332#L26 call #t~ret0 := fact(~n - 1);< 710360#$Ultimate##0 ~n := #in~n; 710365#L25 assume ~n <= 0;#res := 1; 710364#factFINAL assume true; 710359#factEXIT >#66#return; 710355#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 710353#factFINAL assume true; 710348#factEXIT >#66#return; 710347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 710338#factFINAL assume true; 710330#factEXIT >#66#return; 705759#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 705761#factFINAL assume true; 708569#factEXIT >#78#return; 708273#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 707851#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 707848#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 707845#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 707842#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 707839#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 707836#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 707754#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 707681#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 707686#$Ultimate##0 ~n := #in~n; 707744#L25 assume !(~n <= 0); 707717#L26 call #t~ret0 := fact(~n - 1);< 707730#$Ultimate##0 ~n := #in~n; 708247#L25 assume ~n <= 0;#res := 1; 708190#factFINAL assume true; 708179#factEXIT >#66#return; 708177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 708175#factFINAL assume true; 708174#factEXIT >#68#return; 708167#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 707677#$Ultimate##0 ~n := #in~n; 708178#L25 assume ~n <= 0;#res := 1; 708176#factFINAL assume true; 708166#factEXIT >#70#return; 708164#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 708165#$Ultimate##0 ~n := #in~n; 708250#L25 assume !(~n <= 0); 707702#L26 call #t~ret0 := fact(~n - 1);< 708196#$Ultimate##0 ~n := #in~n; 708247#L25 assume ~n <= 0;#res := 1; 708190#factFINAL assume true; 708179#factEXIT >#66#return; 708189#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 708197#factFINAL assume true; 708163#factEXIT >#72#return; 708162#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 708161#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 708160#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 708159#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 708158#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 708122#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 708157#$Ultimate##0 ~n := #in~n; 708204#L25 assume !(~n <= 0); 707700#L26 call #t~ret0 := fact(~n - 1);< 708196#$Ultimate##0 ~n := #in~n; 708247#L25 assume ~n <= 0;#res := 1; 708190#factFINAL assume true; 708179#factEXIT >#66#return; 708188#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 708244#factFINAL assume true; 708156#factEXIT >#68#return; 708061#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 708075#$Ultimate##0 ~n := #in~n; 708716#L25 assume !(~n <= 0); 707692#L26 call #t~ret0 := fact(~n - 1);< 707730#$Ultimate##0 ~n := #in~n; 708247#L25 assume ~n <= 0;#res := 1; 708190#factFINAL assume true; 708179#factEXIT >#66#return; 708184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 708152#factFINAL assume true; 708055#factEXIT >#70#return; 708041#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 708053#$Ultimate##0 ~n := #in~n; 708148#L25 assume ~n <= 0;#res := 1; 708147#factFINAL assume true; 708039#factEXIT >#72#return; 708038#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 708037#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 708035#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 708034#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 708033#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 708018#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 708029#$Ultimate##0 ~n := #in~n; 708104#L25 assume !(~n <= 0); 707699#L26 call #t~ret0 := fact(~n - 1);< 708096#$Ultimate##0 ~n := #in~n; 708415#L25 assume !(~n <= 0); 707712#L26 call #t~ret0 := fact(~n - 1);< 708412#$Ultimate##0 ~n := #in~n; 707753#L25 assume ~n <= 0;#res := 1; 707749#factFINAL assume true; 707740#factEXIT >#66#return; 707739#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707733#factFINAL assume true; 707690#factEXIT >#66#return; 707729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 708149#factFINAL assume true; 708054#factEXIT >#74#return; 707967#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 708028#$Ultimate##0 ~n := #in~n; 708249#L25 assume !(~n <= 0); 707703#L26 call #t~ret0 := fact(~n - 1);< 707730#$Ultimate##0 ~n := #in~n; 708247#L25 assume ~n <= 0;#res := 1; 708190#factFINAL assume true; 708179#factEXIT >#66#return; 708185#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 708077#factFINAL assume true; 708007#factEXIT >#76#return; 707993#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 708012#$Ultimate##0 ~n := #in~n; 708208#L25 assume !(~n <= 0); 708182#L26 call #t~ret0 := fact(~n - 1);< 708195#$Ultimate##0 ~n := #in~n; 708247#L25 assume ~n <= 0;#res := 1; 708190#factFINAL assume true; 708179#factEXIT >#66#return; 708185#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 708077#factFINAL assume true; 708007#factEXIT >#78#return; 708011#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 708025#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 708024#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 707927#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 707925#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 707867#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 707870#$Ultimate##0 ~n := #in~n; 708614#L25 assume !(~n <= 0); 707893#L26 call #t~ret0 := fact(~n - 1);< 709166#$Ultimate##0 ~n := #in~n; 708268#L25 assume !(~n <= 0); 707899#L26 call #t~ret0 := fact(~n - 1);< 707911#$Ultimate##0 ~n := #in~n; 708268#L25 assume !(~n <= 0); 707899#L26 call #t~ret0 := fact(~n - 1);< 707911#$Ultimate##0 ~n := #in~n; 707915#L25 assume ~n <= 0;#res := 1; 707913#factFINAL assume true; 707909#factEXIT >#66#return; 707908#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707906#factFINAL assume true; 707884#factEXIT >#66#return; 707904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 708030#factFINAL assume true; 707938#factEXIT >#66#return; 707936#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707923#factFINAL assume true; 707921#factEXIT >#74#return; 707780#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 707880#$Ultimate##0 ~n := #in~n; 709165#L25 assume !(~n <= 0); 707898#L26 call #t~ret0 := fact(~n - 1);< 709163#$Ultimate##0 ~n := #in~n; 707917#L25 assume ~n <= 0;#res := 1; 709162#factFINAL assume true; 709157#factEXIT >#66#return; 709082#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 709081#factFINAL assume true; 707767#factEXIT >#76#return; 707790#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 707920#$Ultimate##0 ~n := #in~n; 708146#L25 assume !(~n <= 0); 707885#L26 call #t~ret0 := fact(~n - 1);< 708027#$Ultimate##0 ~n := #in~n; 708026#L25 assume !(~n <= 0); 707889#L26 call #t~ret0 := fact(~n - 1);< 707930#$Ultimate##0 ~n := #in~n; 707915#L25 assume ~n <= 0;#res := 1; 707913#factFINAL assume true; 707909#factEXIT >#66#return; 707908#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707906#factFINAL assume true; 707884#factEXIT >#66#return; 707883#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707881#factFINAL assume true; 707872#factEXIT >#78#return; 707879#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 708991#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 708990#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 708988#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 708986#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 708984#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 708982#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 708981#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 707682#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 707686#$Ultimate##0 ~n := #in~n; 707744#L25 assume !(~n <= 0); 707717#L26 call #t~ret0 := fact(~n - 1);< 707730#$Ultimate##0 ~n := #in~n; 708710#L25 assume !(~n <= 0); 707716#L26 call #t~ret0 := fact(~n - 1);< 707742#$Ultimate##0 ~n := #in~n; 707753#L25 assume ~n <= 0;#res := 1; 707749#factFINAL assume true; 707740#factEXIT >#66#return; 707739#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707733#factFINAL assume true; 707690#factEXIT >#66#return; 707689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707688#factFINAL assume true; 707678#factEXIT >#68#return; 707669#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 707675#$Ultimate##0 ~n := #in~n; 707745#L25 assume ~n <= 0;#res := 1; 707738#factFINAL assume true; 707667#factEXIT >#70#return; 707642#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 707650#$Ultimate##0 ~n := #in~n; 707750#L25 assume !(~n <= 0); 707441#L26 call #t~ret0 := fact(~n - 1);< 707452#$Ultimate##0 ~n := #in~n; 710598#L25 assume !(~n <= 0); 707473#L26 call #t~ret0 := fact(~n - 1);< 707474#$Ultimate##0 ~n := #in~n; 707503#L25 assume ~n <= 0;#res := 1; 707497#factFINAL assume true; 707472#factEXIT >#66#return; 707471#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707454#factFINAL assume true; 707434#factEXIT >#66#return; 707450#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707737#factFINAL assume true; 707638#factEXIT >#72#return; 707648#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 708633#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 708628#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 708629#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 708622#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 707560#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 707578#$Ultimate##0 ~n := #in~n; 707800#L25 assume !(~n <= 0); 707440#L26 call #t~ret0 := fact(~n - 1);< 707452#$Ultimate##0 ~n := #in~n; 710598#L25 assume !(~n <= 0); 707473#L26 call #t~ret0 := fact(~n - 1);< 707474#$Ultimate##0 ~n := #in~n; 707503#L25 assume ~n <= 0;#res := 1; 707497#factFINAL assume true; 707472#factEXIT >#66#return; 707471#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707454#factFINAL assume true; 707434#factEXIT >#66#return; 707449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707579#factFINAL assume true; 707559#factEXIT >#68#return; 707572#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 707610#$Ultimate##0 ~n := #in~n; 709080#L25 assume !(~n <= 0); 707406#L26 call #t~ret0 := fact(~n - 1);< 707491#$Ultimate##0 ~n := #in~n; 707509#L25 assume ~n <= 0;#res := 1; 707498#factFINAL assume true; 707478#factEXIT >#66#return; 707486#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707609#factFINAL assume true; 707595#factEXIT >#70#return; 707600#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 707607#$Ultimate##0 ~n := #in~n; 709325#L25 assume !(~n <= 0); 707482#L26 call #t~ret0 := fact(~n - 1);< 707490#$Ultimate##0 ~n := #in~n; 707509#L25 assume ~n <= 0;#res := 1; 707498#factFINAL assume true; 707478#factEXIT >#66#return; 707486#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707609#factFINAL assume true; 707595#factEXIT >#72#return; 707605#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 708630#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 708631#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 708626#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 708627#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 707565#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 707578#$Ultimate##0 ~n := #in~n; 707800#L25 assume !(~n <= 0); 707440#L26 call #t~ret0 := fact(~n - 1);< 707452#$Ultimate##0 ~n := #in~n; 710598#L25 assume !(~n <= 0); 707473#L26 call #t~ret0 := fact(~n - 1);< 707474#$Ultimate##0 ~n := #in~n; 707503#L25 assume ~n <= 0;#res := 1; 707497#factFINAL assume true; 707472#factEXIT >#66#return; 707471#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707454#factFINAL assume true; 707434#factEXIT >#66#return; 707449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707579#factFINAL assume true; 707559#factEXIT >#68#return; 707555#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 707556#$Ultimate##0 ~n := #in~n; 707589#L25 assume !(~n <= 0); 707408#L26 call #t~ret0 := fact(~n - 1);< 707583#$Ultimate##0 ~n := #in~n; 707508#L25 assume !(~n <= 0); 707437#L26 call #t~ret0 := fact(~n - 1);< 707475#$Ultimate##0 ~n := #in~n; 707503#L25 assume ~n <= 0;#res := 1; 707497#factFINAL assume true; 707472#factEXIT >#66#return; 707471#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707454#factFINAL assume true; 707434#factEXIT >#66#return; 707451#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707558#factFINAL assume true; 707549#factEXIT >#70#return; 707531#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 707541#$Ultimate##0 ~n := #in~n; 707557#L25 assume ~n <= 0;#res := 1; 707548#factFINAL assume true; 707529#factEXIT >#72#return; 707536#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 710155#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 710130#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 709983#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 707467#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 707294#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 707297#$Ultimate##0 ~n := #in~n; 707453#L25 assume !(~n <= 0); 707199#L26 call #t~ret0 := fact(~n - 1);< 707206#$Ultimate##0 ~n := #in~n; 707258#L25 assume !(~n <= 0); 707191#L26 call #t~ret0 := fact(~n - 1);< 707253#$Ultimate##0 ~n := #in~n; 707258#L25 assume !(~n <= 0); 707191#L26 call #t~ret0 := fact(~n - 1);< 707253#$Ultimate##0 ~n := #in~n; 707271#L25 assume ~n <= 0;#res := 1; 707287#factFINAL assume true; 707251#factEXIT >#66#return; 707249#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707247#factFINAL assume true; 707233#factEXIT >#66#return; 707237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707210#factFINAL assume true; 707216#factEXIT >#66#return; 707241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707384#factFINAL assume true; 707293#factEXIT >#74#return; 707175#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 707177#$Ultimate##0 ~n := #in~n; 707997#L25 assume !(~n <= 0); 707212#L26 call #t~ret0 := fact(~n - 1);< 707219#$Ultimate##0 ~n := #in~n; 707288#L25 assume !(~n <= 0); 707234#L26 call #t~ret0 := fact(~n - 1);< 707242#$Ultimate##0 ~n := #in~n; 707271#L25 assume ~n <= 0;#res := 1; 707287#factFINAL assume true; 707251#factEXIT >#66#return; 707249#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707247#factFINAL assume true; 707233#factEXIT >#66#return; 707236#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707168#factFINAL assume true; 707176#factEXIT >#76#return; 707148#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 707250#$Ultimate##0 ~n := #in~n; 707248#L25 assume !(~n <= 0); 707228#L26 call #t~ret0 := fact(~n - 1);< 707246#$Ultimate##0 ~n := #in~n; 707270#L25 assume ~n <= 0;#res := 1; 707244#factFINAL assume true; 707225#factEXIT >#66#return; 707220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707221#factFINAL assume true; 707141#factEXIT >#78#return; 707155#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 710631#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 710630#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 710629#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 710628#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 710627#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 707076#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 707058#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 706517#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 706587#$Ultimate##0 ~n := #in~n; 706515#L25 assume !(~n <= 0); 706229#L26 call #t~ret0 := fact(~n - 1);< 710621#$Ultimate##0 ~n := #in~n; 710619#L25 assume !(~n <= 0); 706345#L26 call #t~ret0 := fact(~n - 1);< 710613#$Ultimate##0 ~n := #in~n; 710611#L25 assume !(~n <= 0); 706375#L26 call #t~ret0 := fact(~n - 1);< 710609#$Ultimate##0 ~n := #in~n; 710607#L25 assume !(~n <= 0); 706432#L26 call #t~ret0 := fact(~n - 1);< 706450#$Ultimate##0 ~n := #in~n; 710605#L25 assume !(~n <= 0); 706447#L26 call #t~ret0 := fact(~n - 1);< 706448#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706234#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706712#factFINAL assume true; 706709#factEXIT >#68#return; 706614#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 706620#$Ultimate##0 ~n := #in~n; 706626#L25 assume ~n <= 0;#res := 1; 706621#factFINAL assume true; 706607#factEXIT >#70#return; 706478#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 706489#$Ultimate##0 ~n := #in~n; 706485#L25 assume !(~n <= 0); 706198#L26 call #t~ret0 := fact(~n - 1);< 706251#$Ultimate##0 ~n := #in~n; 706471#L25 assume !(~n <= 0); 706206#L26 call #t~ret0 := fact(~n - 1);< 706464#$Ultimate##0 ~n := #in~n; 706462#L25 assume !(~n <= 0); 706196#L26 call #t~ret0 := fact(~n - 1);< 706351#$Ultimate##0 ~n := #in~n; 706460#L25 assume !(~n <= 0); 706195#L26 call #t~ret0 := fact(~n - 1);< 706252#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706697#factFINAL assume true; 706696#factEXIT >#72#return; 706602#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 706677#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 706678#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 706670#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 706671#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 706178#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 706186#$Ultimate##0 ~n := #in~n; 706586#L25 assume !(~n <= 0); 706231#L26 call #t~ret0 := fact(~n - 1);< 706237#$Ultimate##0 ~n := #in~n; 710597#L25 assume !(~n <= 0); 705769#L26 call #t~ret0 := fact(~n - 1);< 705776#$Ultimate##0 ~n := #in~n; 705768#L25 assume !(~n <= 0); 705770#L26 call #t~ret0 := fact(~n - 1);< 706381#$Ultimate##0 ~n := #in~n; 710653#L25 assume !(~n <= 0); 706431#L26 call #t~ret0 := fact(~n - 1);< 706437#$Ultimate##0 ~n := #in~n; 710605#L25 assume !(~n <= 0); 706447#L26 call #t~ret0 := fact(~n - 1);< 706448#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706226#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706224#factFINAL assume true; 706173#factEXIT >#68#return; 705888#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 706279#$Ultimate##0 ~n := #in~n; 705899#L25 assume !(~n <= 0); 705900#L26 call #t~ret0 := fact(~n - 1);< 706340#$Ultimate##0 ~n := #in~n; 706353#L25 assume ~n <= 0;#res := 1; 706336#factFINAL assume true; 706326#factEXIT >#66#return; 706322#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706278#factFINAL assume true; 706264#factEXIT >#70#return; 706271#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 706488#$Ultimate##0 ~n := #in~n; 706908#L25 assume !(~n <= 0); 706347#L26 call #t~ret0 := fact(~n - 1);< 710612#$Ultimate##0 ~n := #in~n; 710610#L25 assume !(~n <= 0); 706376#L26 call #t~ret0 := fact(~n - 1);< 710608#$Ultimate##0 ~n := #in~n; 710607#L25 assume !(~n <= 0); 706432#L26 call #t~ret0 := fact(~n - 1);< 706450#$Ultimate##0 ~n := #in~n; 710605#L25 assume !(~n <= 0); 706447#L26 call #t~ret0 := fact(~n - 1);< 706448#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706333#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706323#factFINAL assume true; 706281#factEXIT >#72#return; 706297#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 706475#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 706473#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 706469#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 706466#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 706180#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 706186#$Ultimate##0 ~n := #in~n; 706586#L25 assume !(~n <= 0); 706231#L26 call #t~ret0 := fact(~n - 1);< 706237#$Ultimate##0 ~n := #in~n; 710597#L25 assume !(~n <= 0); 705769#L26 call #t~ret0 := fact(~n - 1);< 705776#$Ultimate##0 ~n := #in~n; 705768#L25 assume !(~n <= 0); 705770#L26 call #t~ret0 := fact(~n - 1);< 706381#$Ultimate##0 ~n := #in~n; 710653#L25 assume !(~n <= 0); 706431#L26 call #t~ret0 := fact(~n - 1);< 706437#$Ultimate##0 ~n := #in~n; 710605#L25 assume !(~n <= 0); 706447#L26 call #t~ret0 := fact(~n - 1);< 706448#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706226#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706224#factFINAL assume true; 706173#factEXIT >#68#return; 705910#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 706065#$Ultimate##0 ~n := #in~n; 706498#L25 assume !(~n <= 0); 706212#L26 call #t~ret0 := fact(~n - 1);< 706252#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706435#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706405#factFINAL assume true; 706382#factEXIT >#70#return; 706398#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 706406#$Ultimate##0 ~n := #in~n; 706404#L25 assume !(~n <= 0); 706377#L26 call #t~ret0 := fact(~n - 1);< 706381#$Ultimate##0 ~n := #in~n; 710653#L25 assume !(~n <= 0); 706431#L26 call #t~ret0 := fact(~n - 1);< 706437#$Ultimate##0 ~n := #in~n; 710605#L25 assume !(~n <= 0); 706447#L26 call #t~ret0 := fact(~n - 1);< 706448#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706380#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706442#factFINAL assume true; 706407#factEXIT >#72#return; 706424#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 706459#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 706458#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 706455#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 706454#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 706175#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 706186#$Ultimate##0 ~n := #in~n; 706586#L25 assume !(~n <= 0); 706231#L26 call #t~ret0 := fact(~n - 1);< 706237#$Ultimate##0 ~n := #in~n; 710597#L25 assume !(~n <= 0); 705769#L26 call #t~ret0 := fact(~n - 1);< 705776#$Ultimate##0 ~n := #in~n; 705768#L25 assume !(~n <= 0); 705770#L26 call #t~ret0 := fact(~n - 1);< 706381#$Ultimate##0 ~n := #in~n; 710653#L25 assume !(~n <= 0); 706431#L26 call #t~ret0 := fact(~n - 1);< 706437#$Ultimate##0 ~n := #in~n; 710605#L25 assume !(~n <= 0); 706447#L26 call #t~ret0 := fact(~n - 1);< 706448#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706226#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706224#factFINAL assume true; 706173#factEXIT >#68#return; 705954#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 706065#$Ultimate##0 ~n := #in~n; 706498#L25 assume !(~n <= 0); 706212#L26 call #t~ret0 := fact(~n - 1);< 706252#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706380#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706442#factFINAL assume true; 706407#factEXIT >#70#return; 706384#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 706400#$Ultimate##0 ~n := #in~n; 706456#L25 assume !(~n <= 0); 706430#L26 call #t~ret0 := fact(~n - 1);< 706444#$Ultimate##0 ~n := #in~n; 710606#L25 assume !(~n <= 0); 706433#L26 call #t~ret0 := fact(~n - 1);< 706450#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706435#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706405#factFINAL assume true; 706382#factEXIT >#72#return; 706372#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 706370#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 706352#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 706335#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 706334#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 706176#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 706186#$Ultimate##0 ~n := #in~n; 706586#L25 assume !(~n <= 0); 706231#L26 call #t~ret0 := fact(~n - 1);< 706237#$Ultimate##0 ~n := #in~n; 710597#L25 assume !(~n <= 0); 705769#L26 call #t~ret0 := fact(~n - 1);< 705776#$Ultimate##0 ~n := #in~n; 705768#L25 assume !(~n <= 0); 705770#L26 call #t~ret0 := fact(~n - 1);< 706381#$Ultimate##0 ~n := #in~n; 710653#L25 assume !(~n <= 0); 706431#L26 call #t~ret0 := fact(~n - 1);< 706437#$Ultimate##0 ~n := #in~n; 710605#L25 assume !(~n <= 0); 706447#L26 call #t~ret0 := fact(~n - 1);< 706448#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706226#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706224#factFINAL assume true; 706173#factEXIT >#68#return; 705905#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 706065#$Ultimate##0 ~n := #in~n; 706498#L25 assume !(~n <= 0); 706212#L26 call #t~ret0 := fact(~n - 1);< 706252#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706333#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706323#factFINAL assume true; 706281#factEXIT >#70#return; 706265#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 706276#$Ultimate##0 ~n := #in~n; 706514#L25 assume !(~n <= 0); 706328#L26 call #t~ret0 := fact(~n - 1);< 706331#$Ultimate##0 ~n := #in~n; 706353#L25 assume ~n <= 0;#res := 1; 706336#factFINAL assume true; 706326#factEXIT >#66#return; 706322#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706278#factFINAL assume true; 706264#factEXIT >#72#return; 706262#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 706260#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 706238#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 706227#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 706225#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 706182#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 706186#$Ultimate##0 ~n := #in~n; 706586#L25 assume !(~n <= 0); 706231#L26 call #t~ret0 := fact(~n - 1);< 706237#$Ultimate##0 ~n := #in~n; 710597#L25 assume !(~n <= 0); 705769#L26 call #t~ret0 := fact(~n - 1);< 705776#$Ultimate##0 ~n := #in~n; 705768#L25 assume !(~n <= 0); 705770#L26 call #t~ret0 := fact(~n - 1);< 706381#$Ultimate##0 ~n := #in~n; 710653#L25 assume !(~n <= 0); 706431#L26 call #t~ret0 := fact(~n - 1);< 706437#$Ultimate##0 ~n := #in~n; 710605#L25 assume !(~n <= 0); 706447#L26 call #t~ret0 := fact(~n - 1);< 706448#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706226#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706224#factFINAL assume true; 706173#factEXIT >#68#return; 705932#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 706065#$Ultimate##0 ~n := #in~n; 706498#L25 assume !(~n <= 0); 706212#L26 call #t~ret0 := fact(~n - 1);< 706252#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706171#factFINAL assume true; 705903#factEXIT >#70#return; 705858#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 705897#$Ultimate##0 ~n := #in~n; 705901#L25 assume ~n <= 0;#res := 1; 705898#factFINAL assume true; 705784#factEXIT >#72#return; 705895#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 707133#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 707132#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 707131#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 707130#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 706683#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 706691#$Ultimate##0 ~n := #in~n; 706689#L25 assume !(~n <= 0); 706672#L26 call #t~ret0 := fact(~n - 1);< 706680#$Ultimate##0 ~n := #in~n; 706681#L25 assume !(~n <= 0); 706664#L26 call #t~ret0 := fact(~n - 1);< 706668#$Ultimate##0 ~n := #in~n; 706669#L25 assume !(~n <= 0); 706647#L26 call #t~ret0 := fact(~n - 1);< 706662#$Ultimate##0 ~n := #in~n; 706663#L25 assume !(~n <= 0); 706642#L26 call #t~ret0 := fact(~n - 1);< 706644#$Ultimate##0 ~n := #in~n; 706639#L25 assume !(~n <= 0); 706638#L26 call #t~ret0 := fact(~n - 1);< 706637#$Ultimate##0 ~n := #in~n; 706639#L25 assume !(~n <= 0); 706638#L26 call #t~ret0 := fact(~n - 1);< 706637#$Ultimate##0 ~n := #in~n; 706640#L25 assume ~n <= 0;#res := 1; 706750#factFINAL assume true; 706749#factEXIT >#66#return; 706748#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706747#factFINAL assume true; 706745#factEXIT >#66#return; 706744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706743#factFINAL assume true; 706741#factEXIT >#66#return; 706740#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706739#factFINAL assume true; 706736#factEXIT >#66#return; 706734#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706732#factFINAL assume true; 706726#factEXIT >#66#return; 706727#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707091#factFINAL assume true; 706891#factEXIT >#66#return; 706890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706889#factFINAL assume true; 706723#factEXIT >#74#return; 706656#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 705778#$Ultimate##0 ~n := #in~n; 706658#L25 assume !(~n <= 0); 706643#L26 call #t~ret0 := fact(~n - 1);< 706646#$Ultimate##0 ~n := #in~n; 706639#L25 assume !(~n <= 0); 706638#L26 call #t~ret0 := fact(~n - 1);< 706637#$Ultimate##0 ~n := #in~n; 706639#L25 assume !(~n <= 0); 706638#L26 call #t~ret0 := fact(~n - 1);< 706637#$Ultimate##0 ~n := #in~n; 706639#L25 assume !(~n <= 0); 706638#L26 call #t~ret0 := fact(~n - 1);< 706637#$Ultimate##0 ~n := #in~n; 706639#L25 assume !(~n <= 0); 706638#L26 call #t~ret0 := fact(~n - 1);< 706637#$Ultimate##0 ~n := #in~n; 706639#L25 assume !(~n <= 0); 706638#L26 call #t~ret0 := fact(~n - 1);< 706637#$Ultimate##0 ~n := #in~n; 706640#L25 assume ~n <= 0;#res := 1; 706750#factFINAL assume true; 706749#factEXIT >#66#return; 706748#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706747#factFINAL assume true; 706745#factEXIT >#66#return; 706744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706743#factFINAL assume true; 706741#factEXIT >#66#return; 706740#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706739#factFINAL assume true; 706736#factEXIT >#66#return; 706734#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706732#factFINAL assume true; 706726#factEXIT >#66#return; 706727#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707091#factFINAL assume true; 706891#factEXIT >#66#return; 706890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706889#factFINAL assume true; 706723#factEXIT >#76#return; 705734#L30-7 [2023-02-18 08:58:14,983 INFO L750 eck$LassoCheckResult]: Loop: 705734#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 705774#$Ultimate##0 ~n := #in~n; 705775#L25 assume !(~n <= 0); 705733#L26 call #t~ret0 := fact(~n - 1);< 705736#$Ultimate##0 ~n := #in~n; 705765#L25 assume ~n <= 0;#res := 1; 705767#factFINAL assume true; 707128#factEXIT >#66#return; 707127#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707126#factFINAL assume true; 707123#factEXIT >#78#return; 707124#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 710596#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 707089#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 707087#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 706776#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 706775#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 706774#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 706773#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 706625#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 706631#$Ultimate##0 ~n := #in~n; 706629#L25 assume !(~n <= 0); 706211#L26 call #t~ret0 := fact(~n - 1);< 706220#$Ultimate##0 ~n := #in~n; 706487#L25 assume !(~n <= 0); 706208#L26 call #t~ret0 := fact(~n - 1);< 706251#$Ultimate##0 ~n := #in~n; 706471#L25 assume !(~n <= 0); 706206#L26 call #t~ret0 := fact(~n - 1);< 706464#$Ultimate##0 ~n := #in~n; 706462#L25 assume !(~n <= 0); 706196#L26 call #t~ret0 := fact(~n - 1);< 706351#$Ultimate##0 ~n := #in~n; 706460#L25 assume !(~n <= 0); 706195#L26 call #t~ret0 := fact(~n - 1);< 706252#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706240#factFINAL assume true; 706191#factEXIT >#66#return; 706219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706939#factFINAL assume true; 706938#factEXIT >#68#return; 706611#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 706620#$Ultimate##0 ~n := #in~n; 706626#L25 assume ~n <= 0;#res := 1; 706621#factFINAL assume true; 706607#factEXIT >#70#return; 706242#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 706606#$Ultimate##0 ~n := #in~n; 706808#L25 assume !(~n <= 0); 706203#L26 call #t~ret0 := fact(~n - 1);< 706249#$Ultimate##0 ~n := #in~n; 706505#L25 assume !(~n <= 0); 706202#L26 call #t~ret0 := fact(~n - 1);< 706261#$Ultimate##0 ~n := #in~n; 707263#L25 assume !(~n <= 0); 706200#L26 call #t~ret0 := fact(~n - 1);< 706357#$Ultimate##0 ~n := #in~n; 706511#L25 assume !(~n <= 0); 706204#L26 call #t~ret0 := fact(~n - 1);< 706252#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706240#factFINAL assume true; 706191#factEXIT >#66#return; 706217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706708#factFINAL assume true; 706594#factEXIT >#72#return; 706597#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 707224#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 707166#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 707167#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 707178#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 706152#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 706188#$Ultimate##0 ~n := #in~n; 706495#L25 assume !(~n <= 0); 706209#L26 call #t~ret0 := fact(~n - 1);< 706220#$Ultimate##0 ~n := #in~n; 706487#L25 assume !(~n <= 0); 706208#L26 call #t~ret0 := fact(~n - 1);< 706251#$Ultimate##0 ~n := #in~n; 706471#L25 assume !(~n <= 0); 706206#L26 call #t~ret0 := fact(~n - 1);< 706464#$Ultimate##0 ~n := #in~n; 706462#L25 assume !(~n <= 0); 706196#L26 call #t~ret0 := fact(~n - 1);< 706351#$Ultimate##0 ~n := #in~n; 706460#L25 assume !(~n <= 0); 706195#L26 call #t~ret0 := fact(~n - 1);< 706252#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706240#factFINAL assume true; 706191#factEXIT >#66#return; 706216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706585#factFINAL assume true; 706530#factEXIT >#66#return; 706529#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706527#factFINAL assume true; 706522#factEXIT >#68#return; 705789#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 706279#$Ultimate##0 ~n := #in~n; 705899#L25 assume !(~n <= 0); 705900#L26 call #t~ret0 := fact(~n - 1);< 706340#$Ultimate##0 ~n := #in~n; 706353#L25 assume ~n <= 0;#res := 1; 706336#factFINAL assume true; 706326#factEXIT >#66#return; 706322#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706278#factFINAL assume true; 706264#factEXIT >#70#return; 705976#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 706172#$Ultimate##0 ~n := #in~n; 706805#L25 assume !(~n <= 0); 706199#L26 call #t~ret0 := fact(~n - 1);< 706251#$Ultimate##0 ~n := #in~n; 706471#L25 assume !(~n <= 0); 706206#L26 call #t~ret0 := fact(~n - 1);< 706464#$Ultimate##0 ~n := #in~n; 706462#L25 assume !(~n <= 0); 706196#L26 call #t~ret0 := fact(~n - 1);< 706351#$Ultimate##0 ~n := #in~n; 706460#L25 assume !(~n <= 0); 706195#L26 call #t~ret0 := fact(~n - 1);< 706252#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706171#factFINAL assume true; 705903#factEXIT >#72#return; 706060#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 707074#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 707070#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 707071#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 707066#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 706113#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 706170#$Ultimate##0 ~n := #in~n; 706325#L25 assume !(~n <= 0); 706194#L26 call #t~ret0 := fact(~n - 1);< 706277#$Ultimate##0 ~n := #in~n; 706263#L25 assume !(~n <= 0); 706232#L26 call #t~ret0 := fact(~n - 1);< 706237#$Ultimate##0 ~n := #in~n; 710597#L25 assume !(~n <= 0); 705769#L26 call #t~ret0 := fact(~n - 1);< 705776#$Ultimate##0 ~n := #in~n; 705768#L25 assume !(~n <= 0); 705770#L26 call #t~ret0 := fact(~n - 1);< 706381#$Ultimate##0 ~n := #in~n; 710653#L25 assume !(~n <= 0); 706431#L26 call #t~ret0 := fact(~n - 1);< 706437#$Ultimate##0 ~n := #in~n; 710605#L25 assume !(~n <= 0); 706447#L26 call #t~ret0 := fact(~n - 1);< 706448#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706240#factFINAL assume true; 706191#factEXIT >#66#return; 706189#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706187#factFINAL assume true; 706067#factEXIT >#68#return; 706007#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 706066#$Ultimate##0 ~n := #in~n; 706510#L25 assume !(~n <= 0); 706193#L26 call #t~ret0 := fact(~n - 1);< 706252#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706435#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706405#factFINAL assume true; 706382#factEXIT >#70#return; 706282#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 706324#$Ultimate##0 ~n := #in~n; 706907#L25 assume !(~n <= 0); 706346#L26 call #t~ret0 := fact(~n - 1);< 706906#$Ultimate##0 ~n := #in~n; 706905#L25 assume !(~n <= 0); 706379#L26 call #t~ret0 := fact(~n - 1);< 706494#$Ultimate##0 ~n := #in~n; 706493#L25 assume !(~n <= 0); 706434#L26 call #t~ret0 := fact(~n - 1);< 706450#$Ultimate##0 ~n := #in~n; 710605#L25 assume !(~n <= 0); 706447#L26 call #t~ret0 := fact(~n - 1);< 706448#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706333#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706323#factFINAL assume true; 706281#factEXIT >#72#return; 706032#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 707081#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 707078#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 707077#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 706981#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 706071#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 706170#$Ultimate##0 ~n := #in~n; 706325#L25 assume !(~n <= 0); 706194#L26 call #t~ret0 := fact(~n - 1);< 706277#$Ultimate##0 ~n := #in~n; 706263#L25 assume !(~n <= 0); 706232#L26 call #t~ret0 := fact(~n - 1);< 706237#$Ultimate##0 ~n := #in~n; 710597#L25 assume !(~n <= 0); 705769#L26 call #t~ret0 := fact(~n - 1);< 705776#$Ultimate##0 ~n := #in~n; 705768#L25 assume !(~n <= 0); 705770#L26 call #t~ret0 := fact(~n - 1);< 706381#$Ultimate##0 ~n := #in~n; 710653#L25 assume !(~n <= 0); 706431#L26 call #t~ret0 := fact(~n - 1);< 706437#$Ultimate##0 ~n := #in~n; 710605#L25 assume !(~n <= 0); 706447#L26 call #t~ret0 := fact(~n - 1);< 706448#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706240#factFINAL assume true; 706191#factEXIT >#66#return; 706189#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706187#factFINAL assume true; 706067#factEXIT >#68#return; 705912#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 706066#$Ultimate##0 ~n := #in~n; 706510#L25 assume !(~n <= 0); 706193#L26 call #t~ret0 := fact(~n - 1);< 706252#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706380#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706442#factFINAL assume true; 706407#factEXIT >#70#return; 706286#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 706441#$Ultimate##0 ~n := #in~n; 706440#L25 assume !(~n <= 0); 706348#L26 call #t~ret0 := fact(~n - 1);< 706403#$Ultimate##0 ~n := #in~n; 706451#L25 assume !(~n <= 0); 706378#L26 call #t~ret0 := fact(~n - 1);< 706438#$Ultimate##0 ~n := #in~n; 706493#L25 assume !(~n <= 0); 706434#L26 call #t~ret0 := fact(~n - 1);< 706450#$Ultimate##0 ~n := #in~n; 710605#L25 assume !(~n <= 0); 706447#L26 call #t~ret0 := fact(~n - 1);< 706448#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706333#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706323#factFINAL assume true; 706281#factEXIT >#72#return; 706308#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 706968#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 706946#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 706945#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 706924#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 706092#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 706170#$Ultimate##0 ~n := #in~n; 706325#L25 assume !(~n <= 0); 706194#L26 call #t~ret0 := fact(~n - 1);< 706277#$Ultimate##0 ~n := #in~n; 706263#L25 assume !(~n <= 0); 706232#L26 call #t~ret0 := fact(~n - 1);< 706237#$Ultimate##0 ~n := #in~n; 710597#L25 assume !(~n <= 0); 705769#L26 call #t~ret0 := fact(~n - 1);< 705776#$Ultimate##0 ~n := #in~n; 705768#L25 assume !(~n <= 0); 705770#L26 call #t~ret0 := fact(~n - 1);< 706381#$Ultimate##0 ~n := #in~n; 710653#L25 assume !(~n <= 0); 706431#L26 call #t~ret0 := fact(~n - 1);< 706437#$Ultimate##0 ~n := #in~n; 710605#L25 assume !(~n <= 0); 706447#L26 call #t~ret0 := fact(~n - 1);< 706448#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706240#factFINAL assume true; 706191#factEXIT >#66#return; 706189#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706187#factFINAL assume true; 706067#factEXIT >#68#return; 705981#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 706066#$Ultimate##0 ~n := #in~n; 706510#L25 assume !(~n <= 0); 706193#L26 call #t~ret0 := fact(~n - 1);< 706252#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706333#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706323#factFINAL assume true; 706281#factEXIT >#70#return; 706292#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 706441#$Ultimate##0 ~n := #in~n; 706440#L25 assume !(~n <= 0); 706348#L26 call #t~ret0 := fact(~n - 1);< 706403#$Ultimate##0 ~n := #in~n; 706451#L25 assume !(~n <= 0); 706378#L26 call #t~ret0 := fact(~n - 1);< 706438#$Ultimate##0 ~n := #in~n; 706493#L25 assume !(~n <= 0); 706434#L26 call #t~ret0 := fact(~n - 1);< 706450#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706380#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706442#factFINAL assume true; 706407#factEXIT >#72#return; 706417#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 706920#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 706918#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 706917#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 706830#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 706168#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 706170#$Ultimate##0 ~n := #in~n; 706325#L25 assume !(~n <= 0); 706194#L26 call #t~ret0 := fact(~n - 1);< 706277#$Ultimate##0 ~n := #in~n; 706263#L25 assume !(~n <= 0); 706232#L26 call #t~ret0 := fact(~n - 1);< 706237#$Ultimate##0 ~n := #in~n; 710597#L25 assume !(~n <= 0); 705769#L26 call #t~ret0 := fact(~n - 1);< 705776#$Ultimate##0 ~n := #in~n; 705768#L25 assume !(~n <= 0); 705770#L26 call #t~ret0 := fact(~n - 1);< 706381#$Ultimate##0 ~n := #in~n; 710653#L25 assume !(~n <= 0); 706431#L26 call #t~ret0 := fact(~n - 1);< 706437#$Ultimate##0 ~n := #in~n; 710605#L25 assume !(~n <= 0); 706447#L26 call #t~ret0 := fact(~n - 1);< 706448#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706240#factFINAL assume true; 706191#factEXIT >#66#return; 706189#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706187#factFINAL assume true; 706067#factEXIT >#68#return; 705906#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 706066#$Ultimate##0 ~n := #in~n; 706510#L25 assume !(~n <= 0); 706193#L26 call #t~ret0 := fact(~n - 1);< 706252#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706171#factFINAL assume true; 705903#factEXIT >#70#return; 706036#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 706441#$Ultimate##0 ~n := #in~n; 706440#L25 assume !(~n <= 0); 706348#L26 call #t~ret0 := fact(~n - 1);< 706403#$Ultimate##0 ~n := #in~n; 706451#L25 assume !(~n <= 0); 706378#L26 call #t~ret0 := fact(~n - 1);< 706438#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706435#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706405#factFINAL assume true; 706382#factEXIT >#72#return; 706397#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 706763#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 706758#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 706754#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 706537#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 706167#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 706170#$Ultimate##0 ~n := #in~n; 706325#L25 assume !(~n <= 0); 706194#L26 call #t~ret0 := fact(~n - 1);< 706277#$Ultimate##0 ~n := #in~n; 706263#L25 assume !(~n <= 0); 706232#L26 call #t~ret0 := fact(~n - 1);< 706237#$Ultimate##0 ~n := #in~n; 710597#L25 assume !(~n <= 0); 705769#L26 call #t~ret0 := fact(~n - 1);< 705776#$Ultimate##0 ~n := #in~n; 705768#L25 assume !(~n <= 0); 705770#L26 call #t~ret0 := fact(~n - 1);< 706381#$Ultimate##0 ~n := #in~n; 710653#L25 assume !(~n <= 0); 706431#L26 call #t~ret0 := fact(~n - 1);< 706437#$Ultimate##0 ~n := #in~n; 710605#L25 assume !(~n <= 0); 706447#L26 call #t~ret0 := fact(~n - 1);< 706448#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706240#factFINAL assume true; 706191#factEXIT >#66#return; 706189#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706187#factFINAL assume true; 706067#factEXIT >#68#return; 705956#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 706066#$Ultimate##0 ~n := #in~n; 706510#L25 assume !(~n <= 0); 706193#L26 call #t~ret0 := fact(~n - 1);< 706252#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706240#factFINAL assume true; 706191#factEXIT >#66#return; 706215#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706519#factFINAL assume true; 706064#factEXIT >#70#return; 706037#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 706280#$Ultimate##0 ~n := #in~n; 706508#L25 assume !(~n <= 0); 706329#L26 call #t~ret0 := fact(~n - 1);< 706506#$Ultimate##0 ~n := #in~n; 706353#L25 assume ~n <= 0;#res := 1; 706336#factFINAL assume true; 706326#factEXIT >#66#return; 706322#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706278#factFINAL assume true; 706264#factEXIT >#72#return; 706272#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 707031#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 707028#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 707025#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 706239#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 706119#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 706170#$Ultimate##0 ~n := #in~n; 706325#L25 assume !(~n <= 0); 706194#L26 call #t~ret0 := fact(~n - 1);< 706277#$Ultimate##0 ~n := #in~n; 706263#L25 assume !(~n <= 0); 706232#L26 call #t~ret0 := fact(~n - 1);< 706237#$Ultimate##0 ~n := #in~n; 710597#L25 assume !(~n <= 0); 705769#L26 call #t~ret0 := fact(~n - 1);< 705776#$Ultimate##0 ~n := #in~n; 705768#L25 assume !(~n <= 0); 705770#L26 call #t~ret0 := fact(~n - 1);< 706381#$Ultimate##0 ~n := #in~n; 710653#L25 assume !(~n <= 0); 706431#L26 call #t~ret0 := fact(~n - 1);< 706437#$Ultimate##0 ~n := #in~n; 710605#L25 assume !(~n <= 0); 706447#L26 call #t~ret0 := fact(~n - 1);< 706448#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706240#factFINAL assume true; 706191#factEXIT >#66#return; 706189#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706187#factFINAL assume true; 706067#factEXIT >#68#return; 705953#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 706066#$Ultimate##0 ~n := #in~n; 706510#L25 assume !(~n <= 0); 706193#L26 call #t~ret0 := fact(~n - 1);< 706252#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706457#L25 assume !(~n <= 0); 706197#L26 call #t~ret0 := fact(~n - 1);< 706449#$Ultimate##0 ~n := #in~n; 706453#L25 assume ~n <= 0;#res := 1; 706452#factFINAL assume true; 706446#factEXIT >#66#return; 706445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706443#factFINAL assume true; 706429#factEXIT >#66#return; 706428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706402#factFINAL assume true; 706374#factEXIT >#66#return; 706371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706356#factFINAL assume true; 706344#factEXIT >#66#return; 706349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706253#factFINAL assume true; 706228#factEXIT >#66#return; 706233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706240#factFINAL assume true; 706191#factEXIT >#66#return; 706215#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706519#factFINAL assume true; 706064#factEXIT >#70#return; 705812#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 706509#$Ultimate##0 ~n := #in~n; 706507#L25 assume ~n <= 0;#res := 1; 705898#factFINAL assume true; 705784#factEXIT >#72#return; 705744#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 705745#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 705757#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 710592#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 705753#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 705754#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 705690#$Ultimate##0 ~n := #in~n; 706693#L25 assume !(~n <= 0); 706682#L26 call #t~ret0 := fact(~n - 1);< 706690#$Ultimate##0 ~n := #in~n; 706688#L25 assume !(~n <= 0); 706676#L26 call #t~ret0 := fact(~n - 1);< 706679#$Ultimate##0 ~n := #in~n; 706675#L25 assume !(~n <= 0); 706666#L26 call #t~ret0 := fact(~n - 1);< 706738#$Ultimate##0 ~n := #in~n; 706665#L25 assume !(~n <= 0); 706661#L26 call #t~ret0 := fact(~n - 1);< 706742#$Ultimate##0 ~n := #in~n; 706660#L25 assume !(~n <= 0); 706641#L26 call #t~ret0 := fact(~n - 1);< 706644#$Ultimate##0 ~n := #in~n; 706639#L25 assume !(~n <= 0); 706638#L26 call #t~ret0 := fact(~n - 1);< 706637#$Ultimate##0 ~n := #in~n; 706640#L25 assume ~n <= 0;#res := 1; 706750#factFINAL assume true; 706749#factEXIT >#66#return; 706748#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706747#factFINAL assume true; 706745#factEXIT >#66#return; 706744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706743#factFINAL assume true; 706741#factEXIT >#66#return; 706740#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706739#factFINAL assume true; 706736#factEXIT >#66#return; 706734#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706732#factFINAL assume true; 706726#factEXIT >#66#return; 706727#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 707091#factFINAL assume true; 706891#factEXIT >#66#return; 706890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706889#factFINAL assume true; 706723#factEXIT >#74#return; 705777#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 705778#$Ultimate##0 ~n := #in~n; 706658#L25 assume !(~n <= 0); 706643#L26 call #t~ret0 := fact(~n - 1);< 706646#$Ultimate##0 ~n := #in~n; 706639#L25 assume !(~n <= 0); 706638#L26 call #t~ret0 := fact(~n - 1);< 706637#$Ultimate##0 ~n := #in~n; 706639#L25 assume !(~n <= 0); 706638#L26 call #t~ret0 := fact(~n - 1);< 706637#$Ultimate##0 ~n := #in~n; 706639#L25 assume !(~n <= 0); 706638#L26 call #t~ret0 := fact(~n - 1);< 706637#$Ultimate##0 ~n := #in~n; 706639#L25 assume !(~n <= 0); 706638#L26 call #t~ret0 := fact(~n - 1);< 706637#$Ultimate##0 ~n := #in~n; 706640#L25 assume ~n <= 0;#res := 1; 706750#factFINAL assume true; 706749#factEXIT >#66#return; 706748#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706747#factFINAL assume true; 706745#factEXIT >#66#return; 706744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706743#factFINAL assume true; 706741#factEXIT >#66#return; 706740#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706739#factFINAL assume true; 706736#factEXIT >#66#return; 706734#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706732#factFINAL assume true; 706726#factEXIT >#66#return; 706721#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 706718#factFINAL assume true; 706714#factEXIT >#76#return; 705734#L30-7 [2023-02-18 08:58:14,983 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:14,983 INFO L85 PathProgramCache]: Analyzing trace with hash 1294601560, now seen corresponding path program 71 times [2023-02-18 08:58:14,983 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:14,983 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [94251282] [2023-02-18 08:58:14,984 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:14,984 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:15,006 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:15,006 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [107216633] [2023-02-18 08:58:15,007 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:58:15,007 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:15,007 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:15,010 INFO L229 MonitoredProcess]: Starting monitored process 267 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:58:15,089 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (267)] Waiting until timeout for monitored process [2023-02-18 08:58:17,666 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 45 check-sat command(s) [2023-02-18 08:58:17,667 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:58:17,677 INFO L263 TraceCheckSpWp]: Trace formula consists of 2219 conjuncts, 39 conjunts are in the unsatisfiable core [2023-02-18 08:58:17,684 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:17,865 INFO L134 CoverageAnalysis]: Checked inductivity of 73145 backedges. 30841 proven. 2417 refuted. 0 times theorem prover too weak. 39887 trivial. 0 not checked. [2023-02-18 08:58:17,865 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:18,297 INFO L134 CoverageAnalysis]: Checked inductivity of 73145 backedges. 4178 proven. 4708 refuted. 0 times theorem prover too weak. 64259 trivial. 0 not checked. [2023-02-18 08:58:18,297 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:18,297 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [94251282] [2023-02-18 08:58:18,298 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:18,298 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [107216633] [2023-02-18 08:58:18,298 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [107216633] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:18,298 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:18,298 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [26, 34] total 43 [2023-02-18 08:58:18,298 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1631827528] [2023-02-18 08:58:18,298 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:18,298 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:58:18,299 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:18,299 INFO L85 PathProgramCache]: Analyzing trace with hash -1196408637, now seen corresponding path program 71 times [2023-02-18 08:58:18,299 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:18,299 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1362414332] [2023-02-18 08:58:18,299 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:18,299 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:18,316 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:18,316 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [271934154] [2023-02-18 08:58:18,316 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:58:18,316 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:18,316 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:18,320 INFO L229 MonitoredProcess]: Starting monitored process 268 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:58:18,320 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (268)] Waiting until timeout for monitored process [2023-02-18 08:58:18,906 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 16 check-sat command(s) [2023-02-18 08:58:18,906 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:58:18,909 INFO L263 TraceCheckSpWp]: Trace formula consists of 374 conjuncts, 34 conjunts are in the unsatisfiable core [2023-02-18 08:58:18,914 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:19,027 INFO L134 CoverageAnalysis]: Checked inductivity of 51833 backedges. 22710 proven. 554 refuted. 0 times theorem prover too weak. 28569 trivial. 0 not checked. [2023-02-18 08:58:19,027 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:19,424 INFO L134 CoverageAnalysis]: Checked inductivity of 51833 backedges. 1526 proven. 6932 refuted. 0 times theorem prover too weak. 43375 trivial. 0 not checked. [2023-02-18 08:58:19,424 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:19,424 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1362414332] [2023-02-18 08:58:19,424 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:19,424 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [271934154] [2023-02-18 08:58:19,424 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [271934154] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:19,424 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:19,424 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [21, 33] total 36 [2023-02-18 08:58:19,424 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [254916855] [2023-02-18 08:58:19,424 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:19,425 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:58:19,425 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:58:19,425 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 36 interpolants. [2023-02-18 08:58:19,425 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=183, Invalid=1077, Unknown=0, NotChecked=0, Total=1260 [2023-02-18 08:58:19,425 INFO L87 Difference]: Start difference. First operand 4965 states and 7517 transitions. cyclomatic complexity: 2592 Second operand has 36 states, 33 states have (on average 2.8484848484848486) internal successors, (94), 36 states have internal predecessors, (94), 21 states have call successors, (36), 2 states have call predecessors, (36), 16 states have return successors, (46), 16 states have call predecessors, (46), 21 states have call successors, (46) [2023-02-18 08:58:20,881 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:58:20,881 INFO L93 Difference]: Finished difference Result 5425 states and 8676 transitions. [2023-02-18 08:58:20,881 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 5425 states and 8676 transitions. [2023-02-18 08:58:20,907 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 508 [2023-02-18 08:58:20,938 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 5425 states to 5372 states and 8601 transitions. [2023-02-18 08:58:20,938 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 344 [2023-02-18 08:58:20,939 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 344 [2023-02-18 08:58:20,939 INFO L73 IsDeterministic]: Start isDeterministic. Operand 5372 states and 8601 transitions. [2023-02-18 08:58:20,939 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:58:20,939 INFO L218 hiAutomatonCegarLoop]: Abstraction has 5372 states and 8601 transitions. [2023-02-18 08:58:20,940 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 5372 states and 8601 transitions. [2023-02-18 08:58:20,990 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 5372 to 4717. [2023-02-18 08:58:20,993 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4717 states, 2923 states have (on average 1.0492644543277454) internal successors, (3067), 2916 states have internal predecessors, (3067), 1457 states have call successors, (1479), 453 states have call predecessors, (1479), 337 states have return successors, (2512), 1347 states have call predecessors, (2512), 1457 states have call successors, (2512) [2023-02-18 08:58:21,007 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4717 states to 4717 states and 7058 transitions. [2023-02-18 08:58:21,007 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4717 states and 7058 transitions. [2023-02-18 08:58:21,008 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 29 states. [2023-02-18 08:58:21,008 INFO L428 stractBuchiCegarLoop]: Abstraction has 4717 states and 7058 transitions. [2023-02-18 08:58:21,008 INFO L335 stractBuchiCegarLoop]: ======== Iteration 84 ============ [2023-02-18 08:58:21,008 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4717 states and 7058 transitions. [2023-02-18 08:58:21,017 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 472 [2023-02-18 08:58:21,017 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:58:21,017 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:58:21,020 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [172, 172, 116, 116, 116, 116, 56, 19, 18, 12, 12, 12, 12, 12, 12, 12, 12, 12, 7, 7, 7, 7, 7, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-18 08:58:21,020 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [142, 142, 115, 115, 115, 115, 27, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:58:21,021 INFO L748 eck$LassoCheckResult]: Stem: 727933#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 727877#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; 727878#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 727900#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; 727889#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 727890#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 731188#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 731064#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 731065#$Ultimate##0 ~n := #in~n; 731070#L25 assume ~n <= 0;#res := 1; 731069#factFINAL assume true; 731063#factEXIT >#68#return; 731061#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 731062#$Ultimate##0 ~n := #in~n; 731072#L25 assume ~n <= 0;#res := 1; 731071#factFINAL assume true; 731060#factEXIT >#70#return; 731058#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 731059#$Ultimate##0 ~n := #in~n; 731074#L25 assume ~n <= 0;#res := 1; 731073#factFINAL assume true; 731057#factEXIT >#72#return; 731055#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 731051#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 731049#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 731047#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 731046#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 731044#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 731045#$Ultimate##0 ~n := #in~n; 731056#L25 assume !(~n <= 0); 731053#L26 call #t~ret0 := fact(~n - 1);< 731054#$Ultimate##0 ~n := #in~n; 731076#L25 assume ~n <= 0;#res := 1; 731075#factFINAL assume true; 731052#factEXIT >#66#return; 731050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 731048#factFINAL assume true; 731043#factEXIT >#74#return; 731041#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 731042#$Ultimate##0 ~n := #in~n; 731078#L25 assume ~n <= 0;#res := 1; 731077#factFINAL assume true; 731040#factEXIT >#76#return; 731038#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 731039#$Ultimate##0 ~n := #in~n; 731086#L25 assume !(~n <= 0); 731083#L26 call #t~ret0 := fact(~n - 1);< 731084#$Ultimate##0 ~n := #in~n; 731108#L25 assume ~n <= 0;#res := 1; 731107#factFINAL assume true; 731082#factEXIT >#66#return; 731080#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 731079#factFINAL assume true; 731037#factEXIT >#78#return; 731035#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 731032#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 731028#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 731026#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 731024#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 731015#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 731018#$Ultimate##0 ~n := #in~n; 731094#L25 assume !(~n <= 0); 731088#L26 call #t~ret0 := fact(~n - 1);< 731093#$Ultimate##0 ~n := #in~n; 731100#L25 assume !(~n <= 0); 731090#L26 call #t~ret0 := fact(~n - 1);< 731099#$Ultimate##0 ~n := #in~n; 731105#L25 assume ~n <= 0;#res := 1; 731104#factFINAL assume true; 731098#factEXIT >#66#return; 731097#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 731095#factFINAL assume true; 731087#factEXIT >#66#return; 731085#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 731081#factFINAL assume true; 731036#factEXIT >#74#return; 731017#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 731034#$Ultimate##0 ~n := #in~n; 731116#L25 assume ~n <= 0;#res := 1; 731115#factFINAL assume true; 731033#factEXIT >#76#return; 731030#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 731031#$Ultimate##0 ~n := #in~n; 731123#L25 assume !(~n <= 0); 731089#L26 call #t~ret0 := fact(~n - 1);< 731093#$Ultimate##0 ~n := #in~n; 731100#L25 assume !(~n <= 0); 731090#L26 call #t~ret0 := fact(~n - 1);< 731099#$Ultimate##0 ~n := #in~n; 731105#L25 assume ~n <= 0;#res := 1; 731104#factFINAL assume true; 731098#factEXIT >#66#return; 731097#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 731095#factFINAL assume true; 731087#factEXIT >#66#return; 731092#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 731117#factFINAL assume true; 731029#factEXIT >#78#return; 731027#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 731025#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 731023#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 731021#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 731019#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 731020#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 731341#$Ultimate##0 ~n := #in~n; 731354#L25 assume !(~n <= 0); 731350#L26 call #t~ret0 := fact(~n - 1);< 731352#$Ultimate##0 ~n := #in~n; 731367#L25 assume !(~n <= 0); 731351#L26 call #t~ret0 := fact(~n - 1);< 731366#$Ultimate##0 ~n := #in~n; 731367#L25 assume !(~n <= 0); 731351#L26 call #t~ret0 := fact(~n - 1);< 731366#$Ultimate##0 ~n := #in~n; 731376#L25 assume ~n <= 0;#res := 1; 731375#factFINAL assume true; 731372#factEXIT >#66#return; 731370#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 731368#factFINAL assume true; 731365#factEXIT >#66#return; 731363#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 731361#factFINAL assume true; 731349#factEXIT >#66#return; 731347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 731345#factFINAL assume true; 731340#factEXIT >#74#return; 731334#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 731335#$Ultimate##0 ~n := #in~n; 731344#L25 assume ~n <= 0;#res := 1; 731339#factFINAL assume true; 731333#factEXIT >#76#return; 727909#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 730856#$Ultimate##0 ~n := #in~n; 731257#L25 assume !(~n <= 0); 727859#L26 call #t~ret0 := fact(~n - 1);< 730964#$Ultimate##0 ~n := #in~n; 730988#L25 assume !(~n <= 0); 727863#L26 call #t~ret0 := fact(~n - 1);< 730987#$Ultimate##0 ~n := #in~n; 730988#L25 assume !(~n <= 0); 727863#L26 call #t~ret0 := fact(~n - 1);< 730987#$Ultimate##0 ~n := #in~n; 730991#L25 assume ~n <= 0;#res := 1; 730989#factFINAL assume true; 730986#factEXIT >#66#return; 730985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 730984#factFINAL assume true; 730974#factEXIT >#66#return; 730972#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 730970#factFINAL assume true; 730962#factEXIT >#66#return; 727864#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727910#factFINAL assume true; 730855#factEXIT >#78#return; 730853#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 730851#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 730849#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 730847#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 730846#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 730845#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 730480#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 729982#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 729899#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 729906#$Ultimate##0 ~n := #in~n; 729981#L25 assume !(~n <= 0); 729955#L26 call #t~ret0 := fact(~n - 1);< 729980#$Ultimate##0 ~n := #in~n; 730128#L25 assume ~n <= 0;#res := 1; 730834#factFINAL assume true; 730821#factEXIT >#66#return; 730815#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 730813#factFINAL assume true; 730810#factEXIT >#68#return; 730802#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 729895#$Ultimate##0 ~n := #in~n; 731169#L25 assume ~n <= 0;#res := 1; 731168#factFINAL assume true; 730801#factEXIT >#70#return; 730795#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 730799#$Ultimate##0 ~n := #in~n; 730797#L25 assume !(~n <= 0); 729967#L26 call #t~ret0 := fact(~n - 1);< 730669#$Ultimate##0 ~n := #in~n; 730128#L25 assume ~n <= 0;#res := 1; 730834#factFINAL assume true; 730821#factEXIT >#66#return; 730830#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 731343#factFINAL assume true; 731338#factEXIT >#72#return; 731332#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 731329#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 731328#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 731326#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 731325#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 730836#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 730850#$Ultimate##0 ~n := #in~n; 730848#L25 assume !(~n <= 0); 729965#L26 call #t~ret0 := fact(~n - 1);< 730669#$Ultimate##0 ~n := #in~n; 730128#L25 assume ~n <= 0;#res := 1; 730834#factFINAL assume true; 730821#factEXIT >#66#return; 730826#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 731178#factFINAL assume true; 731176#factEXIT >#68#return; 730711#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 730723#$Ultimate##0 ~n := #in~n; 730844#L25 assume !(~n <= 0); 729961#L26 call #t~ret0 := fact(~n - 1);< 729980#$Ultimate##0 ~n := #in~n; 730128#L25 assume ~n <= 0;#res := 1; 730834#factFINAL assume true; 730821#factEXIT >#66#return; 730828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 731174#factFINAL assume true; 730703#factEXIT >#70#return; 730692#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 730701#$Ultimate##0 ~n := #in~n; 731110#L25 assume ~n <= 0;#res := 1; 731109#factFINAL assume true; 730687#factEXIT >#72#return; 730686#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 730685#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 730683#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 730680#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 730679#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 730674#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 730678#$Ultimate##0 ~n := #in~n; 731180#L25 assume !(~n <= 0); 729971#L26 call #t~ret0 := fact(~n - 1);< 730733#$Ultimate##0 ~n := #in~n; 730481#L25 assume !(~n <= 0); 729970#L26 call #t~ret0 := fact(~n - 1);< 730053#$Ultimate##0 ~n := #in~n; 730080#L25 assume ~n <= 0;#res := 1; 730079#factFINAL assume true; 730051#factEXIT >#66#return; 730029#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 730024#factFINAL assume true; 729940#factEXIT >#66#return; 729979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 731068#factFINAL assume true; 731067#factEXIT >#74#return; 730580#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 730660#$Ultimate##0 ~n := #in~n; 732448#L25 assume !(~n <= 0); 729943#L26 call #t~ret0 := fact(~n - 1);< 729980#$Ultimate##0 ~n := #in~n; 730128#L25 assume ~n <= 0;#res := 1; 730834#factFINAL assume true; 730821#factEXIT >#66#return; 730827#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 730734#factFINAL assume true; 730649#factEXIT >#76#return; 730618#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 730654#$Ultimate##0 ~n := #in~n; 731184#L25 assume !(~n <= 0); 730822#L26 call #t~ret0 := fact(~n - 1);< 730843#$Ultimate##0 ~n := #in~n; 730128#L25 assume ~n <= 0;#res := 1; 730834#factFINAL assume true; 730821#factEXIT >#66#return; 730827#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 730734#factFINAL assume true; 730649#factEXIT >#78#return; 730647#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 730646#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 730645#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 730644#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 730560#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 730344#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 730526#$Ultimate##0 ~n := #in~n; 731186#L25 assume !(~n <= 0); 730546#L26 call #t~ret0 := fact(~n - 1);< 731185#$Ultimate##0 ~n := #in~n; 731182#L25 assume !(~n <= 0); 730541#L26 call #t~ret0 := fact(~n - 1);< 730736#$Ultimate##0 ~n := #in~n; 731182#L25 assume !(~n <= 0); 730541#L26 call #t~ret0 := fact(~n - 1);< 730736#$Ultimate##0 ~n := #in~n; 730578#L25 assume ~n <= 0;#res := 1; 730655#factFINAL assume true; 730571#factEXIT >#66#return; 730569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 730564#factFINAL assume true; 730534#factEXIT >#66#return; 730554#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 730671#factFINAL assume true; 730637#factEXIT >#66#return; 730635#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 730629#factFINAL assume true; 730559#factEXIT >#74#return; 730509#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 730529#$Ultimate##0 ~n := #in~n; 731238#L25 assume !(~n <= 0); 730543#L26 call #t~ret0 := fact(~n - 1);< 730628#$Ultimate##0 ~n := #in~n; 730738#L25 assume ~n <= 0;#res := 1; 730661#factFINAL assume true; 730623#factEXIT >#66#return; 730558#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 730531#factFINAL assume true; 730527#factEXIT >#76#return; 730503#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 730523#$Ultimate##0 ~n := #in~n; 731106#L25 assume !(~n <= 0); 730537#L26 call #t~ret0 := fact(~n - 1);< 731103#$Ultimate##0 ~n := #in~n; 731102#L25 assume !(~n <= 0); 730550#L26 call #t~ret0 := fact(~n - 1);< 730672#$Ultimate##0 ~n := #in~n; 730578#L25 assume ~n <= 0;#res := 1; 730655#factFINAL assume true; 730571#factEXIT >#66#return; 730569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 730564#factFINAL assume true; 730534#factEXIT >#66#return; 730530#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 730524#factFINAL assume true; 730502#factEXIT >#78#return; 730501#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 730500#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 730499#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 730498#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 730497#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 730496#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 730494#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 730492#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 729904#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 729906#$Ultimate##0 ~n := #in~n; 729981#L25 assume !(~n <= 0); 729955#L26 call #t~ret0 := fact(~n - 1);< 729980#$Ultimate##0 ~n := #in~n; 730119#L25 assume !(~n <= 0); 729952#L26 call #t~ret0 := fact(~n - 1);< 730093#$Ultimate##0 ~n := #in~n; 730080#L25 assume ~n <= 0;#res := 1; 730079#factFINAL assume true; 730051#factEXIT >#66#return; 730029#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 730024#factFINAL assume true; 729940#factEXIT >#66#return; 729939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 729908#factFINAL assume true; 729898#factEXIT >#68#return; 729890#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 729896#$Ultimate##0 ~n := #in~n; 729937#L25 assume ~n <= 0;#res := 1; 729909#factFINAL assume true; 729887#factEXIT >#70#return; 729834#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 729845#$Ultimate##0 ~n := #in~n; 729868#L25 assume !(~n <= 0); 729297#L26 call #t~ret0 := fact(~n - 1);< 729309#$Ultimate##0 ~n := #in~n; 729368#L25 assume !(~n <= 0); 729363#L26 call #t~ret0 := fact(~n - 1);< 729366#$Ultimate##0 ~n := #in~n; 729390#L25 assume ~n <= 0;#res := 1; 729389#factFINAL assume true; 729362#factEXIT >#66#return; 729338#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 729324#factFINAL assume true; 729291#factEXIT >#66#return; 729308#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 729866#factFINAL assume true; 729833#factEXIT >#72#return; 729842#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 731314#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 731312#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 731230#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 731229#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 729352#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 729360#$Ultimate##0 ~n := #in~n; 729392#L25 assume !(~n <= 0); 729295#L26 call #t~ret0 := fact(~n - 1);< 729309#$Ultimate##0 ~n := #in~n; 729368#L25 assume !(~n <= 0); 729363#L26 call #t~ret0 := fact(~n - 1);< 729366#$Ultimate##0 ~n := #in~n; 729390#L25 assume ~n <= 0;#res := 1; 729389#factFINAL assume true; 729362#factEXIT >#66#return; 729338#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 729324#factFINAL assume true; 729291#factEXIT >#66#return; 729306#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 729387#factFINAL assume true; 729341#factEXIT >#68#return; 729359#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 729385#$Ultimate##0 ~n := #in~n; 729487#L25 assume !(~n <= 0); 729255#L26 call #t~ret0 := fact(~n - 1);< 729463#$Ultimate##0 ~n := #in~n; 729824#L25 assume ~n <= 0;#res := 1; 729461#factFINAL assume true; 729417#factEXIT >#66#return; 729416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 729415#factFINAL assume true; 729372#factEXIT >#70#return; 729376#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 729384#$Ultimate##0 ~n := #in~n; 729431#L25 assume !(~n <= 0); 729423#L26 call #t~ret0 := fact(~n - 1);< 729429#$Ultimate##0 ~n := #in~n; 729824#L25 assume ~n <= 0;#res := 1; 729461#factFINAL assume true; 729417#factEXIT >#66#return; 729416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 729415#factFINAL assume true; 729372#factEXIT >#72#return; 729381#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 732436#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 732435#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 732434#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 732433#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 729346#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 729360#$Ultimate##0 ~n := #in~n; 729392#L25 assume !(~n <= 0); 729295#L26 call #t~ret0 := fact(~n - 1);< 729309#$Ultimate##0 ~n := #in~n; 729368#L25 assume !(~n <= 0); 729363#L26 call #t~ret0 := fact(~n - 1);< 729366#$Ultimate##0 ~n := #in~n; 729390#L25 assume ~n <= 0;#res := 1; 729389#factFINAL assume true; 729362#factEXIT >#66#return; 729338#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 729324#factFINAL assume true; 729291#factEXIT >#66#return; 729306#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 729387#factFINAL assume true; 729341#factEXIT >#68#return; 729331#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 729337#$Ultimate##0 ~n := #in~n; 729486#L25 assume !(~n <= 0); 729250#L26 call #t~ret0 := fact(~n - 1);< 729412#$Ultimate##0 ~n := #in~n; 729410#L25 assume !(~n <= 0); 729293#L26 call #t~ret0 := fact(~n - 1);< 729365#$Ultimate##0 ~n := #in~n; 729390#L25 assume ~n <= 0;#res := 1; 729389#factFINAL assume true; 729362#factEXIT >#66#return; 729338#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 729324#factFINAL assume true; 729291#factEXIT >#66#return; 729307#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 729340#factFINAL assume true; 729330#factEXIT >#70#return; 729313#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 729322#$Ultimate##0 ~n := #in~n; 729339#L25 assume ~n <= 0;#res := 1; 729329#factFINAL assume true; 729310#factEXIT >#72#return; 729320#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 732452#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 732451#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 732450#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 729696#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 729548#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 729691#$Ultimate##0 ~n := #in~n; 729869#L25 assume !(~n <= 0); 729061#L26 call #t~ret0 := fact(~n - 1);< 729091#$Ultimate##0 ~n := #in~n; 729127#L25 assume !(~n <= 0); 729057#L26 call #t~ret0 := fact(~n - 1);< 729123#$Ultimate##0 ~n := #in~n; 729127#L25 assume !(~n <= 0); 729057#L26 call #t~ret0 := fact(~n - 1);< 729123#$Ultimate##0 ~n := #in~n; 729132#L25 assume ~n <= 0;#res := 1; 729131#factFINAL assume true; 729120#factEXIT >#66#return; 729098#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 729092#factFINAL assume true; 729083#factEXIT >#66#return; 729082#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 729078#factFINAL assume true; 729053#factEXIT >#66#return; 729075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 729694#factFINAL assume true; 729690#factEXIT >#74#return; 729100#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 729685#$Ultimate##0 ~n := #in~n; 730274#L25 assume !(~n <= 0); 729066#L26 call #t~ret0 := fact(~n - 1);< 729081#$Ultimate##0 ~n := #in~n; 729128#L25 assume !(~n <= 0); 729086#L26 call #t~ret0 := fact(~n - 1);< 729090#$Ultimate##0 ~n := #in~n; 729132#L25 assume ~n <= 0;#res := 1; 729131#factFINAL assume true; 729120#factEXIT >#66#return; 729098#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 729092#factFINAL assume true; 729083#factEXIT >#66#return; 729088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 729709#factFINAL assume true; 729688#factEXIT >#76#return; 729118#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 729686#$Ultimate##0 ~n := #in~n; 729851#L25 assume !(~n <= 0); 729523#L26 call #t~ret0 := fact(~n - 1);< 729526#$Ultimate##0 ~n := #in~n; 729130#L25 assume ~n <= 0;#res := 1; 729537#factFINAL assume true; 729522#factEXIT >#66#return; 729525#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 729684#factFINAL assume true; 729163#factEXIT >#78#return; 729164#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 729721#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 729697#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 729695#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 729693#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 729692#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 729658#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 729125#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 727873#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 727874#$Ultimate##0 ~n := #in~n; 729446#L25 assume !(~n <= 0); 728220#L26 call #t~ret0 := fact(~n - 1);< 728231#$Ultimate##0 ~n := #in~n; 728902#L25 assume !(~n <= 0); 728244#L26 call #t~ret0 := fact(~n - 1);< 728249#$Ultimate##0 ~n := #in~n; 728986#L25 assume !(~n <= 0); 728276#L26 call #t~ret0 := fact(~n - 1);< 728983#$Ultimate##0 ~n := #in~n; 728982#L25 assume !(~n <= 0); 728396#L26 call #t~ret0 := fact(~n - 1);< 728403#$Ultimate##0 ~n := #in~n; 728969#L25 assume !(~n <= 0); 728650#L26 call #t~ret0 := fact(~n - 1);< 728651#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 729004#factFINAL assume true; 729003#factEXIT >#68#return; 728488#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 728498#$Ultimate##0 ~n := #in~n; 728552#L25 assume ~n <= 0;#res := 1; 728546#factFINAL assume true; 728485#factEXIT >#70#return; 728465#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 728910#$Ultimate##0 ~n := #in~n; 728815#L25 assume !(~n <= 0); 728147#L26 call #t~ret0 := fact(~n - 1);< 728155#$Ultimate##0 ~n := #in~n; 729444#L25 assume !(~n <= 0); 728141#L26 call #t~ret0 := fact(~n - 1);< 728248#$Ultimate##0 ~n := #in~n; 729454#L25 assume !(~n <= 0); 728143#L26 call #t~ret0 := fact(~n - 1);< 728253#$Ultimate##0 ~n := #in~n; 729659#L25 assume !(~n <= 0); 728135#L26 call #t~ret0 := fact(~n - 1);< 728321#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728224#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 729002#factFINAL assume true; 729001#factEXIT >#72#return; 728477#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 729000#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 728998#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728996#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728994#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 728206#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 728215#$Ultimate##0 ~n := #in~n; 728236#L25 assume !(~n <= 0); 728217#L26 call #t~ret0 := fact(~n - 1);< 728232#$Ultimate##0 ~n := #in~n; 728816#L25 assume !(~n <= 0); 728242#L26 call #t~ret0 := fact(~n - 1);< 728981#$Ultimate##0 ~n := #in~n; 728980#L25 assume !(~n <= 0); 728277#L26 call #t~ret0 := fact(~n - 1);< 728324#$Ultimate##0 ~n := #in~n; 728979#L25 assume !(~n <= 0); 728395#L26 call #t~ret0 := fact(~n - 1);< 728972#$Ultimate##0 ~n := #in~n; 728969#L25 assume !(~n <= 0); 728650#L26 call #t~ret0 := fact(~n - 1);< 728651#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728226#factFINAL assume true; 728202#factEXIT >#68#return; 727983#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 728178#$Ultimate##0 ~n := #in~n; 728809#L25 assume !(~n <= 0); 728182#L26 call #t~ret0 := fact(~n - 1);< 728185#$Ultimate##0 ~n := #in~n; 728194#L25 assume ~n <= 0;#res := 1; 728187#factFINAL assume true; 728180#factEXIT >#66#return; 728179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728177#factFINAL assume true; 728165#factEXIT >#70#return; 728175#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 728885#$Ultimate##0 ~n := #in~n; 728886#L25 assume !(~n <= 0); 728240#L26 call #t~ret0 := fact(~n - 1);< 728254#$Ultimate##0 ~n := #in~n; 729455#L25 assume !(~n <= 0); 728275#L26 call #t~ret0 := fact(~n - 1);< 728282#$Ultimate##0 ~n := #in~n; 728982#L25 assume !(~n <= 0); 728396#L26 call #t~ret0 := fact(~n - 1);< 728403#$Ultimate##0 ~n := #in~n; 728969#L25 assume !(~n <= 0); 728650#L26 call #t~ret0 := fact(~n - 1);< 728651#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728246#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728317#factFINAL assume true; 728284#factEXIT >#72#return; 728303#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728673#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 728670#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728668#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728667#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 728204#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 728215#$Ultimate##0 ~n := #in~n; 728236#L25 assume !(~n <= 0); 728217#L26 call #t~ret0 := fact(~n - 1);< 728232#$Ultimate##0 ~n := #in~n; 728816#L25 assume !(~n <= 0); 728242#L26 call #t~ret0 := fact(~n - 1);< 728981#$Ultimate##0 ~n := #in~n; 728980#L25 assume !(~n <= 0); 728277#L26 call #t~ret0 := fact(~n - 1);< 728324#$Ultimate##0 ~n := #in~n; 728979#L25 assume !(~n <= 0); 728395#L26 call #t~ret0 := fact(~n - 1);< 728972#$Ultimate##0 ~n := #in~n; 728969#L25 assume !(~n <= 0); 728650#L26 call #t~ret0 := fact(~n - 1);< 728651#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728226#factFINAL assume true; 728202#factEXIT >#68#return; 728049#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 728200#$Ultimate##0 ~n := #in~n; 728681#L25 assume !(~n <= 0); 728134#L26 call #t~ret0 := fact(~n - 1);< 728321#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728400#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728392#factFINAL assume true; 728377#factEXIT >#70#return; 728322#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 728405#$Ultimate##0 ~n := #in~n; 728404#L25 assume !(~n <= 0); 728278#L26 call #t~ret0 := fact(~n - 1);< 728324#$Ultimate##0 ~n := #in~n; 728979#L25 assume !(~n <= 0); 728395#L26 call #t~ret0 := fact(~n - 1);< 728972#$Ultimate##0 ~n := #in~n; 728969#L25 assume !(~n <= 0); 728650#L26 call #t~ret0 := fact(~n - 1);< 728651#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728617#factFINAL assume true; 728421#factEXIT >#72#return; 728428#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728784#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 728782#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728780#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728778#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 728203#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 728215#$Ultimate##0 ~n := #in~n; 728236#L25 assume !(~n <= 0); 728217#L26 call #t~ret0 := fact(~n - 1);< 728232#$Ultimate##0 ~n := #in~n; 728816#L25 assume !(~n <= 0); 728242#L26 call #t~ret0 := fact(~n - 1);< 728981#$Ultimate##0 ~n := #in~n; 728980#L25 assume !(~n <= 0); 728277#L26 call #t~ret0 := fact(~n - 1);< 728324#$Ultimate##0 ~n := #in~n; 728979#L25 assume !(~n <= 0); 728395#L26 call #t~ret0 := fact(~n - 1);< 728972#$Ultimate##0 ~n := #in~n; 728969#L25 assume !(~n <= 0); 728650#L26 call #t~ret0 := fact(~n - 1);< 728651#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728226#factFINAL assume true; 728202#factEXIT >#68#return; 728025#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 728200#$Ultimate##0 ~n := #in~n; 728681#L25 assume !(~n <= 0); 728134#L26 call #t~ret0 := fact(~n - 1);< 728321#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728617#factFINAL assume true; 728421#factEXIT >#70#return; 728379#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 728388#$Ultimate##0 ~n := #in~n; 728627#L25 assume !(~n <= 0); 728397#L26 call #t~ret0 := fact(~n - 1);< 728624#$Ultimate##0 ~n := #in~n; 728960#L25 assume !(~n <= 0); 728398#L26 call #t~ret0 := fact(~n - 1);< 728403#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728400#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728392#factFINAL assume true; 728377#factEXIT >#72#return; 728387#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728391#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 728390#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728389#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728376#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 728205#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 728215#$Ultimate##0 ~n := #in~n; 728236#L25 assume !(~n <= 0); 728217#L26 call #t~ret0 := fact(~n - 1);< 728232#$Ultimate##0 ~n := #in~n; 728816#L25 assume !(~n <= 0); 728242#L26 call #t~ret0 := fact(~n - 1);< 728981#$Ultimate##0 ~n := #in~n; 728980#L25 assume !(~n <= 0); 728277#L26 call #t~ret0 := fact(~n - 1);< 728324#$Ultimate##0 ~n := #in~n; 728979#L25 assume !(~n <= 0); 728395#L26 call #t~ret0 := fact(~n - 1);< 728972#$Ultimate##0 ~n := #in~n; 728969#L25 assume !(~n <= 0); 728650#L26 call #t~ret0 := fact(~n - 1);< 728651#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728226#factFINAL assume true; 728202#factEXIT >#68#return; 728021#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 728200#$Ultimate##0 ~n := #in~n; 728681#L25 assume !(~n <= 0); 728134#L26 call #t~ret0 := fact(~n - 1);< 728321#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728246#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728317#factFINAL assume true; 728284#factEXIT >#70#return; 728167#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 728273#$Ultimate##0 ~n := #in~n; 728761#L25 assume !(~n <= 0); 727996#L26 call #t~ret0 := fact(~n - 1);< 728970#$Ultimate##0 ~n := #in~n; 728194#L25 assume ~n <= 0;#res := 1; 728187#factFINAL assume true; 728180#factEXIT >#66#return; 728179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728177#factFINAL assume true; 728165#factEXIT >#72#return; 728174#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728250#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 728237#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728233#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728227#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 728208#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 728215#$Ultimate##0 ~n := #in~n; 728236#L25 assume !(~n <= 0); 728217#L26 call #t~ret0 := fact(~n - 1);< 728232#$Ultimate##0 ~n := #in~n; 728816#L25 assume !(~n <= 0); 728242#L26 call #t~ret0 := fact(~n - 1);< 728981#$Ultimate##0 ~n := #in~n; 728980#L25 assume !(~n <= 0); 728277#L26 call #t~ret0 := fact(~n - 1);< 728324#$Ultimate##0 ~n := #in~n; 728979#L25 assume !(~n <= 0); 728395#L26 call #t~ret0 := fact(~n - 1);< 728972#$Ultimate##0 ~n := #in~n; 728969#L25 assume !(~n <= 0); 728650#L26 call #t~ret0 := fact(~n - 1);< 728651#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728226#factFINAL assume true; 728202#factEXIT >#68#return; 728057#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 728200#$Ultimate##0 ~n := #in~n; 728681#L25 assume !(~n <= 0); 728134#L26 call #t~ret0 := fact(~n - 1);< 728321#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728199#factFINAL assume true; 727997#factEXIT >#70#return; 727965#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 727993#$Ultimate##0 ~n := #in~n; 727995#L25 assume ~n <= 0;#res := 1; 727994#factFINAL assume true; 727937#factEXIT >#72#return; 727893#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 727894#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 727907#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 729484#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 727904#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 727905#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 728897#$Ultimate##0 ~n := #in~n; 729148#L25 assume !(~n <= 0); 728836#L26 call #t~ret0 := fact(~n - 1);< 729147#$Ultimate##0 ~n := #in~n; 729146#L25 assume !(~n <= 0); 728830#L26 call #t~ret0 := fact(~n - 1);< 729145#$Ultimate##0 ~n := #in~n; 729144#L25 assume !(~n <= 0); 728834#L26 call #t~ret0 := fact(~n - 1);< 729143#$Ultimate##0 ~n := #in~n; 729142#L25 assume !(~n <= 0); 728832#L26 call #t~ret0 := fact(~n - 1);< 728918#$Ultimate##0 ~n := #in~n; 728934#L25 assume !(~n <= 0); 728826#L26 call #t~ret0 := fact(~n - 1);< 728933#$Ultimate##0 ~n := #in~n; 728934#L25 assume !(~n <= 0); 728826#L26 call #t~ret0 := fact(~n - 1);< 728933#$Ultimate##0 ~n := #in~n; 728938#L25 assume ~n <= 0;#res := 1; 728937#factFINAL assume true; 728932#factEXIT >#66#return; 728931#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728917#factFINAL assume true; 728915#factEXIT >#66#return; 728916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728892#factFINAL assume true; 728874#factEXIT >#66#return; 728875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728949#factFINAL assume true; 728947#factEXIT >#66#return; 728945#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728943#factFINAL assume true; 728905#factEXIT >#66#return; 728904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728899#factFINAL assume true; 728895#factEXIT >#66#return; 728896#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728984#factFINAL assume true; 728733#factEXIT >#74#return; 727929#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 727930#$Ultimate##0 ~n := #in~n; 728941#L25 assume !(~n <= 0); 728828#L26 call #t~ret0 := fact(~n - 1);< 728939#$Ultimate##0 ~n := #in~n; 728934#L25 assume !(~n <= 0); 728826#L26 call #t~ret0 := fact(~n - 1);< 728933#$Ultimate##0 ~n := #in~n; 728934#L25 assume !(~n <= 0); 728826#L26 call #t~ret0 := fact(~n - 1);< 728933#$Ultimate##0 ~n := #in~n; 728934#L25 assume !(~n <= 0); 728826#L26 call #t~ret0 := fact(~n - 1);< 728933#$Ultimate##0 ~n := #in~n; 728934#L25 assume !(~n <= 0); 728826#L26 call #t~ret0 := fact(~n - 1);< 728933#$Ultimate##0 ~n := #in~n; 728934#L25 assume !(~n <= 0); 728826#L26 call #t~ret0 := fact(~n - 1);< 728933#$Ultimate##0 ~n := #in~n; 728938#L25 assume ~n <= 0;#res := 1; 728937#factFINAL assume true; 728932#factEXIT >#66#return; 728931#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728917#factFINAL assume true; 728915#factEXIT >#66#return; 728916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728892#factFINAL assume true; 728874#factEXIT >#66#return; 728875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728949#factFINAL assume true; 728947#factEXIT >#66#return; 728945#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728943#factFINAL assume true; 728905#factEXIT >#66#return; 728904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728899#factFINAL assume true; 728895#factEXIT >#66#return; 728896#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728984#factFINAL assume true; 728733#factEXIT >#76#return; 727883#L30-7 [2023-02-18 08:58:21,021 INFO L750 eck$LassoCheckResult]: Loop: 727883#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 727934#$Ultimate##0 ~n := #in~n; 729126#L25 assume !(~n <= 0); 727882#L26 call #t~ret0 := fact(~n - 1);< 727886#$Ultimate##0 ~n := #in~n; 728942#L25 assume ~n <= 0;#res := 1; 728940#factFINAL assume true; 728936#factEXIT >#66#return; 728913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728912#factFINAL assume true; 728775#factEXIT >#78#return; 728776#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 729652#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 728978#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728977#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 728976#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 728974#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 728968#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728603#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 728503#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 728602#$Ultimate##0 ~n := #in~n; 728966#L25 assume !(~n <= 0); 728131#L26 call #t~ret0 := fact(~n - 1);< 728158#$Ultimate##0 ~n := #in~n; 729460#L25 assume !(~n <= 0); 728129#L26 call #t~ret0 := fact(~n - 1);< 728155#$Ultimate##0 ~n := #in~n; 729444#L25 assume !(~n <= 0); 728141#L26 call #t~ret0 := fact(~n - 1);< 728248#$Ultimate##0 ~n := #in~n; 729454#L25 assume !(~n <= 0); 728143#L26 call #t~ret0 := fact(~n - 1);< 728253#$Ultimate##0 ~n := #in~n; 729659#L25 assume !(~n <= 0); 728135#L26 call #t~ret0 := fact(~n - 1);< 728321#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728618#factFINAL assume true; 728125#factEXIT >#66#return; 728154#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728605#factFINAL assume true; 728601#factEXIT >#68#return; 728491#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 728498#$Ultimate##0 ~n := #in~n; 728552#L25 assume ~n <= 0;#res := 1; 728546#factFINAL assume true; 728485#factEXIT >#70#return; 728463#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 728484#$Ultimate##0 ~n := #in~n; 729124#L25 assume !(~n <= 0); 728127#L26 call #t~ret0 := fact(~n - 1);< 728619#$Ultimate##0 ~n := #in~n; 728965#L25 assume !(~n <= 0); 728136#L26 call #t~ret0 := fact(~n - 1);< 728964#$Ultimate##0 ~n := #in~n; 728963#L25 assume !(~n <= 0); 728138#L26 call #t~ret0 := fact(~n - 1);< 728962#$Ultimate##0 ~n := #in~n; 728961#L25 assume !(~n <= 0); 728146#L26 call #t~ret0 := fact(~n - 1);< 728321#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728618#factFINAL assume true; 728125#factEXIT >#66#return; 728150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 732346#factFINAL assume true; 728460#factEXIT >#72#return; 728475#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728596#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 728595#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728594#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728593#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 728100#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 728123#$Ultimate##0 ~n := #in~n; 728694#L25 assume !(~n <= 0); 728130#L26 call #t~ret0 := fact(~n - 1);< 728158#$Ultimate##0 ~n := #in~n; 729460#L25 assume !(~n <= 0); 728129#L26 call #t~ret0 := fact(~n - 1);< 728155#$Ultimate##0 ~n := #in~n; 729444#L25 assume !(~n <= 0); 728141#L26 call #t~ret0 := fact(~n - 1);< 728248#$Ultimate##0 ~n := #in~n; 729454#L25 assume !(~n <= 0); 728143#L26 call #t~ret0 := fact(~n - 1);< 728253#$Ultimate##0 ~n := #in~n; 729659#L25 assume !(~n <= 0); 728135#L26 call #t~ret0 := fact(~n - 1);< 728321#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728618#factFINAL assume true; 728125#factEXIT >#66#return; 728153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728122#factFINAL assume true; 728088#factEXIT >#68#return; 727969#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 728178#$Ultimate##0 ~n := #in~n; 728809#L25 assume !(~n <= 0); 728182#L26 call #t~ret0 := fact(~n - 1);< 728185#$Ultimate##0 ~n := #in~n; 728194#L25 assume ~n <= 0;#res := 1; 728187#factFINAL assume true; 728180#factEXIT >#66#return; 728179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728177#factFINAL assume true; 728165#factEXIT >#70#return; 728037#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 728087#$Ultimate##0 ~n := #in~n; 728364#L25 assume !(~n <= 0); 728139#L26 call #t~ret0 := fact(~n - 1);< 728155#$Ultimate##0 ~n := #in~n; 729444#L25 assume !(~n <= 0); 728141#L26 call #t~ret0 := fact(~n - 1);< 728248#$Ultimate##0 ~n := #in~n; 729454#L25 assume !(~n <= 0); 728143#L26 call #t~ret0 := fact(~n - 1);< 728253#$Ultimate##0 ~n := #in~n; 729659#L25 assume !(~n <= 0); 728135#L26 call #t~ret0 := fact(~n - 1);< 728321#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728199#factFINAL assume true; 727997#factEXIT >#72#return; 728071#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728556#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 728555#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728554#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728553#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 728096#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 728119#$Ultimate##0 ~n := #in~n; 728623#L25 assume !(~n <= 0); 728137#L26 call #t~ret0 := fact(~n - 1);< 728622#$Ultimate##0 ~n := #in~n; 728621#L25 assume !(~n <= 0); 728218#L26 call #t~ret0 := fact(~n - 1);< 728232#$Ultimate##0 ~n := #in~n; 728816#L25 assume !(~n <= 0); 728242#L26 call #t~ret0 := fact(~n - 1);< 728981#$Ultimate##0 ~n := #in~n; 728980#L25 assume !(~n <= 0); 728277#L26 call #t~ret0 := fact(~n - 1);< 728324#$Ultimate##0 ~n := #in~n; 728979#L25 assume !(~n <= 0); 728395#L26 call #t~ret0 := fact(~n - 1);< 728972#$Ultimate##0 ~n := #in~n; 728969#L25 assume !(~n <= 0); 728650#L26 call #t~ret0 := fact(~n - 1);< 728651#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728618#factFINAL assume true; 728125#factEXIT >#66#return; 728153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728122#factFINAL assume true; 728088#factEXIT >#68#return; 728016#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 728084#$Ultimate##0 ~n := #in~n; 728620#L25 assume !(~n <= 0); 728126#L26 call #t~ret0 := fact(~n - 1);< 728321#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728400#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728392#factFINAL assume true; 728377#factEXIT >#70#return; 728285#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 728318#$Ultimate##0 ~n := #in~n; 728675#L25 assume !(~n <= 0); 728241#L26 call #t~ret0 := fact(~n - 1);< 728672#$Ultimate##0 ~n := #in~n; 728669#L25 assume !(~n <= 0); 728280#L26 call #t~ret0 := fact(~n - 1);< 728660#$Ultimate##0 ~n := #in~n; 728657#L25 assume !(~n <= 0); 728399#L26 call #t~ret0 := fact(~n - 1);< 728403#$Ultimate##0 ~n := #in~n; 728969#L25 assume !(~n <= 0); 728650#L26 call #t~ret0 := fact(~n - 1);< 728651#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728246#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728317#factFINAL assume true; 728284#factEXIT >#72#return; 728297#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728547#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 728545#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728544#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728543#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 728117#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 728119#$Ultimate##0 ~n := #in~n; 728623#L25 assume !(~n <= 0); 728137#L26 call #t~ret0 := fact(~n - 1);< 728622#$Ultimate##0 ~n := #in~n; 728621#L25 assume !(~n <= 0); 728218#L26 call #t~ret0 := fact(~n - 1);< 728232#$Ultimate##0 ~n := #in~n; 728816#L25 assume !(~n <= 0); 728242#L26 call #t~ret0 := fact(~n - 1);< 728981#$Ultimate##0 ~n := #in~n; 728980#L25 assume !(~n <= 0); 728277#L26 call #t~ret0 := fact(~n - 1);< 728324#$Ultimate##0 ~n := #in~n; 728979#L25 assume !(~n <= 0); 728395#L26 call #t~ret0 := fact(~n - 1);< 728972#$Ultimate##0 ~n := #in~n; 728969#L25 assume !(~n <= 0); 728650#L26 call #t~ret0 := fact(~n - 1);< 728651#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728618#factFINAL assume true; 728125#factEXIT >#66#return; 728153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728122#factFINAL assume true; 728088#factEXIT >#68#return; 728040#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 728084#$Ultimate##0 ~n := #in~n; 728620#L25 assume !(~n <= 0); 728126#L26 call #t~ret0 := fact(~n - 1);< 728321#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728617#factFINAL assume true; 728421#factEXIT >#70#return; 728287#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 728408#$Ultimate##0 ~n := #in~n; 728406#L25 assume !(~n <= 0); 728245#L26 call #t~ret0 := fact(~n - 1);< 728325#$Ultimate##0 ~n := #in~n; 728655#L25 assume !(~n <= 0); 728279#L26 call #t~ret0 := fact(~n - 1);< 728402#$Ultimate##0 ~n := #in~n; 728657#L25 assume !(~n <= 0); 728399#L26 call #t~ret0 := fact(~n - 1);< 728403#$Ultimate##0 ~n := #in~n; 728969#L25 assume !(~n <= 0); 728650#L26 call #t~ret0 := fact(~n - 1);< 728651#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728246#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728317#factFINAL assume true; 728284#factEXIT >#72#return; 728305#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728540#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 728537#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728534#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728531#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 728113#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 728119#$Ultimate##0 ~n := #in~n; 728623#L25 assume !(~n <= 0); 728137#L26 call #t~ret0 := fact(~n - 1);< 728622#$Ultimate##0 ~n := #in~n; 728621#L25 assume !(~n <= 0); 728218#L26 call #t~ret0 := fact(~n - 1);< 728232#$Ultimate##0 ~n := #in~n; 728816#L25 assume !(~n <= 0); 728242#L26 call #t~ret0 := fact(~n - 1);< 728981#$Ultimate##0 ~n := #in~n; 728980#L25 assume !(~n <= 0); 728277#L26 call #t~ret0 := fact(~n - 1);< 728324#$Ultimate##0 ~n := #in~n; 728979#L25 assume !(~n <= 0); 728395#L26 call #t~ret0 := fact(~n - 1);< 728972#$Ultimate##0 ~n := #in~n; 728969#L25 assume !(~n <= 0); 728650#L26 call #t~ret0 := fact(~n - 1);< 728651#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728618#factFINAL assume true; 728125#factEXIT >#66#return; 728153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728122#factFINAL assume true; 728088#factEXIT >#68#return; 728042#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 728084#$Ultimate##0 ~n := #in~n; 728620#L25 assume !(~n <= 0); 728126#L26 call #t~ret0 := fact(~n - 1);< 728321#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728246#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728317#factFINAL assume true; 728284#factEXIT >#70#return; 728296#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 728408#$Ultimate##0 ~n := #in~n; 728406#L25 assume !(~n <= 0); 728245#L26 call #t~ret0 := fact(~n - 1);< 728325#$Ultimate##0 ~n := #in~n; 728655#L25 assume !(~n <= 0); 728279#L26 call #t~ret0 := fact(~n - 1);< 728402#$Ultimate##0 ~n := #in~n; 728657#L25 assume !(~n <= 0); 728399#L26 call #t~ret0 := fact(~n - 1);< 728403#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728617#factFINAL assume true; 728421#factEXIT >#72#return; 728433#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728529#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 728527#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728525#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728523#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 728098#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 728119#$Ultimate##0 ~n := #in~n; 728623#L25 assume !(~n <= 0); 728137#L26 call #t~ret0 := fact(~n - 1);< 728622#$Ultimate##0 ~n := #in~n; 728621#L25 assume !(~n <= 0); 728218#L26 call #t~ret0 := fact(~n - 1);< 728232#$Ultimate##0 ~n := #in~n; 728816#L25 assume !(~n <= 0); 728242#L26 call #t~ret0 := fact(~n - 1);< 728981#$Ultimate##0 ~n := #in~n; 728980#L25 assume !(~n <= 0); 728277#L26 call #t~ret0 := fact(~n - 1);< 728324#$Ultimate##0 ~n := #in~n; 728979#L25 assume !(~n <= 0); 728395#L26 call #t~ret0 := fact(~n - 1);< 728972#$Ultimate##0 ~n := #in~n; 728969#L25 assume !(~n <= 0); 728650#L26 call #t~ret0 := fact(~n - 1);< 728651#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728618#factFINAL assume true; 728125#factEXIT >#66#return; 728153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728122#factFINAL assume true; 728088#factEXIT >#68#return; 728024#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 728084#$Ultimate##0 ~n := #in~n; 728620#L25 assume !(~n <= 0); 728126#L26 call #t~ret0 := fact(~n - 1);< 728321#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728199#factFINAL assume true; 727997#factEXIT >#70#return; 728073#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 728408#$Ultimate##0 ~n := #in~n; 728406#L25 assume !(~n <= 0); 728245#L26 call #t~ret0 := fact(~n - 1);< 728325#$Ultimate##0 ~n := #in~n; 728655#L25 assume !(~n <= 0); 728279#L26 call #t~ret0 := fact(~n - 1);< 728402#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728400#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728392#factFINAL assume true; 728377#factEXIT >#72#return; 728381#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728521#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 728520#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728519#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728518#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 728094#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 728119#$Ultimate##0 ~n := #in~n; 728623#L25 assume !(~n <= 0); 728137#L26 call #t~ret0 := fact(~n - 1);< 728622#$Ultimate##0 ~n := #in~n; 728621#L25 assume !(~n <= 0); 728218#L26 call #t~ret0 := fact(~n - 1);< 728232#$Ultimate##0 ~n := #in~n; 728816#L25 assume !(~n <= 0); 728242#L26 call #t~ret0 := fact(~n - 1);< 728981#$Ultimate##0 ~n := #in~n; 728980#L25 assume !(~n <= 0); 728277#L26 call #t~ret0 := fact(~n - 1);< 728324#$Ultimate##0 ~n := #in~n; 728979#L25 assume !(~n <= 0); 728395#L26 call #t~ret0 := fact(~n - 1);< 728972#$Ultimate##0 ~n := #in~n; 728969#L25 assume !(~n <= 0); 728650#L26 call #t~ret0 := fact(~n - 1);< 728651#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728618#factFINAL assume true; 728125#factEXIT >#66#return; 728153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728122#factFINAL assume true; 728088#factEXIT >#68#return; 728054#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 728084#$Ultimate##0 ~n := #in~n; 728620#L25 assume !(~n <= 0); 728126#L26 call #t~ret0 := fact(~n - 1);< 728321#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728618#factFINAL assume true; 728125#factEXIT >#66#return; 728121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728085#factFINAL assume true; 728086#factEXIT >#70#return; 728072#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 728176#$Ultimate##0 ~n := #in~n; 728662#L25 assume !(~n <= 0); 728183#L26 call #t~ret0 := fact(~n - 1);< 728658#$Ultimate##0 ~n := #in~n; 728194#L25 assume ~n <= 0;#res := 1; 728187#factFINAL assume true; 728180#factEXIT >#66#return; 728179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728177#factFINAL assume true; 728165#factEXIT >#72#return; 728164#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728162#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 728160#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728157#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728120#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 728102#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 728119#$Ultimate##0 ~n := #in~n; 728623#L25 assume !(~n <= 0); 728137#L26 call #t~ret0 := fact(~n - 1);< 728622#$Ultimate##0 ~n := #in~n; 728621#L25 assume !(~n <= 0); 728218#L26 call #t~ret0 := fact(~n - 1);< 728232#$Ultimate##0 ~n := #in~n; 728816#L25 assume !(~n <= 0); 728242#L26 call #t~ret0 := fact(~n - 1);< 728981#$Ultimate##0 ~n := #in~n; 728980#L25 assume !(~n <= 0); 728277#L26 call #t~ret0 := fact(~n - 1);< 728324#$Ultimate##0 ~n := #in~n; 728979#L25 assume !(~n <= 0); 728395#L26 call #t~ret0 := fact(~n - 1);< 728972#$Ultimate##0 ~n := #in~n; 728969#L25 assume !(~n <= 0); 728650#L26 call #t~ret0 := fact(~n - 1);< 728651#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728618#factFINAL assume true; 728125#factEXIT >#66#return; 728153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728122#factFINAL assume true; 728088#factEXIT >#68#return; 728053#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 728084#$Ultimate##0 ~n := #in~n; 728620#L25 assume !(~n <= 0); 728126#L26 call #t~ret0 := fact(~n - 1);< 728321#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728671#L25 assume !(~n <= 0); 728148#L26 call #t~ret0 := fact(~n - 1);< 728652#$Ultimate##0 ~n := #in~n; 728656#L25 assume ~n <= 0;#res := 1; 728654#factFINAL assume true; 728649#factEXIT >#66#return; 728648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728647#factFINAL assume true; 728394#factEXIT >#66#return; 728393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728320#factFINAL assume true; 728274#factEXIT >#66#return; 728271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728252#factFINAL assume true; 728239#factEXIT >#66#return; 728235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728229#factFINAL assume true; 728216#factEXIT >#66#return; 728221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728618#factFINAL assume true; 728125#factEXIT >#66#return; 728121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728085#factFINAL assume true; 728086#factEXIT >#70#return; 727940#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 728664#$Ultimate##0 ~n := #in~n; 728663#L25 assume ~n <= 0;#res := 1; 727994#factFINAL assume true; 727937#factEXIT >#72#return; 727990#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 729929#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 729928#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 729926#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 729916#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 727913#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 728985#$Ultimate##0 ~n := #in~n; 727912#L25 assume !(~n <= 0); 727916#L26 call #t~ret0 := fact(~n - 1);< 727925#$Ultimate##0 ~n := #in~n; 727926#L25 assume !(~n <= 0); 728831#L26 call #t~ret0 := fact(~n - 1);< 728907#$Ultimate##0 ~n := #in~n; 729657#L25 assume !(~n <= 0); 728829#L26 call #t~ret0 := fact(~n - 1);< 728893#$Ultimate##0 ~n := #in~n; 729166#L25 assume !(~n <= 0); 728833#L26 call #t~ret0 := fact(~n - 1);< 728952#$Ultimate##0 ~n := #in~n; 728959#L25 assume !(~n <= 0); 728827#L26 call #t~ret0 := fact(~n - 1);< 728918#$Ultimate##0 ~n := #in~n; 728934#L25 assume !(~n <= 0); 728826#L26 call #t~ret0 := fact(~n - 1);< 728933#$Ultimate##0 ~n := #in~n; 728934#L25 assume !(~n <= 0); 728826#L26 call #t~ret0 := fact(~n - 1);< 728933#$Ultimate##0 ~n := #in~n; 728938#L25 assume ~n <= 0;#res := 1; 728937#factFINAL assume true; 728932#factEXIT >#66#return; 728931#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728917#factFINAL assume true; 728915#factEXIT >#66#return; 728916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728892#factFINAL assume true; 728874#factEXIT >#66#return; 728875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728949#factFINAL assume true; 728947#factEXIT >#66#return; 728945#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728943#factFINAL assume true; 728905#factEXIT >#66#return; 728904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728899#factFINAL assume true; 728895#factEXIT >#66#return; 728838#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728869#factFINAL assume true; 728824#factEXIT >#66#return; 728822#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728820#factFINAL assume true; 728811#factEXIT >#74#return; 728737#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 727930#$Ultimate##0 ~n := #in~n; 728941#L25 assume !(~n <= 0); 728828#L26 call #t~ret0 := fact(~n - 1);< 728939#$Ultimate##0 ~n := #in~n; 728934#L25 assume !(~n <= 0); 728826#L26 call #t~ret0 := fact(~n - 1);< 728933#$Ultimate##0 ~n := #in~n; 728934#L25 assume !(~n <= 0); 728826#L26 call #t~ret0 := fact(~n - 1);< 728933#$Ultimate##0 ~n := #in~n; 728934#L25 assume !(~n <= 0); 728826#L26 call #t~ret0 := fact(~n - 1);< 728933#$Ultimate##0 ~n := #in~n; 728934#L25 assume !(~n <= 0); 728826#L26 call #t~ret0 := fact(~n - 1);< 728933#$Ultimate##0 ~n := #in~n; 728934#L25 assume !(~n <= 0); 728826#L26 call #t~ret0 := fact(~n - 1);< 728933#$Ultimate##0 ~n := #in~n; 728934#L25 assume !(~n <= 0); 728826#L26 call #t~ret0 := fact(~n - 1);< 728933#$Ultimate##0 ~n := #in~n; 728938#L25 assume ~n <= 0;#res := 1; 728937#factFINAL assume true; 728932#factEXIT >#66#return; 728931#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728917#factFINAL assume true; 728915#factEXIT >#66#return; 728916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728892#factFINAL assume true; 728874#factEXIT >#66#return; 728875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728949#factFINAL assume true; 728947#factEXIT >#66#return; 728945#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728943#factFINAL assume true; 728905#factEXIT >#66#return; 728904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728899#factFINAL assume true; 728895#factEXIT >#66#return; 728838#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728869#factFINAL assume true; 728824#factEXIT >#66#return; 728822#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728820#factFINAL assume true; 728811#factEXIT >#76#return; 727883#L30-7 [2023-02-18 08:58:21,021 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:21,021 INFO L85 PathProgramCache]: Analyzing trace with hash 1294601560, now seen corresponding path program 72 times [2023-02-18 08:58:21,022 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:21,022 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [500223663] [2023-02-18 08:58:21,022 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:21,022 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:21,041 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:21,042 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [760155687] [2023-02-18 08:58:21,042 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:58:21,042 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:21,042 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:21,044 INFO L229 MonitoredProcess]: Starting monitored process 269 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:58:21,044 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (269)] Waiting until timeout for monitored process [2023-02-18 08:58:21,633 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 9 check-sat command(s) [2023-02-18 08:58:21,633 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:58:21,635 INFO L263 TraceCheckSpWp]: Trace formula consists of 401 conjuncts, 7 conjunts are in the unsatisfiable core [2023-02-18 08:58:21,640 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:21,667 INFO L134 CoverageAnalysis]: Checked inductivity of 73145 backedges. 11847 proven. 70 refuted. 0 times theorem prover too weak. 61228 trivial. 0 not checked. [2023-02-18 08:58:21,667 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:21,704 INFO L134 CoverageAnalysis]: Checked inductivity of 73145 backedges. 503 proven. 70 refuted. 0 times theorem prover too weak. 72572 trivial. 0 not checked. [2023-02-18 08:58:21,704 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:21,704 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [500223663] [2023-02-18 08:58:21,704 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:21,704 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [760155687] [2023-02-18 08:58:21,705 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [760155687] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:21,705 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:21,705 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 7 [2023-02-18 08:58:21,705 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [866245506] [2023-02-18 08:58:21,705 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:21,705 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:58:21,705 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:21,705 INFO L85 PathProgramCache]: Analyzing trace with hash -795893693, now seen corresponding path program 72 times [2023-02-18 08:58:21,705 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:21,706 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1428849421] [2023-02-18 08:58:21,706 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:21,706 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:21,722 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:21,723 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [279348626] [2023-02-18 08:58:21,723 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:58:21,723 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:21,723 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:21,725 INFO L229 MonitoredProcess]: Starting monitored process 270 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:58:21,725 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (270)] Waiting until timeout for monitored process [2023-02-18 08:58:22,326 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 26 check-sat command(s) [2023-02-18 08:58:22,326 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:58:22,329 INFO L263 TraceCheckSpWp]: Trace formula consists of 570 conjuncts, 36 conjunts are in the unsatisfiable core [2023-02-18 08:58:22,333 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:22,562 INFO L134 CoverageAnalysis]: Checked inductivity of 53411 backedges. 4892 proven. 3023 refuted. 0 times theorem prover too weak. 45496 trivial. 0 not checked. [2023-02-18 08:58:22,562 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:22,980 INFO L134 CoverageAnalysis]: Checked inductivity of 53411 backedges. 4910 proven. 3066 refuted. 0 times theorem prover too weak. 45435 trivial. 0 not checked. [2023-02-18 08:58:22,981 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:22,981 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1428849421] [2023-02-18 08:58:22,981 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:22,981 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [279348626] [2023-02-18 08:58:22,981 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [279348626] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:22,981 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:22,981 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [21, 32] total 35 [2023-02-18 08:58:22,981 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [830604108] [2023-02-18 08:58:22,981 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:22,981 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:58:22,981 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:58:22,982 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 36 interpolants. [2023-02-18 08:58:22,982 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=171, Invalid=1089, Unknown=0, NotChecked=0, Total=1260 [2023-02-18 08:58:22,982 INFO L87 Difference]: Start difference. First operand 4717 states and 7058 transitions. cyclomatic complexity: 2383 Second operand has 36 states, 32 states have (on average 2.5625) internal successors, (82), 35 states have internal predecessors, (82), 20 states have call successors, (30), 1 states have call predecessors, (30), 14 states have return successors, (39), 19 states have call predecessors, (39), 20 states have call successors, (39) [2023-02-18 08:58:24,694 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:58:24,694 INFO L93 Difference]: Finished difference Result 5677 states and 8747 transitions. [2023-02-18 08:58:24,694 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 5677 states and 8747 transitions. [2023-02-18 08:58:24,720 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 1084 [2023-02-18 08:58:24,750 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 5677 states to 5673 states and 8743 transitions. [2023-02-18 08:58:24,751 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 357 [2023-02-18 08:58:24,751 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 357 [2023-02-18 08:58:24,751 INFO L73 IsDeterministic]: Start isDeterministic. Operand 5673 states and 8743 transitions. [2023-02-18 08:58:24,751 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:58:24,751 INFO L218 hiAutomatonCegarLoop]: Abstraction has 5673 states and 8743 transitions. [2023-02-18 08:58:24,753 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 5673 states and 8743 transitions. [2023-02-18 08:58:24,807 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 5673 to 5216. [2023-02-18 08:58:24,811 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5216 states, 3239 states have (on average 1.0463105896881753) internal successors, (3389), 3236 states have internal predecessors, (3389), 1639 states have call successors, (1661), 445 states have call predecessors, (1661), 338 states have return successors, (2808), 1534 states have call predecessors, (2808), 1639 states have call successors, (2808) [2023-02-18 08:58:24,825 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5216 states to 5216 states and 7858 transitions. [2023-02-18 08:58:24,825 INFO L240 hiAutomatonCegarLoop]: Abstraction has 5216 states and 7858 transitions. [2023-02-18 08:58:24,825 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 29 states. [2023-02-18 08:58:24,826 INFO L428 stractBuchiCegarLoop]: Abstraction has 5216 states and 7858 transitions. [2023-02-18 08:58:24,826 INFO L335 stractBuchiCegarLoop]: ======== Iteration 85 ============ [2023-02-18 08:58:24,826 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 5216 states and 7858 transitions. [2023-02-18 08:58:24,835 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 864 [2023-02-18 08:58:24,835 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:58:24,835 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:58:24,839 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [172, 172, 116, 116, 116, 116, 56, 19, 18, 12, 12, 12, 12, 12, 12, 12, 12, 12, 7, 7, 7, 7, 7, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-18 08:58:24,839 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [139, 139, 112, 112, 112, 112, 27, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:58:24,839 INFO L748 eck$LassoCheckResult]: Stem: 750136#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 750086#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; 750087#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 750108#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; 750137#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 754233#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 754232#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 750080#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 750081#$Ultimate##0 ~n := #in~n; 754253#L25 assume ~n <= 0;#res := 1; 754252#factFINAL assume true; 754219#factEXIT >#68#return; 750128#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 750129#$Ultimate##0 ~n := #in~n; 754247#L25 assume ~n <= 0;#res := 1; 754244#factFINAL assume true; 754241#factEXIT >#70#return; 750076#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 750077#$Ultimate##0 ~n := #in~n; 754458#L25 assume ~n <= 0;#res := 1; 754456#factFINAL assume true; 754455#factEXIT >#72#return; 754454#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 754451#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 754447#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 754446#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 754445#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 754433#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 754434#$Ultimate##0 ~n := #in~n; 754444#L25 assume !(~n <= 0); 754442#L26 call #t~ret0 := fact(~n - 1);< 754443#$Ultimate##0 ~n := #in~n; 754453#L25 assume ~n <= 0;#res := 1; 754450#factFINAL assume true; 754441#factEXIT >#66#return; 754440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754439#factFINAL assume true; 754432#factEXIT >#74#return; 754428#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 754429#$Ultimate##0 ~n := #in~n; 754438#L25 assume ~n <= 0;#res := 1; 754431#factFINAL assume true; 754427#factEXIT >#76#return; 754424#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 754425#$Ultimate##0 ~n := #in~n; 754449#L25 assume !(~n <= 0); 754436#L26 call #t~ret0 := fact(~n - 1);< 754437#$Ultimate##0 ~n := #in~n; 754452#L25 assume ~n <= 0;#res := 1; 754448#factFINAL assume true; 754435#factEXIT >#66#return; 754430#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754426#factFINAL assume true; 754423#factEXIT >#78#return; 754422#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 754399#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 754395#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 754388#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 754387#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 754384#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 754385#$Ultimate##0 ~n := #in~n; 754398#L25 assume !(~n <= 0); 754373#L26 call #t~ret0 := fact(~n - 1);< 754378#$Ultimate##0 ~n := #in~n; 754397#L25 assume !(~n <= 0); 754375#L26 call #t~ret0 := fact(~n - 1);< 754394#$Ultimate##0 ~n := #in~n; 754402#L25 assume ~n <= 0;#res := 1; 754400#factFINAL assume true; 754393#factEXIT >#66#return; 754392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754386#factFINAL assume true; 754372#factEXIT >#66#return; 754376#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754842#factFINAL assume true; 754383#factEXIT >#74#return; 754370#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 754371#$Ultimate##0 ~n := #in~n; 754382#L25 assume ~n <= 0;#res := 1; 754381#factFINAL assume true; 754369#factEXIT >#76#return; 754360#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 754361#$Ultimate##0 ~n := #in~n; 754391#L25 assume !(~n <= 0); 754374#L26 call #t~ret0 := fact(~n - 1);< 754378#$Ultimate##0 ~n := #in~n; 754397#L25 assume !(~n <= 0); 754375#L26 call #t~ret0 := fact(~n - 1);< 754394#$Ultimate##0 ~n := #in~n; 754402#L25 assume ~n <= 0;#res := 1; 754400#factFINAL assume true; 754393#factEXIT >#66#return; 754392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754386#factFINAL assume true; 754372#factEXIT >#66#return; 754367#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754365#factFINAL assume true; 754359#factEXIT >#78#return; 754357#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 754351#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 754343#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 754337#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 754333#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 754328#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 754329#$Ultimate##0 ~n := #in~n; 754345#L25 assume !(~n <= 0); 754340#L26 call #t~ret0 := fact(~n - 1);< 754342#$Ultimate##0 ~n := #in~n; 754358#L25 assume !(~n <= 0); 754341#L26 call #t~ret0 := fact(~n - 1);< 754356#$Ultimate##0 ~n := #in~n; 754358#L25 assume !(~n <= 0); 754341#L26 call #t~ret0 := fact(~n - 1);< 754356#$Ultimate##0 ~n := #in~n; 754380#L25 assume ~n <= 0;#res := 1; 754379#factFINAL assume true; 754368#factEXIT >#66#return; 754366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754364#factFINAL assume true; 754355#factEXIT >#66#return; 754354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754350#factFINAL assume true; 754339#factEXIT >#66#return; 754336#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754332#factFINAL assume true; 754327#factEXIT >#74#return; 754307#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 754308#$Ultimate##0 ~n := #in~n; 754326#L25 assume ~n <= 0;#res := 1; 754323#factFINAL assume true; 754306#factEXIT >#76#return; 750120#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 754290#$Ultimate##0 ~n := #in~n; 754349#L25 assume !(~n <= 0); 754314#L26 call #t~ret0 := fact(~n - 1);< 754318#$Ultimate##0 ~n := #in~n; 754347#L25 assume !(~n <= 0); 754312#L26 call #t~ret0 := fact(~n - 1);< 754353#$Ultimate##0 ~n := #in~n; 754347#L25 assume !(~n <= 0); 754312#L26 call #t~ret0 := fact(~n - 1);< 754353#$Ultimate##0 ~n := #in~n; 754389#L25 assume ~n <= 0;#res := 1; 754362#factFINAL assume true; 754352#factEXIT >#66#return; 754344#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754338#factFINAL assume true; 754335#factEXIT >#66#return; 754330#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754324#factFINAL assume true; 754311#factEXIT >#66#return; 750119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750121#factFINAL assume true; 754289#factEXIT >#78#return; 754287#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 754286#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 754285#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 752101#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 752096#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 752094#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 752030#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 752009#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 751894#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 751900#$Ultimate##0 ~n := #in~n; 751988#L25 assume !(~n <= 0); 751921#L26 call #t~ret0 := fact(~n - 1);< 751950#$Ultimate##0 ~n := #in~n; 752554#L25 assume ~n <= 0;#res := 1; 752550#factFINAL assume true; 752538#factEXIT >#66#return; 752537#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 752536#factFINAL assume true; 752534#factEXIT >#68#return; 752532#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 751885#$Ultimate##0 ~n := #in~n; 752535#L25 assume ~n <= 0;#res := 1; 752533#factFINAL assume true; 752531#factEXIT >#70#return; 752529#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 752530#$Ultimate##0 ~n := #in~n; 752565#L25 assume !(~n <= 0); 751931#L26 call #t~ret0 := fact(~n - 1);< 752553#$Ultimate##0 ~n := #in~n; 752554#L25 assume ~n <= 0;#res := 1; 752550#factFINAL assume true; 752538#factEXIT >#66#return; 752544#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 752559#factFINAL assume true; 752528#factEXIT >#72#return; 752514#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 752512#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 752510#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 752508#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 752506#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 752467#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 752486#$Ultimate##0 ~n := #in~n; 752503#L25 assume !(~n <= 0); 751915#L26 call #t~ret0 := fact(~n - 1);< 752553#$Ultimate##0 ~n := #in~n; 752554#L25 assume ~n <= 0;#res := 1; 752550#factFINAL assume true; 752538#factEXIT >#66#return; 752548#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 752754#factFINAL assume true; 752744#factEXIT >#68#return; 752491#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 752501#$Ultimate##0 ~n := #in~n; 752571#L25 assume !(~n <= 0); 752539#L26 call #t~ret0 := fact(~n - 1);< 752552#$Ultimate##0 ~n := #in~n; 752554#L25 assume ~n <= 0;#res := 1; 752550#factFINAL assume true; 752538#factEXIT >#66#return; 752545#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 752568#factFINAL assume true; 752488#factEXIT >#70#return; 752389#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 752401#$Ultimate##0 ~n := #in~n; 752415#L25 assume ~n <= 0;#res := 1; 752411#factFINAL assume true; 752387#factEXIT >#72#return; 752396#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 752739#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 752738#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 752737#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 752736#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 752649#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 752693#$Ultimate##0 ~n := #in~n; 752758#L25 assume !(~n <= 0); 751940#L26 call #t~ret0 := fact(~n - 1);< 752734#$Ultimate##0 ~n := #in~n; 753547#L25 assume !(~n <= 0); 751939#L26 call #t~ret0 := fact(~n - 1);< 754185#$Ultimate##0 ~n := #in~n; 754195#L25 assume ~n <= 0;#res := 1; 754194#factFINAL assume true; 754182#factEXIT >#66#return; 754180#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754179#factFINAL assume true; 751912#factEXIT >#66#return; 751949#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 752731#factFINAL assume true; 752692#factEXIT >#74#return; 752620#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 752634#$Ultimate##0 ~n := #in~n; 752655#L25 assume !(~n <= 0); 751916#L26 call #t~ret0 := fact(~n - 1);< 751950#$Ultimate##0 ~n := #in~n; 752554#L25 assume ~n <= 0;#res := 1; 752550#factFINAL assume true; 752538#factEXIT >#66#return; 752549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 752633#factFINAL assume true; 752610#factEXIT >#76#return; 752619#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 752630#$Ultimate##0 ~n := #in~n; 752700#L25 assume !(~n <= 0); 752542#L26 call #t~ret0 := fact(~n - 1);< 752552#$Ultimate##0 ~n := #in~n; 752554#L25 assume ~n <= 0;#res := 1; 752550#factFINAL assume true; 752538#factEXIT >#66#return; 752549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 752633#factFINAL assume true; 752610#factEXIT >#78#return; 752627#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 752767#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 752765#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 752763#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 752761#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 752062#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 752654#$Ultimate##0 ~n := #in~n; 753685#L25 assume !(~n <= 0); 752431#L26 call #t~ret0 := fact(~n - 1);< 753673#$Ultimate##0 ~n := #in~n; 753674#L25 assume !(~n <= 0); 752435#L26 call #t~ret0 := fact(~n - 1);< 753704#$Ultimate##0 ~n := #in~n; 753674#L25 assume !(~n <= 0); 752435#L26 call #t~ret0 := fact(~n - 1);< 753704#$Ultimate##0 ~n := #in~n; 753707#L25 assume ~n <= 0;#res := 1; 753722#factFINAL assume true; 753702#factEXIT >#66#return; 753701#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 752572#factFINAL assume true; 752450#factEXIT >#66#return; 752449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 752445#factFINAL assume true; 752422#factEXIT >#66#return; 752441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 753725#factFINAL assume true; 752277#factEXIT >#74#return; 752284#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 752296#$Ultimate##0 ~n := #in~n; 753672#L25 assume !(~n <= 0); 752434#L26 call #t~ret0 := fact(~n - 1);< 753670#$Ultimate##0 ~n := #in~n; 753439#L25 assume ~n <= 0;#res := 1; 753669#factFINAL assume true; 752577#factEXIT >#66#return; 752580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 753724#factFINAL assume true; 752297#factEXIT >#76#return; 752051#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 752084#$Ultimate##0 ~n := #in~n; 753441#L25 assume !(~n <= 0); 752425#L26 call #t~ret0 := fact(~n - 1);< 753438#$Ultimate##0 ~n := #in~n; 753437#L25 assume !(~n <= 0); 752423#L26 call #t~ret0 := fact(~n - 1);< 752455#$Ultimate##0 ~n := #in~n; 753707#L25 assume ~n <= 0;#res := 1; 753722#factFINAL assume true; 753702#factEXIT >#66#return; 753701#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 752572#factFINAL assume true; 752450#factEXIT >#66#return; 752453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 753723#factFINAL assume true; 752299#factEXIT >#78#return; 752301#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 753069#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 753067#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 753056#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 750103#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 750100#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 750101#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 754170#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 751895#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 751900#$Ultimate##0 ~n := #in~n; 751988#L25 assume !(~n <= 0); 751921#L26 call #t~ret0 := fact(~n - 1);< 751950#$Ultimate##0 ~n := #in~n; 754187#L25 assume !(~n <= 0); 751928#L26 call #t~ret0 := fact(~n - 1);< 754186#$Ultimate##0 ~n := #in~n; 754195#L25 assume ~n <= 0;#res := 1; 754194#factFINAL assume true; 754182#factEXIT >#66#return; 754180#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754179#factFINAL assume true; 751912#factEXIT >#66#return; 751908#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 751903#factFINAL assume true; 751892#factEXIT >#68#return; 751881#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 751887#$Ultimate##0 ~n := #in~n; 751901#L25 assume ~n <= 0;#res := 1; 751891#factFINAL assume true; 751878#factEXIT >#70#return; 751668#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 751675#$Ultimate##0 ~n := #in~n; 751679#L25 assume !(~n <= 0); 751389#L26 call #t~ret0 := fact(~n - 1);< 751494#$Ultimate##0 ~n := #in~n; 751501#L25 assume !(~n <= 0); 751498#L26 call #t~ret0 := fact(~n - 1);< 751499#$Ultimate##0 ~n := #in~n; 751504#L25 assume ~n <= 0;#res := 1; 751502#factFINAL assume true; 751497#factEXIT >#66#return; 751496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 751491#factFINAL assume true; 751366#factEXIT >#66#return; 751397#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 751678#factFINAL assume true; 751663#factEXIT >#72#return; 751672#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 754256#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 754255#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 754254#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 754200#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 751609#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 751626#$Ultimate##0 ~n := #in~n; 751682#L25 assume !(~n <= 0); 751384#L26 call #t~ret0 := fact(~n - 1);< 751494#$Ultimate##0 ~n := #in~n; 751501#L25 assume !(~n <= 0); 751498#L26 call #t~ret0 := fact(~n - 1);< 751499#$Ultimate##0 ~n := #in~n; 751504#L25 assume ~n <= 0;#res := 1; 751502#factFINAL assume true; 751497#factEXIT >#66#return; 751496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 751491#factFINAL assume true; 751366#factEXIT >#66#return; 751396#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 751680#factFINAL assume true; 751607#factEXIT >#68#return; 751621#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 751652#$Ultimate##0 ~n := #in~n; 754230#L25 assume !(~n <= 0); 751337#L26 call #t~ret0 := fact(~n - 1);< 751354#$Ultimate##0 ~n := #in~n; 751582#L25 assume ~n <= 0;#res := 1; 751482#factFINAL assume true; 751333#factEXIT >#66#return; 751352#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 751657#factFINAL assume true; 751640#factEXIT >#70#return; 751641#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 751652#$Ultimate##0 ~n := #in~n; 754230#L25 assume !(~n <= 0); 751337#L26 call #t~ret0 := fact(~n - 1);< 751354#$Ultimate##0 ~n := #in~n; 751582#L25 assume ~n <= 0;#res := 1; 751482#factFINAL assume true; 751333#factEXIT >#66#return; 751352#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 751657#factFINAL assume true; 751640#factEXIT >#72#return; 751647#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 753680#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 753678#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 753677#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 753676#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 751610#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 751626#$Ultimate##0 ~n := #in~n; 751682#L25 assume !(~n <= 0); 751384#L26 call #t~ret0 := fact(~n - 1);< 751494#$Ultimate##0 ~n := #in~n; 751501#L25 assume !(~n <= 0); 751498#L26 call #t~ret0 := fact(~n - 1);< 751499#$Ultimate##0 ~n := #in~n; 751504#L25 assume ~n <= 0;#res := 1; 751502#factFINAL assume true; 751497#factEXIT >#66#return; 751496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 751491#factFINAL assume true; 751366#factEXIT >#66#return; 751396#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 751680#factFINAL assume true; 751607#factEXIT >#68#return; 751601#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 751606#$Ultimate##0 ~n := #in~n; 751700#L25 assume !(~n <= 0); 751367#L26 call #t~ret0 := fact(~n - 1);< 751479#$Ultimate##0 ~n := #in~n; 751583#L25 assume !(~n <= 0); 751370#L26 call #t~ret0 := fact(~n - 1);< 751506#$Ultimate##0 ~n := #in~n; 751504#L25 assume ~n <= 0;#res := 1; 751502#factFINAL assume true; 751497#factEXIT >#66#return; 751496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 751491#factFINAL assume true; 751366#factEXIT >#66#return; 751390#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 751687#factFINAL assume true; 751599#factEXIT >#70#return; 751518#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 751524#$Ultimate##0 ~n := #in~n; 751598#L25 assume ~n <= 0;#res := 1; 751594#factFINAL assume true; 751513#factEXIT >#72#return; 751522#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 752126#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 752123#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 752122#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 751199#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 751185#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 751198#$Ultimate##0 ~n := #in~n; 751203#L25 assume !(~n <= 0); 751107#L26 call #t~ret0 := fact(~n - 1);< 751120#$Ultimate##0 ~n := #in~n; 751156#L25 assume !(~n <= 0); 751110#L26 call #t~ret0 := fact(~n - 1);< 751155#$Ultimate##0 ~n := #in~n; 751156#L25 assume !(~n <= 0); 751110#L26 call #t~ret0 := fact(~n - 1);< 751155#$Ultimate##0 ~n := #in~n; 751175#L25 assume ~n <= 0;#res := 1; 751173#factFINAL assume true; 751152#factEXIT >#66#return; 751145#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 751133#factFINAL assume true; 751121#factEXIT >#66#return; 751129#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 751146#factFINAL assume true; 751138#factEXIT >#66#return; 751142#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 751219#factFINAL assume true; 751197#factEXIT >#74#return; 751087#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 751195#$Ultimate##0 ~n := #in~n; 754279#L25 assume !(~n <= 0); 751128#L26 call #t~ret0 := fact(~n - 1);< 751149#$Ultimate##0 ~n := #in~n; 751157#L25 assume !(~n <= 0); 751125#L26 call #t~ret0 := fact(~n - 1);< 751137#$Ultimate##0 ~n := #in~n; 751175#L25 assume ~n <= 0;#res := 1; 751173#factFINAL assume true; 751152#factEXIT >#66#return; 751145#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 751133#factFINAL assume true; 751121#factEXIT >#66#return; 751118#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 751093#factFINAL assume true; 751086#factEXIT >#76#return; 751042#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 751047#$Ultimate##0 ~n := #in~n; 751314#L25 assume !(~n <= 0); 751214#L26 call #t~ret0 := fact(~n - 1);< 751216#$Ultimate##0 ~n := #in~n; 751202#L25 assume ~n <= 0;#res := 1; 751221#factFINAL assume true; 751212#factEXIT >#66#return; 751215#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754228#factFINAL assume true; 751032#factEXIT >#78#return; 751025#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 751024#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 751023#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 750964#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 750965#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 750957#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 750958#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 750951#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 750861#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 750866#$Ultimate##0 ~n := #in~n; 750864#L25 assume !(~n <= 0); 750418#L26 call #t~ret0 := fact(~n - 1);< 750859#$Ultimate##0 ~n := #in~n; 750857#L25 assume !(~n <= 0); 750457#L26 call #t~ret0 := fact(~n - 1);< 750856#$Ultimate##0 ~n := #in~n; 750855#L25 assume !(~n <= 0); 750521#L26 call #t~ret0 := fact(~n - 1);< 750854#$Ultimate##0 ~n := #in~n; 750853#L25 assume !(~n <= 0); 750560#L26 call #t~ret0 := fact(~n - 1);< 750576#$Ultimate##0 ~n := #in~n; 753648#L25 assume !(~n <= 0); 750575#L26 call #t~ret0 := fact(~n - 1);< 750584#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 751022#factFINAL assume true; 751020#factEXIT >#68#return; 751007#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 751017#$Ultimate##0 ~n := #in~n; 751019#L25 assume ~n <= 0;#res := 1; 751018#factFINAL assume true; 751004#factEXIT >#70#return; 750607#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 750946#$Ultimate##0 ~n := #in~n; 750925#L25 assume !(~n <= 0); 750437#L26 call #t~ret0 := fact(~n - 1);< 750444#$Ultimate##0 ~n := #in~n; 750598#L25 assume !(~n <= 0); 750427#L26 call #t~ret0 := fact(~n - 1);< 750588#$Ultimate##0 ~n := #in~n; 750586#L25 assume !(~n <= 0); 750432#L26 call #t~ret0 := fact(~n - 1);< 750470#$Ultimate##0 ~n := #in~n; 750581#L25 assume !(~n <= 0); 750423#L26 call #t~ret0 := fact(~n - 1);< 750525#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754537#factFINAL assume true; 750983#factEXIT >#72#return; 750985#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 752418#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 752417#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 752416#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 752414#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 750407#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 750413#$Ultimate##0 ~n := #in~n; 750454#L25 assume !(~n <= 0); 750419#L26 call #t~ret0 := fact(~n - 1);< 750451#$Ultimate##0 ~n := #in~n; 750858#L25 assume !(~n <= 0); 750463#L26 call #t~ret0 := fact(~n - 1);< 750467#$Ultimate##0 ~n := #in~n; 752146#L25 assume !(~n <= 0); 750522#L26 call #t~ret0 := fact(~n - 1);< 750548#$Ultimate##0 ~n := #in~n; 752145#L25 assume !(~n <= 0); 750557#L26 call #t~ret0 := fact(~n - 1);< 750563#$Ultimate##0 ~n := #in~n; 753648#L25 assume !(~n <= 0); 750575#L26 call #t~ret0 := fact(~n - 1);< 750584#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750415#factFINAL assume true; 750400#factEXIT >#68#return; 750150#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 750238#$Ultimate##0 ~n := #in~n; 750236#L25 assume !(~n <= 0); 750237#L26 call #t~ret0 := fact(~n - 1);< 750662#$Ultimate##0 ~n := #in~n; 750690#L25 assume ~n <= 0;#res := 1; 750681#factFINAL assume true; 750659#factEXIT >#66#return; 750657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750527#factFINAL assume true; 750500#factEXIT >#70#return; 750471#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 750652#$Ultimate##0 ~n := #in~n; 752144#L25 assume !(~n <= 0); 750461#L26 call #t~ret0 := fact(~n - 1);< 750473#$Ultimate##0 ~n := #in~n; 754301#L25 assume !(~n <= 0); 750519#L26 call #t~ret0 := fact(~n - 1);< 750524#$Ultimate##0 ~n := #in~n; 750853#L25 assume !(~n <= 0); 750560#L26 call #t~ret0 := fact(~n - 1);< 750576#$Ultimate##0 ~n := #in~n; 753648#L25 assume !(~n <= 0); 750575#L26 call #t~ret0 := fact(~n - 1);< 750584#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750651#factFINAL assume true; 750611#factEXIT >#72#return; 750631#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 750747#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 750745#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 750743#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 750733#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 750408#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 750413#$Ultimate##0 ~n := #in~n; 750454#L25 assume !(~n <= 0); 750419#L26 call #t~ret0 := fact(~n - 1);< 750451#$Ultimate##0 ~n := #in~n; 750858#L25 assume !(~n <= 0); 750463#L26 call #t~ret0 := fact(~n - 1);< 750467#$Ultimate##0 ~n := #in~n; 752146#L25 assume !(~n <= 0); 750522#L26 call #t~ret0 := fact(~n - 1);< 750548#$Ultimate##0 ~n := #in~n; 752145#L25 assume !(~n <= 0); 750557#L26 call #t~ret0 := fact(~n - 1);< 750563#$Ultimate##0 ~n := #in~n; 753648#L25 assume !(~n <= 0); 750575#L26 call #t~ret0 := fact(~n - 1);< 750584#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750415#factFINAL assume true; 750400#factEXIT >#68#return; 750284#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 750397#$Ultimate##0 ~n := #in~n; 750998#L25 assume !(~n <= 0); 750420#L26 call #t~ret0 := fact(~n - 1);< 750525#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750692#factFINAL assume true; 750663#factEXIT >#70#return; 750547#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 750566#$Ultimate##0 ~n := #in~n; 750552#L25 assume !(~n <= 0); 750520#L26 call #t~ret0 := fact(~n - 1);< 750548#$Ultimate##0 ~n := #in~n; 752145#L25 assume !(~n <= 0); 750557#L26 call #t~ret0 := fact(~n - 1);< 750563#$Ultimate##0 ~n := #in~n; 753648#L25 assume !(~n <= 0); 750575#L26 call #t~ret0 := fact(~n - 1);< 750584#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750523#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750721#factFINAL assume true; 750693#factEXIT >#72#return; 750713#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 750726#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 750725#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 750724#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 750723#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 750405#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 750413#$Ultimate##0 ~n := #in~n; 750454#L25 assume !(~n <= 0); 750419#L26 call #t~ret0 := fact(~n - 1);< 750451#$Ultimate##0 ~n := #in~n; 750858#L25 assume !(~n <= 0); 750463#L26 call #t~ret0 := fact(~n - 1);< 750467#$Ultimate##0 ~n := #in~n; 752146#L25 assume !(~n <= 0); 750522#L26 call #t~ret0 := fact(~n - 1);< 750548#$Ultimate##0 ~n := #in~n; 752145#L25 assume !(~n <= 0); 750557#L26 call #t~ret0 := fact(~n - 1);< 750563#$Ultimate##0 ~n := #in~n; 753648#L25 assume !(~n <= 0); 750575#L26 call #t~ret0 := fact(~n - 1);< 750584#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750415#factFINAL assume true; 750400#factEXIT >#68#return; 750241#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 750397#$Ultimate##0 ~n := #in~n; 750998#L25 assume !(~n <= 0); 750420#L26 call #t~ret0 := fact(~n - 1);< 750525#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750523#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750721#factFINAL assume true; 750693#factEXIT >#70#return; 750568#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 750578#$Ultimate##0 ~n := #in~n; 750573#L25 assume !(~n <= 0); 750555#L26 call #t~ret0 := fact(~n - 1);< 750570#$Ultimate##0 ~n := #in~n; 750997#L25 assume !(~n <= 0); 750558#L26 call #t~ret0 := fact(~n - 1);< 750576#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750692#factFINAL assume true; 750663#factEXIT >#72#return; 750658#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 750656#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 750655#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 750654#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 750653#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 750403#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 750413#$Ultimate##0 ~n := #in~n; 750454#L25 assume !(~n <= 0); 750419#L26 call #t~ret0 := fact(~n - 1);< 750451#$Ultimate##0 ~n := #in~n; 750858#L25 assume !(~n <= 0); 750463#L26 call #t~ret0 := fact(~n - 1);< 750467#$Ultimate##0 ~n := #in~n; 752146#L25 assume !(~n <= 0); 750522#L26 call #t~ret0 := fact(~n - 1);< 750548#$Ultimate##0 ~n := #in~n; 752145#L25 assume !(~n <= 0); 750557#L26 call #t~ret0 := fact(~n - 1);< 750563#$Ultimate##0 ~n := #in~n; 753648#L25 assume !(~n <= 0); 750575#L26 call #t~ret0 := fact(~n - 1);< 750584#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750415#factFINAL assume true; 750400#factEXIT >#68#return; 750242#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 750397#$Ultimate##0 ~n := #in~n; 750998#L25 assume !(~n <= 0); 750420#L26 call #t~ret0 := fact(~n - 1);< 750525#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750651#factFINAL assume true; 750611#factEXIT >#70#return; 750501#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 750514#$Ultimate##0 ~n := #in~n; 751003#L25 assume !(~n <= 0); 750559#L26 call #t~ret0 := fact(~n - 1);< 753647#$Ultimate##0 ~n := #in~n; 750690#L25 assume ~n <= 0;#res := 1; 750681#factFINAL assume true; 750659#factEXIT >#66#return; 750657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750527#factFINAL assume true; 750500#factEXIT >#72#return; 750468#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 750455#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 750452#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 750445#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 750416#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 750404#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 750413#$Ultimate##0 ~n := #in~n; 750454#L25 assume !(~n <= 0); 750419#L26 call #t~ret0 := fact(~n - 1);< 750451#$Ultimate##0 ~n := #in~n; 750858#L25 assume !(~n <= 0); 750463#L26 call #t~ret0 := fact(~n - 1);< 750467#$Ultimate##0 ~n := #in~n; 752146#L25 assume !(~n <= 0); 750522#L26 call #t~ret0 := fact(~n - 1);< 750548#$Ultimate##0 ~n := #in~n; 752145#L25 assume !(~n <= 0); 750557#L26 call #t~ret0 := fact(~n - 1);< 750563#$Ultimate##0 ~n := #in~n; 753648#L25 assume !(~n <= 0); 750575#L26 call #t~ret0 := fact(~n - 1);< 750584#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750415#factFINAL assume true; 750400#factEXIT >#68#return; 750281#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 750397#$Ultimate##0 ~n := #in~n; 750998#L25 assume !(~n <= 0); 750420#L26 call #t~ret0 := fact(~n - 1);< 750525#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750414#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750399#factFINAL assume true; 750240#factEXIT >#70#return; 750161#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 750234#$Ultimate##0 ~n := #in~n; 753661#L25 assume ~n <= 0;#res := 1; 750235#factFINAL assume true; 750138#factEXIT >#72#return; 750231#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 754603#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 754601#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 754599#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 754597#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 754572#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 750048#$Ultimate##0 ~n := #in~n; 754670#L25 assume !(~n <= 0); 750055#L26 call #t~ret0 := fact(~n - 1);< 754669#$Ultimate##0 ~n := #in~n; 754668#L25 assume !(~n <= 0); 750052#L26 call #t~ret0 := fact(~n - 1);< 754589#$Ultimate##0 ~n := #in~n; 754654#L25 assume !(~n <= 0); 750053#L26 call #t~ret0 := fact(~n - 1);< 754648#$Ultimate##0 ~n := #in~n; 754645#L25 assume !(~n <= 0); 750063#L26 call #t~ret0 := fact(~n - 1);< 754610#$Ultimate##0 ~n := #in~n; 754640#L25 assume !(~n <= 0); 750060#L26 call #t~ret0 := fact(~n - 1);< 754629#$Ultimate##0 ~n := #in~n; 754640#L25 assume !(~n <= 0); 750060#L26 call #t~ret0 := fact(~n - 1);< 754629#$Ultimate##0 ~n := #in~n; 754639#L25 assume ~n <= 0;#res := 1; 754638#factFINAL assume true; 754628#factEXIT >#66#return; 754625#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754609#factFINAL assume true; 754593#factEXIT >#66#return; 754594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754642#factFINAL assume true; 754636#factEXIT >#66#return; 754627#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754624#factFINAL assume true; 754606#factEXIT >#66#return; 754592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754588#factFINAL assume true; 754585#factEXIT >#66#return; 754586#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750082#factFINAL assume true; 750051#factEXIT >#66#return; 750066#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754671#factFINAL assume true; 754672#factEXIT >#74#return; 754563#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 754582#$Ultimate##0 ~n := #in~n; 754611#L25 assume !(~n <= 0); 750061#L26 call #t~ret0 := fact(~n - 1);< 754587#$Ultimate##0 ~n := #in~n; 754640#L25 assume !(~n <= 0); 750060#L26 call #t~ret0 := fact(~n - 1);< 754629#$Ultimate##0 ~n := #in~n; 754640#L25 assume !(~n <= 0); 750060#L26 call #t~ret0 := fact(~n - 1);< 754629#$Ultimate##0 ~n := #in~n; 754640#L25 assume !(~n <= 0); 750060#L26 call #t~ret0 := fact(~n - 1);< 754629#$Ultimate##0 ~n := #in~n; 754640#L25 assume !(~n <= 0); 750060#L26 call #t~ret0 := fact(~n - 1);< 754629#$Ultimate##0 ~n := #in~n; 754640#L25 assume !(~n <= 0); 750060#L26 call #t~ret0 := fact(~n - 1);< 754629#$Ultimate##0 ~n := #in~n; 754639#L25 assume ~n <= 0;#res := 1; 754638#factFINAL assume true; 754628#factEXIT >#66#return; 754625#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754609#factFINAL assume true; 754593#factEXIT >#66#return; 754594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754642#factFINAL assume true; 754636#factEXIT >#66#return; 754627#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754624#factFINAL assume true; 754606#factEXIT >#66#return; 754592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754588#factFINAL assume true; 754585#factEXIT >#66#return; 754586#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750082#factFINAL assume true; 750051#factEXIT >#66#return; 750066#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754671#factFINAL assume true; 754672#factEXIT >#76#return; 750094#L30-7 [2023-02-18 08:58:24,840 INFO L750 eck$LassoCheckResult]: Loop: 750094#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 750130#$Ultimate##0 ~n := #in~n; 750122#L25 assume !(~n <= 0); 750092#L26 call #t~ret0 := fact(~n - 1);< 750096#$Ultimate##0 ~n := #in~n; 754695#L25 assume ~n <= 0;#res := 1; 754694#factFINAL assume true; 754693#factEXIT >#66#return; 754692#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754691#factFINAL assume true; 750993#factEXIT >#78#return; 750995#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 755203#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 755202#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 755200#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 755156#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 755152#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 754733#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 754493#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 754305#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 750079#$Ultimate##0 ~n := #in~n; 754304#L25 assume !(~n <= 0); 750828#L26 call #t~ret0 := fact(~n - 1);< 750927#$Ultimate##0 ~n := #in~n; 750928#L25 assume !(~n <= 0); 750424#L26 call #t~ret0 := fact(~n - 1);< 750444#$Ultimate##0 ~n := #in~n; 750598#L25 assume !(~n <= 0); 750427#L26 call #t~ret0 := fact(~n - 1);< 750588#$Ultimate##0 ~n := #in~n; 750586#L25 assume !(~n <= 0); 750432#L26 call #t~ret0 := fact(~n - 1);< 750470#$Ultimate##0 ~n := #in~n; 750581#L25 assume !(~n <= 0); 750423#L26 call #t~ret0 := fact(~n - 1);< 750525#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750937#factFINAL assume true; 750931#factEXIT >#66#return; 750935#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754716#factFINAL assume true; 754715#factEXIT >#68#return; 751011#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 751017#$Ultimate##0 ~n := #in~n; 751019#L25 assume ~n <= 0;#res := 1; 751018#factFINAL assume true; 751004#factEXIT >#70#return; 750735#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 750959#$Ultimate##0 ~n := #in~n; 750960#L25 assume !(~n <= 0); 750730#L26 call #t~ret0 := fact(~n - 1);< 750732#$Ultimate##0 ~n := #in~n; 750731#L25 assume !(~n <= 0); 750430#L26 call #t~ret0 := fact(~n - 1);< 750728#$Ultimate##0 ~n := #in~n; 750727#L25 assume !(~n <= 0); 750422#L26 call #t~ret0 := fact(~n - 1);< 750466#$Ultimate##0 ~n := #in~n; 750865#L25 assume !(~n <= 0); 750425#L26 call #t~ret0 := fact(~n - 1);< 750525#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750937#factFINAL assume true; 750931#factEXIT >#66#return; 750832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754500#factFINAL assume true; 754501#factEXIT >#72#return; 754530#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 754975#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 754974#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 754973#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 754972#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 750921#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 751001#$Ultimate##0 ~n := #in~n; 750999#L25 assume !(~n <= 0); 750826#L26 call #t~ret0 := fact(~n - 1);< 750927#$Ultimate##0 ~n := #in~n; 750928#L25 assume !(~n <= 0); 750424#L26 call #t~ret0 := fact(~n - 1);< 750444#$Ultimate##0 ~n := #in~n; 750598#L25 assume !(~n <= 0); 750427#L26 call #t~ret0 := fact(~n - 1);< 750588#$Ultimate##0 ~n := #in~n; 750586#L25 assume !(~n <= 0); 750432#L26 call #t~ret0 := fact(~n - 1);< 750470#$Ultimate##0 ~n := #in~n; 750581#L25 assume !(~n <= 0); 750423#L26 call #t~ret0 := fact(~n - 1);< 750525#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750937#factFINAL assume true; 750931#factEXIT >#66#return; 750930#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750929#factFINAL assume true; 750867#factEXIT >#68#return; 750218#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 750238#$Ultimate##0 ~n := #in~n; 750236#L25 assume !(~n <= 0); 750237#L26 call #t~ret0 := fact(~n - 1);< 750662#$Ultimate##0 ~n := #in~n; 750690#L25 assume ~n <= 0;#res := 1; 750681#factFINAL assume true; 750659#factEXIT >#66#return; 750657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750527#factFINAL assume true; 750500#factEXIT >#70#return; 750319#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 750526#$Ultimate##0 ~n := #in~n; 750499#L25 assume !(~n <= 0); 750436#L26 call #t~ret0 := fact(~n - 1);< 750444#$Ultimate##0 ~n := #in~n; 750598#L25 assume !(~n <= 0); 750427#L26 call #t~ret0 := fact(~n - 1);< 750588#$Ultimate##0 ~n := #in~n; 750586#L25 assume !(~n <= 0); 750432#L26 call #t~ret0 := fact(~n - 1);< 750470#$Ultimate##0 ~n := #in~n; 750581#L25 assume !(~n <= 0); 750423#L26 call #t~ret0 := fact(~n - 1);< 750525#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750414#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750399#factFINAL assume true; 750240#factEXIT >#72#return; 750365#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 754970#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 754968#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 754966#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 754964#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 750910#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 750924#$Ultimate##0 ~n := #in~n; 751000#L25 assume !(~n <= 0); 750932#L26 call #t~ret0 := fact(~n - 1);< 750950#$Ultimate##0 ~n := #in~n; 750948#L25 assume !(~n <= 0); 750435#L26 call #t~ret0 := fact(~n - 1);< 750451#$Ultimate##0 ~n := #in~n; 750858#L25 assume !(~n <= 0); 750463#L26 call #t~ret0 := fact(~n - 1);< 750467#$Ultimate##0 ~n := #in~n; 752146#L25 assume !(~n <= 0); 750522#L26 call #t~ret0 := fact(~n - 1);< 750548#$Ultimate##0 ~n := #in~n; 752145#L25 assume !(~n <= 0); 750557#L26 call #t~ret0 := fact(~n - 1);< 750563#$Ultimate##0 ~n := #in~n; 753648#L25 assume !(~n <= 0); 750575#L26 call #t~ret0 := fact(~n - 1);< 750584#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750937#factFINAL assume true; 750931#factEXIT >#66#return; 750930#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750929#factFINAL assume true; 750867#factEXIT >#68#return; 750270#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 750398#$Ultimate##0 ~n := #in~n; 750945#L25 assume !(~n <= 0); 750426#L26 call #t~ret0 := fact(~n - 1);< 750525#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750692#factFINAL assume true; 750663#factEXIT >#70#return; 750592#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 750600#$Ultimate##0 ~n := #in~n; 750599#L25 assume !(~n <= 0); 750462#L26 call #t~ret0 := fact(~n - 1);< 750589#$Ultimate##0 ~n := #in~n; 750587#L25 assume !(~n <= 0); 750517#L26 call #t~ret0 := fact(~n - 1);< 750585#$Ultimate##0 ~n := #in~n; 750583#L25 assume !(~n <= 0); 750556#L26 call #t~ret0 := fact(~n - 1);< 750576#$Ultimate##0 ~n := #in~n; 753648#L25 assume !(~n <= 0); 750575#L26 call #t~ret0 := fact(~n - 1);< 750584#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750651#factFINAL assume true; 750611#factEXIT >#72#return; 750645#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 754959#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 754955#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 754951#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 754947#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 750893#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 750924#$Ultimate##0 ~n := #in~n; 751000#L25 assume !(~n <= 0); 750932#L26 call #t~ret0 := fact(~n - 1);< 750950#$Ultimate##0 ~n := #in~n; 750948#L25 assume !(~n <= 0); 750435#L26 call #t~ret0 := fact(~n - 1);< 750451#$Ultimate##0 ~n := #in~n; 750858#L25 assume !(~n <= 0); 750463#L26 call #t~ret0 := fact(~n - 1);< 750467#$Ultimate##0 ~n := #in~n; 752146#L25 assume !(~n <= 0); 750522#L26 call #t~ret0 := fact(~n - 1);< 750548#$Ultimate##0 ~n := #in~n; 752145#L25 assume !(~n <= 0); 750557#L26 call #t~ret0 := fact(~n - 1);< 750563#$Ultimate##0 ~n := #in~n; 753648#L25 assume !(~n <= 0); 750575#L26 call #t~ret0 := fact(~n - 1);< 750584#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750937#factFINAL assume true; 750931#factEXIT >#66#return; 750930#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750929#factFINAL assume true; 750867#factEXIT >#68#return; 750308#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 750398#$Ultimate##0 ~n := #in~n; 750945#L25 assume !(~n <= 0); 750426#L26 call #t~ret0 := fact(~n - 1);< 750525#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750523#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750721#factFINAL assume true; 750693#factEXIT >#70#return; 750532#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 750565#$Ultimate##0 ~n := #in~n; 750551#L25 assume !(~n <= 0); 750458#L26 call #t~ret0 := fact(~n - 1);< 750545#$Ultimate##0 ~n := #in~n; 750571#L25 assume !(~n <= 0); 750518#L26 call #t~ret0 := fact(~n - 1);< 750564#$Ultimate##0 ~n := #in~n; 750583#L25 assume !(~n <= 0); 750556#L26 call #t~ret0 := fact(~n - 1);< 750576#$Ultimate##0 ~n := #in~n; 753648#L25 assume !(~n <= 0); 750575#L26 call #t~ret0 := fact(~n - 1);< 750584#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750651#factFINAL assume true; 750611#factEXIT >#72#return; 750635#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 754936#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 754935#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 754934#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 754933#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 750890#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 750924#$Ultimate##0 ~n := #in~n; 751000#L25 assume !(~n <= 0); 750932#L26 call #t~ret0 := fact(~n - 1);< 750950#$Ultimate##0 ~n := #in~n; 750948#L25 assume !(~n <= 0); 750435#L26 call #t~ret0 := fact(~n - 1);< 750451#$Ultimate##0 ~n := #in~n; 750858#L25 assume !(~n <= 0); 750463#L26 call #t~ret0 := fact(~n - 1);< 750467#$Ultimate##0 ~n := #in~n; 752146#L25 assume !(~n <= 0); 750522#L26 call #t~ret0 := fact(~n - 1);< 750548#$Ultimate##0 ~n := #in~n; 752145#L25 assume !(~n <= 0); 750557#L26 call #t~ret0 := fact(~n - 1);< 750563#$Ultimate##0 ~n := #in~n; 753648#L25 assume !(~n <= 0); 750575#L26 call #t~ret0 := fact(~n - 1);< 750584#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750937#factFINAL assume true; 750931#factEXIT >#66#return; 750930#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750929#factFINAL assume true; 750867#factEXIT >#68#return; 750303#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 750398#$Ultimate##0 ~n := #in~n; 750945#L25 assume !(~n <= 0); 750426#L26 call #t~ret0 := fact(~n - 1);< 750525#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750651#factFINAL assume true; 750611#factEXIT >#70#return; 750543#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 750565#$Ultimate##0 ~n := #in~n; 750551#L25 assume !(~n <= 0); 750458#L26 call #t~ret0 := fact(~n - 1);< 750545#$Ultimate##0 ~n := #in~n; 750571#L25 assume !(~n <= 0); 750518#L26 call #t~ret0 := fact(~n - 1);< 750564#$Ultimate##0 ~n := #in~n; 750583#L25 assume !(~n <= 0); 750556#L26 call #t~ret0 := fact(~n - 1);< 750576#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750523#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750721#factFINAL assume true; 750693#factEXIT >#72#return; 750718#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 754928#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 754927#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 754926#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 754925#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 750869#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 750924#$Ultimate##0 ~n := #in~n; 751000#L25 assume !(~n <= 0); 750932#L26 call #t~ret0 := fact(~n - 1);< 750950#$Ultimate##0 ~n := #in~n; 750948#L25 assume !(~n <= 0); 750435#L26 call #t~ret0 := fact(~n - 1);< 750451#$Ultimate##0 ~n := #in~n; 750858#L25 assume !(~n <= 0); 750463#L26 call #t~ret0 := fact(~n - 1);< 750467#$Ultimate##0 ~n := #in~n; 752146#L25 assume !(~n <= 0); 750522#L26 call #t~ret0 := fact(~n - 1);< 750548#$Ultimate##0 ~n := #in~n; 752145#L25 assume !(~n <= 0); 750557#L26 call #t~ret0 := fact(~n - 1);< 750563#$Ultimate##0 ~n := #in~n; 753648#L25 assume !(~n <= 0); 750575#L26 call #t~ret0 := fact(~n - 1);< 750584#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750937#factFINAL assume true; 750931#factEXIT >#66#return; 750930#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750929#factFINAL assume true; 750867#factEXIT >#68#return; 750287#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 750398#$Ultimate##0 ~n := #in~n; 750945#L25 assume !(~n <= 0); 750426#L26 call #t~ret0 := fact(~n - 1);< 750525#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750414#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750399#factFINAL assume true; 750240#factEXIT >#70#return; 750381#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 750565#$Ultimate##0 ~n := #in~n; 750551#L25 assume !(~n <= 0); 750458#L26 call #t~ret0 := fact(~n - 1);< 750545#$Ultimate##0 ~n := #in~n; 750571#L25 assume !(~n <= 0); 750518#L26 call #t~ret0 := fact(~n - 1);< 750564#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750692#factFINAL assume true; 750663#factEXIT >#72#return; 750665#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 754901#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 754899#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 754897#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 754896#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 750902#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 750924#$Ultimate##0 ~n := #in~n; 751000#L25 assume !(~n <= 0); 750932#L26 call #t~ret0 := fact(~n - 1);< 750950#$Ultimate##0 ~n := #in~n; 750948#L25 assume !(~n <= 0); 750435#L26 call #t~ret0 := fact(~n - 1);< 750451#$Ultimate##0 ~n := #in~n; 750858#L25 assume !(~n <= 0); 750463#L26 call #t~ret0 := fact(~n - 1);< 750467#$Ultimate##0 ~n := #in~n; 752146#L25 assume !(~n <= 0); 750522#L26 call #t~ret0 := fact(~n - 1);< 750548#$Ultimate##0 ~n := #in~n; 752145#L25 assume !(~n <= 0); 750557#L26 call #t~ret0 := fact(~n - 1);< 750563#$Ultimate##0 ~n := #in~n; 753648#L25 assume !(~n <= 0); 750575#L26 call #t~ret0 := fact(~n - 1);< 750584#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750937#factFINAL assume true; 750931#factEXIT >#66#return; 750930#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750929#factFINAL assume true; 750867#factEXIT >#68#return; 750250#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 750398#$Ultimate##0 ~n := #in~n; 750945#L25 assume !(~n <= 0); 750426#L26 call #t~ret0 := fact(~n - 1);< 750525#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750937#factFINAL assume true; 750931#factEXIT >#66#return; 750934#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754259#factFINAL assume true; 754260#factEXIT >#70#return; 750377#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 750852#$Ultimate##0 ~n := #in~n; 750850#L25 assume !(~n <= 0); 750460#L26 call #t~ret0 := fact(~n - 1);< 750848#$Ultimate##0 ~n := #in~n; 750690#L25 assume ~n <= 0;#res := 1; 750681#factFINAL assume true; 750659#factEXIT >#66#return; 750657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750527#factFINAL assume true; 750500#factEXIT >#72#return; 750511#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 754838#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 754837#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 754769#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 752129#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 750920#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 750924#$Ultimate##0 ~n := #in~n; 751000#L25 assume !(~n <= 0); 750932#L26 call #t~ret0 := fact(~n - 1);< 750950#$Ultimate##0 ~n := #in~n; 750948#L25 assume !(~n <= 0); 750435#L26 call #t~ret0 := fact(~n - 1);< 750451#$Ultimate##0 ~n := #in~n; 750858#L25 assume !(~n <= 0); 750463#L26 call #t~ret0 := fact(~n - 1);< 750467#$Ultimate##0 ~n := #in~n; 752146#L25 assume !(~n <= 0); 750522#L26 call #t~ret0 := fact(~n - 1);< 750548#$Ultimate##0 ~n := #in~n; 752145#L25 assume !(~n <= 0); 750557#L26 call #t~ret0 := fact(~n - 1);< 750563#$Ultimate##0 ~n := #in~n; 753648#L25 assume !(~n <= 0); 750575#L26 call #t~ret0 := fact(~n - 1);< 750584#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750937#factFINAL assume true; 750931#factEXIT >#66#return; 750930#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750929#factFINAL assume true; 750867#factEXIT >#68#return; 750252#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 750398#$Ultimate##0 ~n := #in~n; 750945#L25 assume !(~n <= 0); 750426#L26 call #t~ret0 := fact(~n - 1);< 750525#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750582#L25 assume !(~n <= 0); 750421#L26 call #t~ret0 := fact(~n - 1);< 750577#$Ultimate##0 ~n := #in~n; 750580#L25 assume ~n <= 0;#res := 1; 750579#factFINAL assume true; 750574#factEXIT >#66#return; 750572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750567#factFINAL assume true; 750554#factEXIT >#66#return; 750550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750528#factFINAL assume true; 750516#factEXIT >#66#return; 750515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750469#factFINAL assume true; 750456#factEXIT >#66#return; 750453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750446#factFINAL assume true; 750417#factEXIT >#66#return; 750441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750937#factFINAL assume true; 750931#factEXIT >#66#return; 750934#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754259#factFINAL assume true; 754260#factEXIT >#70#return; 750160#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 750851#$Ultimate##0 ~n := #in~n; 750849#L25 assume ~n <= 0;#res := 1; 750235#factFINAL assume true; 750138#factEXIT >#72#return; 750104#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 750105#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 755228#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 755226#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 750111#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 750112#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 754659#$Ultimate##0 ~n := #in~n; 754657#L25 assume !(~n <= 0); 750062#L26 call #t~ret0 := fact(~n - 1);< 754656#$Ultimate##0 ~n := #in~n; 754653#L25 assume !(~n <= 0); 750057#L26 call #t~ret0 := fact(~n - 1);< 754652#$Ultimate##0 ~n := #in~n; 754650#L25 assume !(~n <= 0); 750059#L26 call #t~ret0 := fact(~n - 1);< 754608#$Ultimate##0 ~n := #in~n; 754651#L25 assume !(~n <= 0); 750054#L26 call #t~ret0 := fact(~n - 1);< 754637#$Ultimate##0 ~n := #in~n; 754663#L25 assume !(~n <= 0); 750056#L26 call #t~ret0 := fact(~n - 1);< 754610#$Ultimate##0 ~n := #in~n; 754640#L25 assume !(~n <= 0); 750060#L26 call #t~ret0 := fact(~n - 1);< 754629#$Ultimate##0 ~n := #in~n; 754639#L25 assume ~n <= 0;#res := 1; 754638#factFINAL assume true; 754628#factEXIT >#66#return; 754625#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754609#factFINAL assume true; 754593#factEXIT >#66#return; 754594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754642#factFINAL assume true; 754636#factEXIT >#66#return; 754627#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754624#factFINAL assume true; 754606#factEXIT >#66#return; 754592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754588#factFINAL assume true; 754585#factEXIT >#66#return; 754586#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 750082#factFINAL assume true; 750051#factEXIT >#66#return; 750066#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754671#factFINAL assume true; 754672#factEXIT >#74#return; 754562#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 754582#$Ultimate##0 ~n := #in~n; 754611#L25 assume !(~n <= 0); 750061#L26 call #t~ret0 := fact(~n - 1);< 754587#$Ultimate##0 ~n := #in~n; 754640#L25 assume !(~n <= 0); 750060#L26 call #t~ret0 := fact(~n - 1);< 754629#$Ultimate##0 ~n := #in~n; 754640#L25 assume !(~n <= 0); 750060#L26 call #t~ret0 := fact(~n - 1);< 754629#$Ultimate##0 ~n := #in~n; 754640#L25 assume !(~n <= 0); 750060#L26 call #t~ret0 := fact(~n - 1);< 754629#$Ultimate##0 ~n := #in~n; 754640#L25 assume !(~n <= 0); 750060#L26 call #t~ret0 := fact(~n - 1);< 754629#$Ultimate##0 ~n := #in~n; 754639#L25 assume ~n <= 0;#res := 1; 754638#factFINAL assume true; 754628#factEXIT >#66#return; 754625#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754609#factFINAL assume true; 754593#factEXIT >#66#return; 754594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754642#factFINAL assume true; 754636#factEXIT >#66#return; 754627#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754624#factFINAL assume true; 754606#factEXIT >#66#return; 754592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754588#factFINAL assume true; 754585#factEXIT >#66#return; 754584#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 754583#factFINAL assume true; 754560#factEXIT >#76#return; 750094#L30-7 [2023-02-18 08:58:24,840 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:24,840 INFO L85 PathProgramCache]: Analyzing trace with hash 1294601560, now seen corresponding path program 73 times [2023-02-18 08:58:24,841 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:24,841 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [703617916] [2023-02-18 08:58:24,841 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:24,841 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:24,862 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:24,862 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2034899883] [2023-02-18 08:58:24,862 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:58:24,862 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:24,862 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:24,864 INFO L229 MonitoredProcess]: Starting monitored process 271 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:58:24,865 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (271)] Waiting until timeout for monitored process [2023-02-18 08:58:25,627 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:58:25,635 INFO L263 TraceCheckSpWp]: Trace formula consists of 2377 conjuncts, 15 conjunts are in the unsatisfiable core [2023-02-18 08:58:25,641 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:25,690 INFO L134 CoverageAnalysis]: Checked inductivity of 73145 backedges. 37937 proven. 338 refuted. 0 times theorem prover too weak. 34870 trivial. 0 not checked. [2023-02-18 08:58:25,690 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:25,793 INFO L134 CoverageAnalysis]: Checked inductivity of 73145 backedges. 1787 proven. 1915 refuted. 0 times theorem prover too weak. 69443 trivial. 0 not checked. [2023-02-18 08:58:25,793 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:25,793 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [703617916] [2023-02-18 08:58:25,793 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:25,793 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2034899883] [2023-02-18 08:58:25,793 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2034899883] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:25,794 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:25,794 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 16 [2023-02-18 08:58:25,794 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1527643945] [2023-02-18 08:58:25,794 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:25,795 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:58:25,795 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:25,795 INFO L85 PathProgramCache]: Analyzing trace with hash -1815698357, now seen corresponding path program 73 times [2023-02-18 08:58:25,795 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:25,795 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [855193993] [2023-02-18 08:58:25,795 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:25,795 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:25,814 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:25,814 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2001349416] [2023-02-18 08:58:25,814 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:58:25,814 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:25,814 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:25,818 INFO L229 MonitoredProcess]: Starting monitored process 272 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:58:25,818 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (272)] Waiting until timeout for monitored process [2023-02-18 08:58:26,517 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:58:26,524 INFO L263 TraceCheckSpWp]: Trace formula consists of 1811 conjuncts, 34 conjunts are in the unsatisfiable core [2023-02-18 08:58:26,529 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:26,648 INFO L134 CoverageAnalysis]: Checked inductivity of 51053 backedges. 26542 proven. 1725 refuted. 0 times theorem prover too weak. 22786 trivial. 0 not checked. [2023-02-18 08:58:26,648 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:27,019 INFO L134 CoverageAnalysis]: Checked inductivity of 51053 backedges. 1186 proven. 5522 refuted. 0 times theorem prover too weak. 44345 trivial. 0 not checked. [2023-02-18 08:58:27,019 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:27,019 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [855193993] [2023-02-18 08:58:27,019 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:27,019 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2001349416] [2023-02-18 08:58:27,019 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2001349416] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:27,019 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:27,020 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 31] total 39 [2023-02-18 08:58:27,020 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1783186145] [2023-02-18 08:58:27,020 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:27,020 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:58:27,020 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:58:27,020 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 39 interpolants. [2023-02-18 08:58:27,021 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=188, Invalid=1294, Unknown=0, NotChecked=0, Total=1482 [2023-02-18 08:58:27,021 INFO L87 Difference]: Start difference. First operand 5216 states and 7858 transitions. cyclomatic complexity: 2684 Second operand has 39 states, 35 states have (on average 2.9714285714285715) internal successors, (104), 39 states have internal predecessors, (104), 24 states have call successors, (49), 2 states have call predecessors, (49), 13 states have return successors, (56), 20 states have call predecessors, (56), 24 states have call successors, (56) [2023-02-18 08:58:29,315 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:58:29,315 INFO L93 Difference]: Finished difference Result 5656 states and 8673 transitions. [2023-02-18 08:58:29,315 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 5656 states and 8673 transitions. [2023-02-18 08:58:29,340 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 496 [2023-02-18 08:58:29,366 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 5656 states to 5562 states and 8523 transitions. [2023-02-18 08:58:29,366 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 321 [2023-02-18 08:58:29,367 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 321 [2023-02-18 08:58:29,367 INFO L73 IsDeterministic]: Start isDeterministic. Operand 5562 states and 8523 transitions. [2023-02-18 08:58:29,367 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:58:29,367 INFO L218 hiAutomatonCegarLoop]: Abstraction has 5562 states and 8523 transitions. [2023-02-18 08:58:29,368 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 5562 states and 8523 transitions. [2023-02-18 08:58:29,417 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 5562 to 4986. [2023-02-18 08:58:29,420 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4986 states, 3091 states have (on average 1.0478809446780977) internal successors, (3239), 3090 states have internal predecessors, (3239), 1557 states have call successors, (1579), 455 states have call predecessors, (1579), 338 states have return successors, (2696), 1440 states have call predecessors, (2696), 1557 states have call successors, (2696) [2023-02-18 08:58:29,433 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4986 states to 4986 states and 7514 transitions. [2023-02-18 08:58:29,433 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4986 states and 7514 transitions. [2023-02-18 08:58:29,433 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 58 states. [2023-02-18 08:58:29,434 INFO L428 stractBuchiCegarLoop]: Abstraction has 4986 states and 7514 transitions. [2023-02-18 08:58:29,434 INFO L335 stractBuchiCegarLoop]: ======== Iteration 86 ============ [2023-02-18 08:58:29,434 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4986 states and 7514 transitions. [2023-02-18 08:58:29,442 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 478 [2023-02-18 08:58:29,442 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:58:29,442 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:58:29,448 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [285, 285, 207, 207, 207, 207, 78, 26, 25, 19, 19, 19, 19, 19, 19, 19, 18, 18, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 4, 4, 1, 1, 1, 1] [2023-02-18 08:58:29,448 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [149, 149, 122, 122, 122, 122, 27, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:58:29,449 INFO L748 eck$LassoCheckResult]: Stem: 772782#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 772722#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; 772723#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 772747#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; 772783#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 776848#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 776847#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 776842#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 776843#$Ultimate##0 ~n := #in~n; 776846#L25 assume ~n <= 0;#res := 1; 776845#factFINAL assume true; 776841#factEXIT >#68#return; 776837#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 776838#$Ultimate##0 ~n := #in~n; 776844#L25 assume ~n <= 0;#res := 1; 776840#factFINAL assume true; 776836#factEXIT >#70#return; 776833#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 776834#$Ultimate##0 ~n := #in~n; 776839#L25 assume ~n <= 0;#res := 1; 776835#factFINAL assume true; 776832#factEXIT >#72#return; 776831#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 776829#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 776825#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 776823#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 776821#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 776819#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 776820#$Ultimate##0 ~n := #in~n; 776830#L25 assume !(~n <= 0); 776827#L26 call #t~ret0 := fact(~n - 1);< 776828#$Ultimate##0 ~n := #in~n; 776858#L25 assume ~n <= 0;#res := 1; 776850#factFINAL assume true; 776826#factEXIT >#66#return; 776824#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 776822#factFINAL assume true; 776818#factEXIT >#74#return; 776816#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 776817#$Ultimate##0 ~n := #in~n; 776852#L25 assume ~n <= 0;#res := 1; 776849#factFINAL assume true; 776815#factEXIT >#76#return; 776812#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 776813#$Ultimate##0 ~n := #in~n; 776872#L25 assume !(~n <= 0); 776855#L26 call #t~ret0 := fact(~n - 1);< 776856#$Ultimate##0 ~n := #in~n; 776859#L25 assume ~n <= 0;#res := 1; 776857#factFINAL assume true; 776854#factEXIT >#66#return; 776853#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 776851#factFINAL assume true; 776811#factEXIT >#78#return; 776804#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 776802#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 776801#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 776799#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 776798#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 776796#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 776797#$Ultimate##0 ~n := #in~n; 776814#L25 assume !(~n <= 0); 776807#L26 call #t~ret0 := fact(~n - 1);< 776810#$Ultimate##0 ~n := #in~n; 776869#L25 assume !(~n <= 0); 776806#L26 call #t~ret0 := fact(~n - 1);< 776868#$Ultimate##0 ~n := #in~n; 776874#L25 assume ~n <= 0;#res := 1; 776873#factFINAL assume true; 776871#factEXIT >#66#return; 776870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 776867#factFINAL assume true; 776864#factEXIT >#66#return; 776803#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 776800#factFINAL assume true; 776795#factEXIT >#74#return; 776793#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 776794#$Ultimate##0 ~n := #in~n; 776861#L25 assume ~n <= 0;#res := 1; 776860#factFINAL assume true; 776792#factEXIT >#76#return; 776790#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 776791#$Ultimate##0 ~n := #in~n; 776866#L25 assume !(~n <= 0); 776808#L26 call #t~ret0 := fact(~n - 1);< 776810#$Ultimate##0 ~n := #in~n; 776869#L25 assume !(~n <= 0); 776806#L26 call #t~ret0 := fact(~n - 1);< 776868#$Ultimate##0 ~n := #in~n; 776874#L25 assume ~n <= 0;#res := 1; 776873#factFINAL assume true; 776871#factEXIT >#66#return; 776870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 776867#factFINAL assume true; 776864#factEXIT >#66#return; 776863#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 776862#factFINAL assume true; 776789#factEXIT >#78#return; 776787#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 776782#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 776780#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 776778#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 776776#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 776774#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 776775#$Ultimate##0 ~n := #in~n; 776788#L25 assume !(~n <= 0); 776784#L26 call #t~ret0 := fact(~n - 1);< 776786#$Ultimate##0 ~n := #in~n; 776880#L25 assume !(~n <= 0); 776785#L26 call #t~ret0 := fact(~n - 1);< 776878#$Ultimate##0 ~n := #in~n; 776880#L25 assume !(~n <= 0); 776785#L26 call #t~ret0 := fact(~n - 1);< 776878#$Ultimate##0 ~n := #in~n; 776970#L25 assume ~n <= 0;#res := 1; 776966#factFINAL assume true; 776954#factEXIT >#66#return; 776884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 776883#factFINAL assume true; 776877#factEXIT >#66#return; 776876#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 776875#factFINAL assume true; 776783#factEXIT >#66#return; 776781#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 776779#factFINAL assume true; 776773#factEXIT >#74#return; 776771#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 776772#$Ultimate##0 ~n := #in~n; 776881#L25 assume ~n <= 0;#res := 1; 776879#factFINAL assume true; 776770#factEXIT >#76#return; 772757#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 776767#$Ultimate##0 ~n := #in~n; 776988#L25 assume !(~n <= 0); 772702#L26 call #t~ret0 := fact(~n - 1);< 776969#$Ultimate##0 ~n := #in~n; 776987#L25 assume !(~n <= 0); 772705#L26 call #t~ret0 := fact(~n - 1);< 776982#$Ultimate##0 ~n := #in~n; 776987#L25 assume !(~n <= 0); 772705#L26 call #t~ret0 := fact(~n - 1);< 776982#$Ultimate##0 ~n := #in~n; 776993#L25 assume ~n <= 0;#res := 1; 776989#factFINAL assume true; 776981#factEXIT >#66#return; 776979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 776978#factFINAL assume true; 776973#factEXIT >#66#return; 776972#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 776971#factFINAL assume true; 776967#factEXIT >#66#return; 772709#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 772758#factFINAL assume true; 776765#factEXIT >#78#return; 776016#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 776014#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 776013#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 776012#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 776011#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 776005#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 776004#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 774710#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 774647#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 774650#$Ultimate##0 ~n := #in~n; 774707#L25 assume !(~n <= 0); 774695#L26 call #t~ret0 := fact(~n - 1);< 774706#$Ultimate##0 ~n := #in~n; 775149#L25 assume ~n <= 0;#res := 1; 775077#factFINAL assume true; 775032#factEXIT >#66#return; 775042#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 775272#factFINAL assume true; 775262#factEXIT >#68#return; 775252#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 774639#$Ultimate##0 ~n := #in~n; 775271#L25 assume ~n <= 0;#res := 1; 775261#factFINAL assume true; 775251#factEXIT >#70#return; 775205#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 775206#$Ultimate##0 ~n := #in~n; 775209#L25 assume !(~n <= 0); 774671#L26 call #t~ret0 := fact(~n - 1);< 775046#$Ultimate##0 ~n := #in~n; 775149#L25 assume ~n <= 0;#res := 1; 775077#factFINAL assume true; 775032#factEXIT >#66#return; 775040#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 775207#factFINAL assume true; 775204#factEXIT >#72#return; 775202#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 775200#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 775198#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 775195#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 775194#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 775088#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 775171#$Ultimate##0 ~n := #in~n; 775168#L25 assume !(~n <= 0); 774686#L26 call #t~ret0 := fact(~n - 1);< 775046#$Ultimate##0 ~n := #in~n; 775149#L25 assume ~n <= 0;#res := 1; 775077#factFINAL assume true; 775032#factEXIT >#66#return; 775043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 775208#factFINAL assume true; 775192#factEXIT >#68#return; 775178#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 775191#$Ultimate##0 ~n := #in~n; 775890#L25 assume !(~n <= 0); 775033#L26 call #t~ret0 := fact(~n - 1);< 775044#$Ultimate##0 ~n := #in~n; 775149#L25 assume ~n <= 0;#res := 1; 775077#factFINAL assume true; 775032#factEXIT >#66#return; 775041#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 775210#factFINAL assume true; 775177#factEXIT >#70#return; 775116#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 775124#$Ultimate##0 ~n := #in~n; 775174#L25 assume ~n <= 0;#res := 1; 775173#factFINAL assume true; 775110#factEXIT >#72#return; 775109#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 775108#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 775106#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 775105#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 775055#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 775026#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 775030#$Ultimate##0 ~n := #in~n; 775140#L25 assume !(~n <= 0); 774687#L26 call #t~ret0 := fact(~n - 1);< 775076#$Ultimate##0 ~n := #in~n; 775863#L25 assume !(~n <= 0); 774684#L26 call #t~ret0 := fact(~n - 1);< 775648#$Ultimate##0 ~n := #in~n; 774744#L25 assume ~n <= 0;#res := 1; 774742#factFINAL assume true; 774734#factEXIT >#66#return; 774732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774727#factFINAL assume true; 774667#factEXIT >#66#return; 774703#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 775060#factFINAL assume true; 775031#factEXIT >#74#return; 774962#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 774994#$Ultimate##0 ~n := #in~n; 775091#L25 assume !(~n <= 0); 774681#L26 call #t~ret0 := fact(~n - 1);< 774706#$Ultimate##0 ~n := #in~n; 775149#L25 assume ~n <= 0;#res := 1; 775077#factFINAL assume true; 775032#factEXIT >#66#return; 775022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774993#factFINAL assume true; 774958#factEXIT >#76#return; 774959#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 774989#$Ultimate##0 ~n := #in~n; 775098#L25 assume !(~n <= 0); 775034#L26 call #t~ret0 := fact(~n - 1);< 775044#$Ultimate##0 ~n := #in~n; 775149#L25 assume ~n <= 0;#res := 1; 775077#factFINAL assume true; 775032#factEXIT >#66#return; 775022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774993#factFINAL assume true; 774958#factEXIT >#78#return; 774948#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 774947#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 774945#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 774943#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 774939#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 774812#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 774929#$Ultimate##0 ~n := #in~n; 775289#L25 assume !(~n <= 0); 774874#L26 call #t~ret0 := fact(~n - 1);< 775287#$Ultimate##0 ~n := #in~n; 775101#L25 assume !(~n <= 0); 774875#L26 call #t~ret0 := fact(~n - 1);< 775054#$Ultimate##0 ~n := #in~n; 775101#L25 assume !(~n <= 0); 774875#L26 call #t~ret0 := fact(~n - 1);< 775054#$Ultimate##0 ~n := #in~n; 774909#L25 assume ~n <= 0;#res := 1; 774907#factFINAL assume true; 774896#factEXIT >#66#return; 774894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774889#factFINAL assume true; 774866#factEXIT >#66#return; 774886#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 775164#factFINAL assume true; 775093#factEXIT >#66#return; 775094#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774938#factFINAL assume true; 774931#factEXIT >#74#return; 774833#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 774926#$Ultimate##0 ~n := #in~n; 775275#L25 assume !(~n <= 0); 774873#L26 call #t~ret0 := fact(~n - 1);< 774936#$Ultimate##0 ~n := #in~n; 775104#L25 assume ~n <= 0;#res := 1; 774941#factFINAL assume true; 774932#factEXIT >#66#return; 774930#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774927#factFINAL assume true; 774924#factEXIT >#76#return; 774827#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 774921#$Ultimate##0 ~n := #in~n; 775107#L25 assume !(~n <= 0); 774869#L26 call #t~ret0 := fact(~n - 1);< 775103#$Ultimate##0 ~n := #in~n; 775102#L25 assume !(~n <= 0); 774880#L26 call #t~ret0 := fact(~n - 1);< 775097#$Ultimate##0 ~n := #in~n; 774909#L25 assume ~n <= 0;#res := 1; 774907#factFINAL assume true; 774896#factEXIT >#66#return; 774894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774889#factFINAL assume true; 774866#factEXIT >#66#return; 774864#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774860#factFINAL assume true; 774804#factEXIT >#78#return; 774802#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 774795#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 774793#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 774792#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 774791#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 774783#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 774781#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 774780#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 774649#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 774650#$Ultimate##0 ~n := #in~n; 774707#L25 assume !(~n <= 0); 774695#L26 call #t~ret0 := fact(~n - 1);< 774706#$Ultimate##0 ~n := #in~n; 775282#L25 assume !(~n <= 0); 774691#L26 call #t~ret0 := fact(~n - 1);< 774736#$Ultimate##0 ~n := #in~n; 774744#L25 assume ~n <= 0;#res := 1; 774742#factFINAL assume true; 774734#factEXIT >#66#return; 774732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774727#factFINAL assume true; 774667#factEXIT >#66#return; 774666#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774657#factFINAL assume true; 774642#factEXIT >#68#return; 774632#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 774640#$Ultimate##0 ~n := #in~n; 774850#L25 assume ~n <= 0;#res := 1; 774782#factFINAL assume true; 774630#factEXIT >#70#return; 774617#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 774628#$Ultimate##0 ~n := #in~n; 774851#L25 assume !(~n <= 0); 774582#L26 call #t~ret0 := fact(~n - 1);< 774660#$Ultimate##0 ~n := #in~n; 777634#L25 assume !(~n <= 0); 774797#L26 call #t~ret0 := fact(~n - 1);< 774798#$Ultimate##0 ~n := #in~n; 774853#L25 assume ~n <= 0;#res := 1; 774852#factFINAL assume true; 774796#factEXIT >#66#return; 774794#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774784#factFINAL assume true; 774578#factEXIT >#66#return; 774592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774848#factFINAL assume true; 774616#factEXIT >#72#return; 774625#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 774724#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 774723#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 774722#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 774721#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 774560#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 774569#$Ultimate##0 ~n := #in~n; 774778#L25 assume !(~n <= 0); 774581#L26 call #t~ret0 := fact(~n - 1);< 774660#$Ultimate##0 ~n := #in~n; 777634#L25 assume !(~n <= 0); 774797#L26 call #t~ret0 := fact(~n - 1);< 774798#$Ultimate##0 ~n := #in~n; 774853#L25 assume ~n <= 0;#res := 1; 774852#factFINAL assume true; 774796#factEXIT >#66#return; 774794#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774784#factFINAL assume true; 774578#factEXIT >#66#return; 774591#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774572#factFINAL assume true; 774550#factEXIT >#68#return; 774567#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 774608#$Ultimate##0 ~n := #in~n; 774901#L25 assume !(~n <= 0); 774503#L26 call #t~ret0 := fact(~n - 1);< 774515#$Ultimate##0 ~n := #in~n; 774574#L25 assume ~n <= 0;#res := 1; 774516#factFINAL assume true; 774499#factEXIT >#66#return; 774512#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774803#factFINAL assume true; 774596#factEXIT >#70#return; 774597#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 774608#$Ultimate##0 ~n := #in~n; 774901#L25 assume !(~n <= 0); 774503#L26 call #t~ret0 := fact(~n - 1);< 774515#$Ultimate##0 ~n := #in~n; 774574#L25 assume ~n <= 0;#res := 1; 774516#factFINAL assume true; 774499#factEXIT >#66#return; 774512#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774803#factFINAL assume true; 774596#factEXIT >#72#return; 774603#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 774716#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 774715#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 774714#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 774713#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 774554#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 774569#$Ultimate##0 ~n := #in~n; 774778#L25 assume !(~n <= 0); 774581#L26 call #t~ret0 := fact(~n - 1);< 774660#$Ultimate##0 ~n := #in~n; 777634#L25 assume !(~n <= 0); 774797#L26 call #t~ret0 := fact(~n - 1);< 774798#$Ultimate##0 ~n := #in~n; 774853#L25 assume ~n <= 0;#res := 1; 774852#factFINAL assume true; 774796#factEXIT >#66#return; 774794#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774784#factFINAL assume true; 774578#factEXIT >#66#return; 774591#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774572#factFINAL assume true; 774550#factEXIT >#68#return; 774545#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 774549#$Ultimate##0 ~n := #in~n; 774745#L25 assume !(~n <= 0); 774453#L26 call #t~ret0 := fact(~n - 1);< 774530#$Ultimate##0 ~n := #in~n; 774849#L25 assume !(~n <= 0); 774583#L26 call #t~ret0 := fact(~n - 1);< 774799#$Ultimate##0 ~n := #in~n; 774853#L25 assume ~n <= 0;#res := 1; 774852#factFINAL assume true; 774796#factEXIT >#66#return; 774794#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774784#factFINAL assume true; 774578#factEXIT >#66#return; 774593#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774726#factFINAL assume true; 774542#factEXIT >#70#return; 774485#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 774495#$Ultimate##0 ~n := #in~n; 774498#L25 assume ~n <= 0;#res := 1; 774496#factFINAL assume true; 774483#factEXIT >#72#return; 774490#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 774539#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 774537#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 774535#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 774533#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 774398#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 774479#$Ultimate##0 ~n := #in~n; 774477#L25 assume !(~n <= 0); 774268#L26 call #t~ret0 := fact(~n - 1);< 774289#$Ultimate##0 ~n := #in~n; 774320#L25 assume !(~n <= 0); 774261#L26 call #t~ret0 := fact(~n - 1);< 774295#$Ultimate##0 ~n := #in~n; 774320#L25 assume !(~n <= 0); 774261#L26 call #t~ret0 := fact(~n - 1);< 774295#$Ultimate##0 ~n := #in~n; 774300#L25 assume ~n <= 0;#res := 1; 774298#factFINAL assume true; 774293#factEXIT >#66#return; 774292#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774277#factFINAL assume true; 774280#factEXIT >#66#return; 774400#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774396#factFINAL assume true; 774257#factEXIT >#66#return; 774275#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774663#factFINAL assume true; 774532#factEXIT >#74#return; 774226#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 774229#$Ultimate##0 ~n := #in~n; 774346#L25 assume !(~n <= 0); 774269#L26 call #t~ret0 := fact(~n - 1);< 774325#$Ultimate##0 ~n := #in~n; 774321#L25 assume !(~n <= 0); 774279#L26 call #t~ret0 := fact(~n - 1);< 774296#$Ultimate##0 ~n := #in~n; 774300#L25 assume ~n <= 0;#res := 1; 774298#factFINAL assume true; 774293#factEXIT >#66#return; 774292#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774277#factFINAL assume true; 774280#factEXIT >#66#return; 774421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774221#factFINAL assume true; 774228#factEXIT >#76#return; 774203#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 774610#$Ultimate##0 ~n := #in~n; 774609#L25 assume !(~n <= 0); 774250#L26 call #t~ret0 := fact(~n - 1);< 774256#$Ultimate##0 ~n := #in~n; 774290#L25 assume ~n <= 0;#res := 1; 774291#factFINAL assume true; 774245#factEXIT >#66#return; 774241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 774242#factFINAL assume true; 774202#factEXIT >#78#return; 774214#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 777648#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 777647#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 777646#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 777645#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 777644#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 777643#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 777642#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 772710#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 772711#$Ultimate##0 ~n := #in~n; 773430#L25 assume !(~n <= 0); 773037#L26 call #t~ret0 := fact(~n - 1);< 777640#$Ultimate##0 ~n := #in~n; 777639#L25 assume !(~n <= 0); 773062#L26 call #t~ret0 := fact(~n - 1);< 777638#$Ultimate##0 ~n := #in~n; 777637#L25 assume !(~n <= 0); 773115#L26 call #t~ret0 := fact(~n - 1);< 777635#$Ultimate##0 ~n := #in~n; 777636#L25 assume !(~n <= 0); 773189#L26 call #t~ret0 := fact(~n - 1);< 773214#$Ultimate##0 ~n := #in~n; 777658#L25 assume !(~n <= 0); 773211#L26 call #t~ret0 := fact(~n - 1);< 773212#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773047#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773540#factFINAL assume true; 773539#factEXIT >#68#return; 773496#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 773497#$Ultimate##0 ~n := #in~n; 773516#L25 assume ~n <= 0;#res := 1; 773498#factFINAL assume true; 773486#factEXIT >#70#return; 773467#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 773527#$Ultimate##0 ~n := #in~n; 773526#L25 assume !(~n <= 0); 773021#L26 call #t~ret0 := fact(~n - 1);< 773048#$Ultimate##0 ~n := #in~n; 773524#L25 assume !(~n <= 0); 773034#L26 call #t~ret0 := fact(~n - 1);< 773523#$Ultimate##0 ~n := #in~n; 773522#L25 assume !(~n <= 0); 773032#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773044#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773538#factFINAL assume true; 773537#factEXIT >#72#return; 773477#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 773809#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 773803#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 773804#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 773799#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773007#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773015#$Ultimate##0 ~n := #in~n; 773309#L25 assume !(~n <= 0); 773020#L26 call #t~ret0 := fact(~n - 1);< 773054#$Ultimate##0 ~n := #in~n; 777632#L25 assume !(~n <= 0); 773061#L26 call #t~ret0 := fact(~n - 1);< 773066#$Ultimate##0 ~n := #in~n; 777657#L25 assume !(~n <= 0); 773114#L26 call #t~ret0 := fact(~n - 1);< 773122#$Ultimate##0 ~n := #in~n; 777633#L25 assume !(~n <= 0); 773187#L26 call #t~ret0 := fact(~n - 1);< 773194#$Ultimate##0 ~n := #in~n; 777658#L25 assume !(~n <= 0); 773211#L26 call #t~ret0 := fact(~n - 1);< 773212#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773017#factFINAL assume true; 773000#factEXIT >#68#return; 772830#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 773125#$Ultimate##0 ~n := #in~n; 772882#L25 assume !(~n <= 0); 772883#L26 call #t~ret0 := fact(~n - 1);< 773140#$Ultimate##0 ~n := #in~n; 773143#L25 assume ~n <= 0;#res := 1; 773133#factFINAL assume true; 773128#factEXIT >#66#return; 773127#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773124#factFINAL assume true; 773097#factEXIT >#70#return; 773100#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 773183#$Ultimate##0 ~n := #in~n; 774182#L25 assume !(~n <= 0); 773059#L26 call #t~ret0 := fact(~n - 1);< 777662#$Ultimate##0 ~n := #in~n; 777661#L25 assume !(~n <= 0); 773117#L26 call #t~ret0 := fact(~n - 1);< 777660#$Ultimate##0 ~n := #in~n; 777636#L25 assume !(~n <= 0); 773189#L26 call #t~ret0 := fact(~n - 1);< 773214#$Ultimate##0 ~n := #in~n; 777658#L25 assume !(~n <= 0); 773211#L26 call #t~ret0 := fact(~n - 1);< 773212#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773063#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773181#factFINAL assume true; 773147#factEXIT >#72#return; 773171#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 773425#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 773422#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 773410#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 773400#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773008#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773015#$Ultimate##0 ~n := #in~n; 773309#L25 assume !(~n <= 0); 773020#L26 call #t~ret0 := fact(~n - 1);< 773054#$Ultimate##0 ~n := #in~n; 777632#L25 assume !(~n <= 0); 773061#L26 call #t~ret0 := fact(~n - 1);< 773066#$Ultimate##0 ~n := #in~n; 777657#L25 assume !(~n <= 0); 773114#L26 call #t~ret0 := fact(~n - 1);< 773122#$Ultimate##0 ~n := #in~n; 777633#L25 assume !(~n <= 0); 773187#L26 call #t~ret0 := fact(~n - 1);< 773194#$Ultimate##0 ~n := #in~n; 777658#L25 assume !(~n <= 0); 773211#L26 call #t~ret0 := fact(~n - 1);< 773212#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773017#factFINAL assume true; 773000#factEXIT >#68#return; 773014#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 773238#$Ultimate##0 ~n := #in~n; 774179#L25 assume !(~n <= 0); 773022#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773237#factFINAL assume true; 773222#factEXIT >#70#return; 773180#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 773259#$Ultimate##0 ~n := #in~n; 773270#L25 assume !(~n <= 0); 773116#L26 call #t~ret0 := fact(~n - 1);< 773122#$Ultimate##0 ~n := #in~n; 777633#L25 assume !(~n <= 0); 773187#L26 call #t~ret0 := fact(~n - 1);< 773194#$Ultimate##0 ~n := #in~n; 777658#L25 assume !(~n <= 0); 773211#L26 call #t~ret0 := fact(~n - 1);< 773212#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773120#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773258#factFINAL assume true; 773239#factEXIT >#72#return; 773246#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 773266#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 773264#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 773262#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 773260#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773005#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773015#$Ultimate##0 ~n := #in~n; 773309#L25 assume !(~n <= 0); 773020#L26 call #t~ret0 := fact(~n - 1);< 773054#$Ultimate##0 ~n := #in~n; 777632#L25 assume !(~n <= 0); 773061#L26 call #t~ret0 := fact(~n - 1);< 773066#$Ultimate##0 ~n := #in~n; 777657#L25 assume !(~n <= 0); 773114#L26 call #t~ret0 := fact(~n - 1);< 773122#$Ultimate##0 ~n := #in~n; 777633#L25 assume !(~n <= 0); 773187#L26 call #t~ret0 := fact(~n - 1);< 773194#$Ultimate##0 ~n := #in~n; 777658#L25 assume !(~n <= 0); 773211#L26 call #t~ret0 := fact(~n - 1);< 773212#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773017#factFINAL assume true; 773000#factEXIT >#68#return; 772926#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 772996#$Ultimate##0 ~n := #in~n; 773303#L25 assume !(~n <= 0); 773039#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773120#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773258#factFINAL assume true; 773239#factEXIT >#70#return; 773203#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 773236#$Ultimate##0 ~n := #in~n; 773426#L25 assume !(~n <= 0); 773190#L26 call #t~ret0 := fact(~n - 1);< 773204#$Ultimate##0 ~n := #in~n; 777659#L25 assume !(~n <= 0); 773188#L26 call #t~ret0 := fact(~n - 1);< 773214#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773237#factFINAL assume true; 773222#factEXIT >#72#return; 773218#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 773209#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 773205#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 773195#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 773185#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773002#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773015#$Ultimate##0 ~n := #in~n; 773309#L25 assume !(~n <= 0); 773020#L26 call #t~ret0 := fact(~n - 1);< 773054#$Ultimate##0 ~n := #in~n; 777632#L25 assume !(~n <= 0); 773061#L26 call #t~ret0 := fact(~n - 1);< 773066#$Ultimate##0 ~n := #in~n; 777657#L25 assume !(~n <= 0); 773114#L26 call #t~ret0 := fact(~n - 1);< 773122#$Ultimate##0 ~n := #in~n; 777633#L25 assume !(~n <= 0); 773187#L26 call #t~ret0 := fact(~n - 1);< 773194#$Ultimate##0 ~n := #in~n; 777658#L25 assume !(~n <= 0); 773211#L26 call #t~ret0 := fact(~n - 1);< 773212#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773017#factFINAL assume true; 773000#factEXIT >#68#return; 772951#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 772996#$Ultimate##0 ~n := #in~n; 773303#L25 assume !(~n <= 0); 773039#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773063#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773181#factFINAL assume true; 773147#factEXIT >#70#return; 773098#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 773111#$Ultimate##0 ~n := #in~n; 773429#L25 assume !(~n <= 0); 773130#L26 call #t~ret0 := fact(~n - 1);< 773132#$Ultimate##0 ~n := #in~n; 773143#L25 assume ~n <= 0;#res := 1; 773133#factFINAL assume true; 773128#factEXIT >#66#return; 773127#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773124#factFINAL assume true; 773097#factEXIT >#72#return; 773067#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 773057#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 773055#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 773049#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 773018#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773001#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773015#$Ultimate##0 ~n := #in~n; 773309#L25 assume !(~n <= 0); 773020#L26 call #t~ret0 := fact(~n - 1);< 773054#$Ultimate##0 ~n := #in~n; 777632#L25 assume !(~n <= 0); 773061#L26 call #t~ret0 := fact(~n - 1);< 773066#$Ultimate##0 ~n := #in~n; 777657#L25 assume !(~n <= 0); 773114#L26 call #t~ret0 := fact(~n - 1);< 773122#$Ultimate##0 ~n := #in~n; 777633#L25 assume !(~n <= 0); 773187#L26 call #t~ret0 := fact(~n - 1);< 773194#$Ultimate##0 ~n := #in~n; 777658#L25 assume !(~n <= 0); 773211#L26 call #t~ret0 := fact(~n - 1);< 773212#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773017#factFINAL assume true; 773000#factEXIT >#68#return; 772904#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 772996#$Ultimate##0 ~n := #in~n; 773303#L25 assume !(~n <= 0); 773039#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773016#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 772998#factFINAL assume true; 772886#factEXIT >#70#return; 772850#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 772880#$Ultimate##0 ~n := #in~n; 772884#L25 assume ~n <= 0;#res := 1; 772881#factFINAL assume true; 772786#factEXIT >#72#return; 772877#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 773718#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 773717#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 773715#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 773686#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773628#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773641#$Ultimate##0 ~n := #in~n; 773847#L25 assume !(~n <= 0); 773793#L26 call #t~ret0 := fact(~n - 1);< 773883#$Ultimate##0 ~n := #in~n; 773881#L25 assume !(~n <= 0); 773657#L26 call #t~ret0 := fact(~n - 1);< 773879#$Ultimate##0 ~n := #in~n; 773878#L25 assume !(~n <= 0); 773659#L26 call #t~ret0 := fact(~n - 1);< 773705#$Ultimate##0 ~n := #in~n; 773710#L25 assume !(~n <= 0); 773649#L26 call #t~ret0 := fact(~n - 1);< 773690#$Ultimate##0 ~n := #in~n; 773696#L25 assume !(~n <= 0); 773648#L26 call #t~ret0 := fact(~n - 1);< 773695#$Ultimate##0 ~n := #in~n; 773696#L25 assume !(~n <= 0); 773648#L26 call #t~ret0 := fact(~n - 1);< 773695#$Ultimate##0 ~n := #in~n; 773698#L25 assume ~n <= 0;#res := 1; 773697#factFINAL assume true; 773694#factEXIT >#66#return; 773692#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773689#factFINAL assume true; 773644#factEXIT >#66#return; 773650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773716#factFINAL assume true; 773714#factEXIT >#66#return; 773711#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773709#factFINAL assume true; 773703#factEXIT >#66#return; 773699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773675#factFINAL assume true; 773655#factEXIT >#66#return; 773661#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773797#factFINAL assume true; 773792#factEXIT >#66#return; 773791#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773790#factFINAL assume true; 773788#factEXIT >#74#return; 773619#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 773622#$Ultimate##0 ~n := #in~n; 773664#L25 assume !(~n <= 0); 773646#L26 call #t~ret0 := fact(~n - 1);< 773662#$Ultimate##0 ~n := #in~n; 773696#L25 assume !(~n <= 0); 773648#L26 call #t~ret0 := fact(~n - 1);< 773695#$Ultimate##0 ~n := #in~n; 773696#L25 assume !(~n <= 0); 773648#L26 call #t~ret0 := fact(~n - 1);< 773695#$Ultimate##0 ~n := #in~n; 773696#L25 assume !(~n <= 0); 773648#L26 call #t~ret0 := fact(~n - 1);< 773695#$Ultimate##0 ~n := #in~n; 773696#L25 assume !(~n <= 0); 773648#L26 call #t~ret0 := fact(~n - 1);< 773695#$Ultimate##0 ~n := #in~n; 773698#L25 assume ~n <= 0;#res := 1; 773697#factFINAL assume true; 773694#factEXIT >#66#return; 773692#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773689#factFINAL assume true; 773644#factEXIT >#66#return; 773650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773716#factFINAL assume true; 773714#factEXIT >#66#return; 773711#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773709#factFINAL assume true; 773703#factEXIT >#66#return; 773699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773675#factFINAL assume true; 773655#factEXIT >#66#return; 773654#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773623#factFINAL assume true; 773616#factEXIT >#76#return; 772729#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 772772#$Ultimate##0 ~n := #in~n; 772763#L25 assume !(~n <= 0); 772728#L26 call #t~ret0 := fact(~n - 1);< 772732#$Ultimate##0 ~n := #in~n; 773776#L25 assume ~n <= 0;#res := 1; 773775#factFINAL assume true; 773774#factEXIT >#66#return; 773773#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773772#factFINAL assume true; 773583#factEXIT >#78#return; 773582#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 773581#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 773580#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 773579#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 773578#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 773577#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 773576#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 773575#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773500#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773502#$Ultimate##0 ~n := #in~n; 773515#L25 assume !(~n <= 0); 773389#L26 call #t~ret0 := fact(~n - 1);< 773514#$Ultimate##0 ~n := #in~n; 773528#L25 assume !(~n <= 0); 773025#L26 call #t~ret0 := fact(~n - 1);< 773423#$Ultimate##0 ~n := #in~n; 773531#L25 assume !(~n <= 0); 773023#L26 call #t~ret0 := fact(~n - 1);< 773065#$Ultimate##0 ~n := #in~n; 773525#L25 assume !(~n <= 0); 773026#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773411#factFINAL assume true; 773401#factEXIT >#66#return; 773393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773434#factFINAL assume true; 773382#factEXIT >#66#return; 773396#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773761#factFINAL assume true; 773760#factEXIT >#68#return; 773493#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 773497#$Ultimate##0 ~n := #in~n; 773516#L25 assume ~n <= 0;#res := 1; 773498#factFINAL assume true; 773486#factEXIT >#70#return; 773468#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 773485#$Ultimate##0 ~n := #in~n; 773529#L25 assume !(~n <= 0); 773388#L26 call #t~ret0 := fact(~n - 1);< 773514#$Ultimate##0 ~n := #in~n; 773528#L25 assume !(~n <= 0); 773025#L26 call #t~ret0 := fact(~n - 1);< 773423#$Ultimate##0 ~n := #in~n; 773531#L25 assume !(~n <= 0); 773023#L26 call #t~ret0 := fact(~n - 1);< 773065#$Ultimate##0 ~n := #in~n; 773525#L25 assume !(~n <= 0); 773026#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773411#factFINAL assume true; 773401#factEXIT >#66#return; 773392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773798#factFINAL assume true; 773465#factEXIT >#72#return; 773478#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 773997#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 773995#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 773994#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 773993#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773334#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773379#$Ultimate##0 ~n := #in~n; 773399#L25 assume !(~n <= 0); 773386#L26 call #t~ret0 := fact(~n - 1);< 773397#$Ultimate##0 ~n := #in~n; 773439#L25 assume !(~n <= 0); 773390#L26 call #t~ret0 := fact(~n - 1);< 773437#$Ultimate##0 ~n := #in~n; 773446#L25 assume !(~n <= 0); 773038#L26 call #t~ret0 := fact(~n - 1);< 773048#$Ultimate##0 ~n := #in~n; 773524#L25 assume !(~n <= 0); 773034#L26 call #t~ret0 := fact(~n - 1);< 773523#$Ultimate##0 ~n := #in~n; 773522#L25 assume !(~n <= 0); 773032#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773411#factFINAL assume true; 773401#factEXIT >#66#return; 773393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773434#factFINAL assume true; 773382#factEXIT >#66#return; 773381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773380#factFINAL assume true; 773310#factEXIT >#68#return; 772861#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 773125#$Ultimate##0 ~n := #in~n; 772882#L25 assume !(~n <= 0); 772883#L26 call #t~ret0 := fact(~n - 1);< 773140#$Ultimate##0 ~n := #in~n; 773143#L25 assume ~n <= 0;#res := 1; 773133#factFINAL assume true; 773128#factEXIT >#66#return; 773127#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773124#factFINAL assume true; 773097#factEXIT >#70#return; 772932#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 772999#$Ultimate##0 ~n := #in~n; 773424#L25 assume !(~n <= 0); 773035#L26 call #t~ret0 := fact(~n - 1);< 773048#$Ultimate##0 ~n := #in~n; 773524#L25 assume !(~n <= 0); 773034#L26 call #t~ret0 := fact(~n - 1);< 773523#$Ultimate##0 ~n := #in~n; 773522#L25 assume !(~n <= 0); 773032#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773016#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 772998#factFINAL assume true; 772886#factEXIT >#72#return; 772968#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 773988#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 773987#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 773986#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 773985#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773354#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773379#$Ultimate##0 ~n := #in~n; 773399#L25 assume !(~n <= 0); 773386#L26 call #t~ret0 := fact(~n - 1);< 773397#$Ultimate##0 ~n := #in~n; 773439#L25 assume !(~n <= 0); 773390#L26 call #t~ret0 := fact(~n - 1);< 773437#$Ultimate##0 ~n := #in~n; 773446#L25 assume !(~n <= 0); 773038#L26 call #t~ret0 := fact(~n - 1);< 773048#$Ultimate##0 ~n := #in~n; 773524#L25 assume !(~n <= 0); 773034#L26 call #t~ret0 := fact(~n - 1);< 773523#$Ultimate##0 ~n := #in~n; 773522#L25 assume !(~n <= 0); 773032#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773411#factFINAL assume true; 773401#factEXIT >#66#return; 773393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773434#factFINAL assume true; 773382#factEXIT >#66#return; 773381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773380#factFINAL assume true; 773310#factEXIT >#68#return; 772821#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 772885#$Ultimate##0 ~n := #in~n; 773142#L25 assume !(~n <= 0); 773030#L26 call #t~ret0 := fact(~n - 1);< 773096#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773237#factFINAL assume true; 773222#factEXIT >#70#return; 772908#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 773182#$Ultimate##0 ~n := #in~n; 773701#L25 assume !(~n <= 0); 773042#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773063#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773181#factFINAL assume true; 773147#factEXIT >#72#return; 773170#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 773980#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 773979#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 773978#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 773977#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773335#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773379#$Ultimate##0 ~n := #in~n; 773399#L25 assume !(~n <= 0); 773386#L26 call #t~ret0 := fact(~n - 1);< 773397#$Ultimate##0 ~n := #in~n; 773439#L25 assume !(~n <= 0); 773390#L26 call #t~ret0 := fact(~n - 1);< 773437#$Ultimate##0 ~n := #in~n; 773446#L25 assume !(~n <= 0); 773038#L26 call #t~ret0 := fact(~n - 1);< 773048#$Ultimate##0 ~n := #in~n; 773524#L25 assume !(~n <= 0); 773034#L26 call #t~ret0 := fact(~n - 1);< 773523#$Ultimate##0 ~n := #in~n; 773522#L25 assume !(~n <= 0); 773032#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773411#factFINAL assume true; 773401#factEXIT >#66#return; 773393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773434#factFINAL assume true; 773382#factEXIT >#66#return; 773381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773380#factFINAL assume true; 773310#factEXIT >#68#return; 772857#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 772885#$Ultimate##0 ~n := #in~n; 773142#L25 assume !(~n <= 0); 773030#L26 call #t~ret0 := fact(~n - 1);< 773096#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773120#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773258#factFINAL assume true; 773239#factEXIT >#70#return; 772911#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 773215#$Ultimate##0 ~n := #in~n; 773207#L25 assume !(~n <= 0); 773033#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773120#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773258#factFINAL assume true; 773239#factEXIT >#72#return; 773242#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 773968#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 773967#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 773966#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 773965#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773328#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773379#$Ultimate##0 ~n := #in~n; 773399#L25 assume !(~n <= 0); 773386#L26 call #t~ret0 := fact(~n - 1);< 773397#$Ultimate##0 ~n := #in~n; 773439#L25 assume !(~n <= 0); 773390#L26 call #t~ret0 := fact(~n - 1);< 773437#$Ultimate##0 ~n := #in~n; 773446#L25 assume !(~n <= 0); 773038#L26 call #t~ret0 := fact(~n - 1);< 773048#$Ultimate##0 ~n := #in~n; 773524#L25 assume !(~n <= 0); 773034#L26 call #t~ret0 := fact(~n - 1);< 773523#$Ultimate##0 ~n := #in~n; 773522#L25 assume !(~n <= 0); 773032#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773411#factFINAL assume true; 773401#factEXIT >#66#return; 773393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773434#factFINAL assume true; 773382#factEXIT >#66#return; 773381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773380#factFINAL assume true; 773310#factEXIT >#68#return; 772820#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 772885#$Ultimate##0 ~n := #in~n; 773142#L25 assume !(~n <= 0); 773030#L26 call #t~ret0 := fact(~n - 1);< 773096#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773063#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773181#factFINAL assume true; 773147#factEXIT >#70#return; 772956#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 773215#$Ultimate##0 ~n := #in~n; 773207#L25 assume !(~n <= 0); 773033#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773237#factFINAL assume true; 773222#factEXIT >#72#return; 773235#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 773964#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 773963#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 773962#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 773961#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773340#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773379#$Ultimate##0 ~n := #in~n; 773399#L25 assume !(~n <= 0); 773386#L26 call #t~ret0 := fact(~n - 1);< 773397#$Ultimate##0 ~n := #in~n; 773439#L25 assume !(~n <= 0); 773390#L26 call #t~ret0 := fact(~n - 1);< 773437#$Ultimate##0 ~n := #in~n; 773446#L25 assume !(~n <= 0); 773038#L26 call #t~ret0 := fact(~n - 1);< 773048#$Ultimate##0 ~n := #in~n; 773524#L25 assume !(~n <= 0); 773034#L26 call #t~ret0 := fact(~n - 1);< 773523#$Ultimate##0 ~n := #in~n; 773522#L25 assume !(~n <= 0); 773032#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773411#factFINAL assume true; 773401#factEXIT >#66#return; 773393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773434#factFINAL assume true; 773382#factEXIT >#66#return; 773381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773380#factFINAL assume true; 773310#factEXIT >#68#return; 772844#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 772885#$Ultimate##0 ~n := #in~n; 773142#L25 assume !(~n <= 0); 773030#L26 call #t~ret0 := fact(~n - 1);< 773096#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773016#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 772998#factFINAL assume true; 772886#factEXIT >#70#return; 772937#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 773145#$Ultimate##0 ~n := #in~n; 773141#L25 assume !(~n <= 0); 773030#L26 call #t~ret0 := fact(~n - 1);< 773096#$Ultimate##0 ~n := #in~n; 773143#L25 assume ~n <= 0;#res := 1; 773133#factFINAL assume true; 773128#factEXIT >#66#return; 773127#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773124#factFINAL assume true; 773097#factEXIT >#72#return; 773101#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 773876#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 773875#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 773874#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 773873#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773350#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773379#$Ultimate##0 ~n := #in~n; 773399#L25 assume !(~n <= 0); 773386#L26 call #t~ret0 := fact(~n - 1);< 773397#$Ultimate##0 ~n := #in~n; 773439#L25 assume !(~n <= 0); 773390#L26 call #t~ret0 := fact(~n - 1);< 773437#$Ultimate##0 ~n := #in~n; 773446#L25 assume !(~n <= 0); 773038#L26 call #t~ret0 := fact(~n - 1);< 773048#$Ultimate##0 ~n := #in~n; 773524#L25 assume !(~n <= 0); 773034#L26 call #t~ret0 := fact(~n - 1);< 773523#$Ultimate##0 ~n := #in~n; 773522#L25 assume !(~n <= 0); 773032#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773411#factFINAL assume true; 773401#factEXIT >#66#return; 773393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773434#factFINAL assume true; 773382#factEXIT >#66#return; 773381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773380#factFINAL assume true; 773310#factEXIT >#68#return; 772791#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 772885#$Ultimate##0 ~n := #in~n; 773142#L25 assume !(~n <= 0); 773030#L26 call #t~ret0 := fact(~n - 1);< 773096#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773411#factFINAL assume true; 773401#factEXIT >#66#return; 773403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773307#factFINAL assume true; 773308#factEXIT >#70#return; 772831#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 772885#$Ultimate##0 ~n := #in~n; 773142#L25 assume ~n <= 0;#res := 1; 772881#factFINAL assume true; 772786#factEXIT >#72#return; 772871#L30-3 [2023-02-18 08:58:29,450 INFO L750 eck$LassoCheckResult]: Loop: 772871#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 773868#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 773866#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 773864#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 773861#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773635#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773771#$Ultimate##0 ~n := #in~n; 773770#L25 assume !(~n <= 0); 773767#L26 call #t~ret0 := fact(~n - 1);< 773769#$Ultimate##0 ~n := #in~n; 773768#L25 assume !(~n <= 0); 773676#L26 call #t~ret0 := fact(~n - 1);< 773765#$Ultimate##0 ~n := #in~n; 773724#L25 assume !(~n <= 0); 773656#L26 call #t~ret0 := fact(~n - 1);< 773678#$Ultimate##0 ~n := #in~n; 773885#L25 assume !(~n <= 0); 773658#L26 call #t~ret0 := fact(~n - 1);< 773708#$Ultimate##0 ~n := #in~n; 773707#L25 assume !(~n <= 0); 773660#L26 call #t~ret0 := fact(~n - 1);< 773706#$Ultimate##0 ~n := #in~n; 773700#L25 assume !(~n <= 0); 773645#L26 call #t~ret0 := fact(~n - 1);< 773690#$Ultimate##0 ~n := #in~n; 773696#L25 assume !(~n <= 0); 773648#L26 call #t~ret0 := fact(~n - 1);< 773695#$Ultimate##0 ~n := #in~n; 773698#L25 assume ~n <= 0;#res := 1; 773697#factFINAL assume true; 773694#factEXIT >#66#return; 773692#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773689#factFINAL assume true; 773644#factEXIT >#66#return; 773650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773716#factFINAL assume true; 773714#factEXIT >#66#return; 773711#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773709#factFINAL assume true; 773703#factEXIT >#66#return; 773699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773675#factFINAL assume true; 773655#factEXIT >#66#return; 773661#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773797#factFINAL assume true; 773792#factEXIT >#66#return; 773794#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773838#factFINAL assume true; 773796#factEXIT >#66#return; 773795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773789#factFINAL assume true; 773624#factEXIT >#74#return; 773617#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 773622#$Ultimate##0 ~n := #in~n; 773664#L25 assume !(~n <= 0); 773646#L26 call #t~ret0 := fact(~n - 1);< 773662#$Ultimate##0 ~n := #in~n; 773696#L25 assume !(~n <= 0); 773648#L26 call #t~ret0 := fact(~n - 1);< 773695#$Ultimate##0 ~n := #in~n; 773696#L25 assume !(~n <= 0); 773648#L26 call #t~ret0 := fact(~n - 1);< 773695#$Ultimate##0 ~n := #in~n; 773696#L25 assume !(~n <= 0); 773648#L26 call #t~ret0 := fact(~n - 1);< 773695#$Ultimate##0 ~n := #in~n; 773696#L25 assume !(~n <= 0); 773648#L26 call #t~ret0 := fact(~n - 1);< 773695#$Ultimate##0 ~n := #in~n; 773696#L25 assume !(~n <= 0); 773648#L26 call #t~ret0 := fact(~n - 1);< 773695#$Ultimate##0 ~n := #in~n; 773698#L25 assume ~n <= 0;#res := 1; 773697#factFINAL assume true; 773694#factEXIT >#66#return; 773692#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773689#factFINAL assume true; 773644#factEXIT >#66#return; 773650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773716#factFINAL assume true; 773714#factEXIT >#66#return; 773711#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773709#factFINAL assume true; 773703#factEXIT >#66#return; 773699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773675#factFINAL assume true; 773655#factEXIT >#66#return; 773661#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773797#factFINAL assume true; 773792#factEXIT >#66#return; 773791#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773790#factFINAL assume true; 773788#factEXIT >#76#return; 772731#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 772772#$Ultimate##0 ~n := #in~n; 772763#L25 assume !(~n <= 0); 772728#L26 call #t~ret0 := fact(~n - 1);< 772732#$Ultimate##0 ~n := #in~n; 773776#L25 assume ~n <= 0;#res := 1; 773775#factFINAL assume true; 773774#factEXIT >#66#return; 773773#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773772#factFINAL assume true; 773583#factEXIT >#78#return; 773585#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 773821#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 773820#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 773819#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 773818#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 773817#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 773816#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 773815#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773448#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773450#$Ultimate##0 ~n := #in~n; 773447#L25 assume !(~n <= 0); 773387#L26 call #t~ret0 := fact(~n - 1);< 773397#$Ultimate##0 ~n := #in~n; 773439#L25 assume !(~n <= 0); 773390#L26 call #t~ret0 := fact(~n - 1);< 773437#$Ultimate##0 ~n := #in~n; 773446#L25 assume !(~n <= 0); 773038#L26 call #t~ret0 := fact(~n - 1);< 773048#$Ultimate##0 ~n := #in~n; 773524#L25 assume !(~n <= 0); 773034#L26 call #t~ret0 := fact(~n - 1);< 773523#$Ultimate##0 ~n := #in~n; 773522#L25 assume !(~n <= 0); 773032#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773411#factFINAL assume true; 773401#factEXIT >#66#return; 773393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773434#factFINAL assume true; 773382#factEXIT >#66#return; 773396#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773761#factFINAL assume true; 773760#factEXIT >#68#return; 773494#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 773497#$Ultimate##0 ~n := #in~n; 773516#L25 assume ~n <= 0;#res := 1; 773498#factFINAL assume true; 773486#factEXIT >#70#return; 773472#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 773485#$Ultimate##0 ~n := #in~n; 773529#L25 assume !(~n <= 0); 773388#L26 call #t~ret0 := fact(~n - 1);< 773514#$Ultimate##0 ~n := #in~n; 773528#L25 assume !(~n <= 0); 773025#L26 call #t~ret0 := fact(~n - 1);< 773423#$Ultimate##0 ~n := #in~n; 773531#L25 assume !(~n <= 0); 773023#L26 call #t~ret0 := fact(~n - 1);< 773065#$Ultimate##0 ~n := #in~n; 773525#L25 assume !(~n <= 0); 773026#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773411#factFINAL assume true; 773401#factEXIT >#66#return; 773392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773798#factFINAL assume true; 773465#factEXIT >#72#return; 773481#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 774186#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 774185#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 774184#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 774183#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773372#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773379#$Ultimate##0 ~n := #in~n; 773399#L25 assume !(~n <= 0); 773386#L26 call #t~ret0 := fact(~n - 1);< 773397#$Ultimate##0 ~n := #in~n; 773439#L25 assume !(~n <= 0); 773390#L26 call #t~ret0 := fact(~n - 1);< 773437#$Ultimate##0 ~n := #in~n; 773446#L25 assume !(~n <= 0); 773038#L26 call #t~ret0 := fact(~n - 1);< 773048#$Ultimate##0 ~n := #in~n; 773524#L25 assume !(~n <= 0); 773034#L26 call #t~ret0 := fact(~n - 1);< 773523#$Ultimate##0 ~n := #in~n; 773522#L25 assume !(~n <= 0); 773032#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773411#factFINAL assume true; 773401#factEXIT >#66#return; 773393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773434#factFINAL assume true; 773382#factEXIT >#66#return; 773381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773380#factFINAL assume true; 773310#factEXIT >#68#return; 772794#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 773125#$Ultimate##0 ~n := #in~n; 772882#L25 assume !(~n <= 0); 772883#L26 call #t~ret0 := fact(~n - 1);< 773140#$Ultimate##0 ~n := #in~n; 773143#L25 assume ~n <= 0;#res := 1; 773133#factFINAL assume true; 773128#factEXIT >#66#return; 773127#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773124#factFINAL assume true; 773097#factEXIT >#70#return; 772931#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 772999#$Ultimate##0 ~n := #in~n; 773424#L25 assume !(~n <= 0); 773035#L26 call #t~ret0 := fact(~n - 1);< 773048#$Ultimate##0 ~n := #in~n; 773524#L25 assume !(~n <= 0); 773034#L26 call #t~ret0 := fact(~n - 1);< 773523#$Ultimate##0 ~n := #in~n; 773522#L25 assume !(~n <= 0); 773032#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773016#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 772998#factFINAL assume true; 772886#factEXIT >#72#return; 772967#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 774160#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 774159#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 774158#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 774157#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773355#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773379#$Ultimate##0 ~n := #in~n; 773399#L25 assume !(~n <= 0); 773386#L26 call #t~ret0 := fact(~n - 1);< 773397#$Ultimate##0 ~n := #in~n; 773439#L25 assume !(~n <= 0); 773390#L26 call #t~ret0 := fact(~n - 1);< 773437#$Ultimate##0 ~n := #in~n; 773446#L25 assume !(~n <= 0); 773038#L26 call #t~ret0 := fact(~n - 1);< 773048#$Ultimate##0 ~n := #in~n; 773524#L25 assume !(~n <= 0); 773034#L26 call #t~ret0 := fact(~n - 1);< 773523#$Ultimate##0 ~n := #in~n; 773522#L25 assume !(~n <= 0); 773032#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773411#factFINAL assume true; 773401#factEXIT >#66#return; 773393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773434#factFINAL assume true; 773382#factEXIT >#66#return; 773381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773380#factFINAL assume true; 773310#factEXIT >#68#return; 772819#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 772885#$Ultimate##0 ~n := #in~n; 773142#L25 assume !(~n <= 0); 773030#L26 call #t~ret0 := fact(~n - 1);< 773096#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773237#factFINAL assume true; 773222#factEXIT >#70#return; 772909#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 773182#$Ultimate##0 ~n := #in~n; 773701#L25 assume !(~n <= 0); 773042#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773063#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773181#factFINAL assume true; 773147#factEXIT >#72#return; 772979#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 774100#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 774099#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 774097#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 774095#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773333#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773379#$Ultimate##0 ~n := #in~n; 773399#L25 assume !(~n <= 0); 773386#L26 call #t~ret0 := fact(~n - 1);< 773397#$Ultimate##0 ~n := #in~n; 773439#L25 assume !(~n <= 0); 773390#L26 call #t~ret0 := fact(~n - 1);< 773437#$Ultimate##0 ~n := #in~n; 773446#L25 assume !(~n <= 0); 773038#L26 call #t~ret0 := fact(~n - 1);< 773048#$Ultimate##0 ~n := #in~n; 773524#L25 assume !(~n <= 0); 773034#L26 call #t~ret0 := fact(~n - 1);< 773523#$Ultimate##0 ~n := #in~n; 773522#L25 assume !(~n <= 0); 773032#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773411#factFINAL assume true; 773401#factEXIT >#66#return; 773393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773434#factFINAL assume true; 773382#factEXIT >#66#return; 773381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773380#factFINAL assume true; 773310#factEXIT >#68#return; 772858#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 772885#$Ultimate##0 ~n := #in~n; 773142#L25 assume !(~n <= 0); 773030#L26 call #t~ret0 := fact(~n - 1);< 773096#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773120#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773258#factFINAL assume true; 773239#factEXIT >#70#return; 772910#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 773215#$Ultimate##0 ~n := #in~n; 773207#L25 assume !(~n <= 0); 773033#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773063#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773181#factFINAL assume true; 773147#factEXIT >#72#return; 773172#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 774131#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 774128#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 774124#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 774120#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773318#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773379#$Ultimate##0 ~n := #in~n; 773399#L25 assume !(~n <= 0); 773386#L26 call #t~ret0 := fact(~n - 1);< 773397#$Ultimate##0 ~n := #in~n; 773439#L25 assume !(~n <= 0); 773390#L26 call #t~ret0 := fact(~n - 1);< 773437#$Ultimate##0 ~n := #in~n; 773446#L25 assume !(~n <= 0); 773038#L26 call #t~ret0 := fact(~n - 1);< 773048#$Ultimate##0 ~n := #in~n; 773524#L25 assume !(~n <= 0); 773034#L26 call #t~ret0 := fact(~n - 1);< 773523#$Ultimate##0 ~n := #in~n; 773522#L25 assume !(~n <= 0); 773032#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773411#factFINAL assume true; 773401#factEXIT >#66#return; 773393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773434#factFINAL assume true; 773382#factEXIT >#66#return; 773381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773380#factFINAL assume true; 773310#factEXIT >#68#return; 772828#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 772885#$Ultimate##0 ~n := #in~n; 773142#L25 assume !(~n <= 0); 773030#L26 call #t~ret0 := fact(~n - 1);< 773096#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773063#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773181#factFINAL assume true; 773147#factEXIT >#70#return; 772961#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 773215#$Ultimate##0 ~n := #in~n; 773207#L25 assume !(~n <= 0); 773033#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773120#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773258#factFINAL assume true; 773239#factEXIT >#72#return; 773254#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 774155#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 774154#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 774151#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 774148#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773336#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773379#$Ultimate##0 ~n := #in~n; 773399#L25 assume !(~n <= 0); 773386#L26 call #t~ret0 := fact(~n - 1);< 773397#$Ultimate##0 ~n := #in~n; 773439#L25 assume !(~n <= 0); 773390#L26 call #t~ret0 := fact(~n - 1);< 773437#$Ultimate##0 ~n := #in~n; 773446#L25 assume !(~n <= 0); 773038#L26 call #t~ret0 := fact(~n - 1);< 773048#$Ultimate##0 ~n := #in~n; 773524#L25 assume !(~n <= 0); 773034#L26 call #t~ret0 := fact(~n - 1);< 773523#$Ultimate##0 ~n := #in~n; 773522#L25 assume !(~n <= 0); 773032#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773411#factFINAL assume true; 773401#factEXIT >#66#return; 773393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773434#factFINAL assume true; 773382#factEXIT >#66#return; 773381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773380#factFINAL assume true; 773310#factEXIT >#68#return; 772846#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 772885#$Ultimate##0 ~n := #in~n; 773142#L25 assume !(~n <= 0); 773030#L26 call #t~ret0 := fact(~n - 1);< 773096#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773016#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 772998#factFINAL assume true; 772886#factEXIT >#70#return; 772947#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 773215#$Ultimate##0 ~n := #in~n; 773207#L25 assume !(~n <= 0); 773033#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773237#factFINAL assume true; 773222#factEXIT >#72#return; 773232#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 774173#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 774169#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 774045#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 774044#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773316#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773379#$Ultimate##0 ~n := #in~n; 773399#L25 assume !(~n <= 0); 773386#L26 call #t~ret0 := fact(~n - 1);< 773397#$Ultimate##0 ~n := #in~n; 773439#L25 assume !(~n <= 0); 773390#L26 call #t~ret0 := fact(~n - 1);< 773437#$Ultimate##0 ~n := #in~n; 773446#L25 assume !(~n <= 0); 773038#L26 call #t~ret0 := fact(~n - 1);< 773048#$Ultimate##0 ~n := #in~n; 773524#L25 assume !(~n <= 0); 773034#L26 call #t~ret0 := fact(~n - 1);< 773523#$Ultimate##0 ~n := #in~n; 773522#L25 assume !(~n <= 0); 773032#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773411#factFINAL assume true; 773401#factEXIT >#66#return; 773393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773434#factFINAL assume true; 773382#factEXIT >#66#return; 773381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773380#factFINAL assume true; 773310#factEXIT >#68#return; 772808#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 772885#$Ultimate##0 ~n := #in~n; 773142#L25 assume !(~n <= 0); 773030#L26 call #t~ret0 := fact(~n - 1);< 773096#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773411#factFINAL assume true; 773401#factEXIT >#66#return; 773403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773307#factFINAL assume true; 773308#factEXIT >#70#return; 772937#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 773145#$Ultimate##0 ~n := #in~n; 773141#L25 assume !(~n <= 0); 773030#L26 call #t~ret0 := fact(~n - 1);< 773096#$Ultimate##0 ~n := #in~n; 773143#L25 assume ~n <= 0;#res := 1; 773133#factFINAL assume true; 773128#factEXIT >#66#return; 773127#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773124#factFINAL assume true; 773097#factEXIT >#72#return; 773101#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 773876#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 773875#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 773874#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 773873#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 773350#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 773379#$Ultimate##0 ~n := #in~n; 773399#L25 assume !(~n <= 0); 773386#L26 call #t~ret0 := fact(~n - 1);< 773397#$Ultimate##0 ~n := #in~n; 773439#L25 assume !(~n <= 0); 773390#L26 call #t~ret0 := fact(~n - 1);< 773437#$Ultimate##0 ~n := #in~n; 773446#L25 assume !(~n <= 0); 773038#L26 call #t~ret0 := fact(~n - 1);< 773048#$Ultimate##0 ~n := #in~n; 773524#L25 assume !(~n <= 0); 773034#L26 call #t~ret0 := fact(~n - 1);< 773523#$Ultimate##0 ~n := #in~n; 773522#L25 assume !(~n <= 0); 773032#L26 call #t~ret0 := fact(~n - 1);< 773071#$Ultimate##0 ~n := #in~n; 773520#L25 assume !(~n <= 0); 773024#L26 call #t~ret0 := fact(~n - 1);< 773121#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773411#factFINAL assume true; 773401#factEXIT >#66#return; 773393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773434#factFINAL assume true; 773382#factEXIT >#66#return; 773381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773380#factFINAL assume true; 773310#factEXIT >#68#return; 772791#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 772885#$Ultimate##0 ~n := #in~n; 773142#L25 assume !(~n <= 0); 773030#L26 call #t~ret0 := fact(~n - 1);< 773096#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773221#L25 assume !(~n <= 0); 773029#L26 call #t~ret0 := fact(~n - 1);< 773213#$Ultimate##0 ~n := #in~n; 773220#L25 assume ~n <= 0;#res := 1; 773219#factFINAL assume true; 773210#factEXIT >#66#return; 773206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773196#factFINAL assume true; 773186#factEXIT >#66#return; 773184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773178#factFINAL assume true; 773113#factEXIT >#66#return; 773112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773068#factFINAL assume true; 773058#factEXIT >#66#return; 773056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773050#factFINAL assume true; 773019#factEXIT >#66#return; 773046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773411#factFINAL assume true; 773401#factEXIT >#66#return; 773403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 773307#factFINAL assume true; 773308#factEXIT >#70#return; 772831#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 772885#$Ultimate##0 ~n := #in~n; 773142#L25 assume ~n <= 0;#res := 1; 772881#factFINAL assume true; 772786#factEXIT >#72#return; 772871#L30-3 [2023-02-18 08:58:29,450 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:29,451 INFO L85 PathProgramCache]: Analyzing trace with hash -782399415, now seen corresponding path program 74 times [2023-02-18 08:58:29,451 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:29,451 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1908420982] [2023-02-18 08:58:29,451 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:29,451 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:29,479 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:29,479 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1412707856] [2023-02-18 08:58:29,479 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:58:29,479 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:29,480 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:29,483 INFO L229 MonitoredProcess]: Starting monitored process 273 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:58:29,484 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (273)] Waiting until timeout for monitored process [2023-02-18 08:58:30,406 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:58:30,406 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:58:30,419 INFO L263 TraceCheckSpWp]: Trace formula consists of 3844 conjuncts, 15 conjunts are in the unsatisfiable core [2023-02-18 08:58:30,429 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:30,485 INFO L134 CoverageAnalysis]: Checked inductivity of 206522 backedges. 86260 proven. 338 refuted. 0 times theorem prover too weak. 119924 trivial. 0 not checked. [2023-02-18 08:58:30,485 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:30,599 INFO L134 CoverageAnalysis]: Checked inductivity of 206522 backedges. 2320 proven. 3999 refuted. 0 times theorem prover too weak. 200203 trivial. 0 not checked. [2023-02-18 08:58:30,599 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:30,599 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1908420982] [2023-02-18 08:58:30,599 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:30,599 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1412707856] [2023-02-18 08:58:30,599 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1412707856] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:30,599 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:30,599 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 16 [2023-02-18 08:58:30,599 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1566287027] [2023-02-18 08:58:30,599 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:30,600 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:58:30,600 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:30,600 INFO L85 PathProgramCache]: Analyzing trace with hash 1664710075, now seen corresponding path program 74 times [2023-02-18 08:58:30,600 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:30,600 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2008653868] [2023-02-18 08:58:30,600 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:30,600 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:30,618 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:30,618 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1276484290] [2023-02-18 08:58:30,618 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:58:30,618 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:30,619 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:30,621 INFO L229 MonitoredProcess]: Starting monitored process 274 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:58:30,621 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (274)] Waiting until timeout for monitored process [2023-02-18 08:58:31,350 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:58:31,350 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:58:31,357 INFO L263 TraceCheckSpWp]: Trace formula consists of 1931 conjuncts, 36 conjunts are in the unsatisfiable core [2023-02-18 08:58:31,363 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:31,488 INFO L134 CoverageAnalysis]: Checked inductivity of 59123 backedges. 21416 proven. 560 refuted. 0 times theorem prover too weak. 37147 trivial. 0 not checked. [2023-02-18 08:58:31,489 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:31,908 INFO L134 CoverageAnalysis]: Checked inductivity of 59123 backedges. 973 proven. 7426 refuted. 0 times theorem prover too weak. 50724 trivial. 0 not checked. [2023-02-18 08:58:31,908 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:31,909 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2008653868] [2023-02-18 08:58:31,909 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:31,909 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1276484290] [2023-02-18 08:58:31,909 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1276484290] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:31,909 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:31,909 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 33] total 38 [2023-02-18 08:58:31,909 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1114613177] [2023-02-18 08:58:31,909 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:31,909 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:58:31,909 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:58:31,910 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 38 interpolants. [2023-02-18 08:58:31,910 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=181, Invalid=1225, Unknown=0, NotChecked=0, Total=1406 [2023-02-18 08:58:31,910 INFO L87 Difference]: Start difference. First operand 4986 states and 7514 transitions. cyclomatic complexity: 2570 Second operand has 38 states, 34 states have (on average 2.6176470588235294) internal successors, (89), 38 states have internal predecessors, (89), 21 states have call successors, (33), 2 states have call predecessors, (33), 15 states have return successors, (42), 19 states have call predecessors, (42), 21 states have call successors, (42) [2023-02-18 08:58:33,931 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:58:33,931 INFO L93 Difference]: Finished difference Result 5786 states and 9090 transitions. [2023-02-18 08:58:33,931 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 5786 states and 9090 transitions. [2023-02-18 08:58:33,960 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 478 [2023-02-18 08:58:34,124 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 5786 states to 5785 states and 9080 transitions. [2023-02-18 08:58:34,125 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 308 [2023-02-18 08:58:34,125 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 308 [2023-02-18 08:58:34,125 INFO L73 IsDeterministic]: Start isDeterministic. Operand 5785 states and 9080 transitions. [2023-02-18 08:58:34,125 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:58:34,125 INFO L218 hiAutomatonCegarLoop]: Abstraction has 5785 states and 9080 transitions. [2023-02-18 08:58:34,127 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 5785 states and 9080 transitions. [2023-02-18 08:58:34,178 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 5785 to 4995. [2023-02-18 08:58:34,182 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4995 states, 3097 states have (on average 1.047788182111721) internal successors, (3245), 3096 states have internal predecessors, (3245), 1559 states have call successors, (1581), 457 states have call predecessors, (1581), 339 states have return successors, (2707), 1441 states have call predecessors, (2707), 1559 states have call successors, (2707) [2023-02-18 08:58:34,197 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4995 states to 4995 states and 7533 transitions. [2023-02-18 08:58:34,198 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4995 states and 7533 transitions. [2023-02-18 08:58:34,198 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 29 states. [2023-02-18 08:58:34,198 INFO L428 stractBuchiCegarLoop]: Abstraction has 4995 states and 7533 transitions. [2023-02-18 08:58:34,198 INFO L335 stractBuchiCegarLoop]: ======== Iteration 87 ============ [2023-02-18 08:58:34,198 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4995 states and 7533 transitions. [2023-02-18 08:58:34,209 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 478 [2023-02-18 08:58:34,209 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:58:34,209 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:58:34,215 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [288, 288, 210, 210, 210, 210, 78, 26, 25, 19, 19, 19, 19, 19, 19, 19, 18, 18, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 4, 4, 1, 1, 1, 1] [2023-02-18 08:58:34,215 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [151, 151, 124, 124, 124, 124, 27, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:58:34,216 INFO L748 eck$LassoCheckResult]: Stem: 799779#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 799721#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; 799722#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 799747#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; 799780#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 802879#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 802878#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 802876#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 802877#$Ultimate##0 ~n := #in~n; 802883#L25 assume ~n <= 0;#res := 1; 802881#factFINAL assume true; 802875#factEXIT >#68#return; 802872#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 802873#$Ultimate##0 ~n := #in~n; 802888#L25 assume ~n <= 0;#res := 1; 802887#factFINAL assume true; 802871#factEXIT >#70#return; 802868#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 802869#$Ultimate##0 ~n := #in~n; 802893#L25 assume ~n <= 0;#res := 1; 802891#factFINAL assume true; 802867#factEXIT >#72#return; 802865#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 802863#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 802343#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 802341#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 802339#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 802337#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 802338#$Ultimate##0 ~n := #in~n; 802843#L25 assume !(~n <= 0); 802839#L26 call #t~ret0 := fact(~n - 1);< 802840#$Ultimate##0 ~n := #in~n; 803455#L25 assume ~n <= 0;#res := 1; 803453#factFINAL assume true; 802838#factEXIT >#66#return; 802837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802836#factFINAL assume true; 802336#factEXIT >#74#return; 802334#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 802335#$Ultimate##0 ~n := #in~n; 802757#L25 assume ~n <= 0;#res := 1; 802756#factFINAL assume true; 802333#factEXIT >#76#return; 802330#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 802331#$Ultimate##0 ~n := #in~n; 802754#L25 assume !(~n <= 0); 802752#L26 call #t~ret0 := fact(~n - 1);< 802753#$Ultimate##0 ~n := #in~n; 802765#L25 assume ~n <= 0;#res := 1; 802764#factFINAL assume true; 802751#factEXIT >#66#return; 802749#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802748#factFINAL assume true; 802329#factEXIT >#78#return; 802327#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 802326#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 802325#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 802323#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 802322#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 802278#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 802321#$Ultimate##0 ~n := #in~n; 802320#L25 assume !(~n <= 0); 802267#L26 call #t~ret0 := fact(~n - 1);< 802271#$Ultimate##0 ~n := #in~n; 802285#L25 assume !(~n <= 0); 802266#L26 call #t~ret0 := fact(~n - 1);< 802284#$Ultimate##0 ~n := #in~n; 802287#L25 assume ~n <= 0;#res := 1; 802286#factFINAL assume true; 802283#factEXIT >#66#return; 802282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802277#factFINAL assume true; 802265#factEXIT >#66#return; 802269#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 804070#factFINAL assume true; 802739#factEXIT >#74#return; 802736#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 802737#$Ultimate##0 ~n := #in~n; 803271#L25 assume ~n <= 0;#res := 1; 803270#factFINAL assume true; 802735#factEXIT >#76#return; 802256#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 802257#$Ultimate##0 ~n := #in~n; 802273#L25 assume !(~n <= 0); 802268#L26 call #t~ret0 := fact(~n - 1);< 802271#$Ultimate##0 ~n := #in~n; 802285#L25 assume !(~n <= 0); 802266#L26 call #t~ret0 := fact(~n - 1);< 802284#$Ultimate##0 ~n := #in~n; 802287#L25 assume ~n <= 0;#res := 1; 802286#factFINAL assume true; 802283#factEXIT >#66#return; 802282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802277#factFINAL assume true; 802265#factEXIT >#66#return; 802263#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802261#factFINAL assume true; 802255#factEXIT >#78#return; 802254#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 802253#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 802252#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 802251#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 802249#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 802247#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 802248#$Ultimate##0 ~n := #in~n; 802296#L25 assume !(~n <= 0); 802293#L26 call #t~ret0 := fact(~n - 1);< 802294#$Ultimate##0 ~n := #in~n; 802302#L25 assume !(~n <= 0); 802292#L26 call #t~ret0 := fact(~n - 1);< 802300#$Ultimate##0 ~n := #in~n; 802302#L25 assume !(~n <= 0); 802292#L26 call #t~ret0 := fact(~n - 1);< 802300#$Ultimate##0 ~n := #in~n; 802637#L25 assume ~n <= 0;#res := 1; 802635#factFINAL assume true; 802633#factEXIT >#66#return; 802632#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802631#factFINAL assume true; 802299#factEXIT >#66#return; 802298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802297#factFINAL assume true; 802291#factEXIT >#66#return; 802289#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802288#factFINAL assume true; 802246#factEXIT >#74#return; 802244#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 802245#$Ultimate##0 ~n := #in~n; 802295#L25 assume ~n <= 0;#res := 1; 802290#factFINAL assume true; 802243#factEXIT >#76#return; 799756#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 802241#$Ultimate##0 ~n := #in~n; 804096#L25 assume !(~n <= 0); 799703#L26 call #t~ret0 := fact(~n - 1);< 802306#$Ultimate##0 ~n := #in~n; 803283#L25 assume !(~n <= 0); 799705#L26 call #t~ret0 := fact(~n - 1);< 803282#$Ultimate##0 ~n := #in~n; 803283#L25 assume !(~n <= 0); 799705#L26 call #t~ret0 := fact(~n - 1);< 803282#$Ultimate##0 ~n := #in~n; 803285#L25 assume ~n <= 0;#res := 1; 803284#factFINAL assume true; 803281#factEXIT >#66#return; 803280#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 803279#factFINAL assume true; 803277#factEXIT >#66#return; 802682#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802681#factFINAL assume true; 802304#factEXIT >#66#return; 799709#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799757#factFINAL assume true; 802240#factEXIT >#78#return; 802209#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 802208#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 802207#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 802198#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 802197#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 802196#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 802195#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 802193#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 802105#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 802110#$Ultimate##0 ~n := #in~n; 802162#L25 assume !(~n <= 0); 802123#L26 call #t~ret0 := fact(~n - 1);< 802160#$Ultimate##0 ~n := #in~n; 803431#L25 assume ~n <= 0;#res := 1; 802898#factFINAL assume true; 802848#factEXIT >#66#return; 802854#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 803490#factFINAL assume true; 803481#factEXIT >#68#return; 803480#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 802098#$Ultimate##0 ~n := #in~n; 803505#L25 assume ~n <= 0;#res := 1; 803504#factFINAL assume true; 803479#factEXIT >#70#return; 803467#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 803476#$Ultimate##0 ~n := #in~n; 803474#L25 assume !(~n <= 0); 802141#L26 call #t~ret0 := fact(~n - 1);< 802919#$Ultimate##0 ~n := #in~n; 803431#L25 assume ~n <= 0;#res := 1; 802898#factFINAL assume true; 802848#factEXIT >#66#return; 802855#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 804082#factFINAL assume true; 804081#factEXIT >#72#return; 804080#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 804078#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 804077#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 804076#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 804075#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 802913#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 802925#$Ultimate##0 ~n := #in~n; 802920#L25 assume !(~n <= 0); 802151#L26 call #t~ret0 := fact(~n - 1);< 802919#$Ultimate##0 ~n := #in~n; 803431#L25 assume ~n <= 0;#res := 1; 802898#factFINAL assume true; 802848#factEXIT >#66#return; 802858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 803670#factFINAL assume true; 803668#factEXIT >#68#return; 802911#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 803610#$Ultimate##0 ~n := #in~n; 803674#L25 assume !(~n <= 0); 802851#L26 call #t~ret0 := fact(~n - 1);< 802859#$Ultimate##0 ~n := #in~n; 803431#L25 assume ~n <= 0;#res := 1; 802898#factFINAL assume true; 802848#factEXIT >#66#return; 802857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 803611#factFINAL assume true; 803604#factEXIT >#70#return; 802968#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 802981#$Ultimate##0 ~n := #in~n; 803662#L25 assume ~n <= 0;#res := 1; 802982#factFINAL assume true; 802967#factEXIT >#72#return; 802966#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 802965#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 802964#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 802963#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 802962#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 802957#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 802961#$Ultimate##0 ~n := #in~n; 803691#L25 assume !(~n <= 0); 802140#L26 call #t~ret0 := fact(~n - 1);< 803450#$Ultimate##0 ~n := #in~n; 803999#L25 assume !(~n <= 0); 802137#L26 call #t~ret0 := fact(~n - 1);< 802221#$Ultimate##0 ~n := #in~n; 802233#L25 assume ~n <= 0;#res := 1; 802231#factFINAL assume true; 802219#factEXIT >#66#return; 802211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802199#factFINAL assume true; 802121#factEXIT >#66#return; 802155#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 804105#factFINAL assume true; 804104#factEXIT >#74#return; 802798#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 802842#$Ultimate##0 ~n := #in~n; 802862#L25 assume !(~n <= 0); 802148#L26 call #t~ret0 := fact(~n - 1);< 802160#$Ultimate##0 ~n := #in~n; 803431#L25 assume ~n <= 0;#res := 1; 802898#factFINAL assume true; 802848#factEXIT >#66#return; 802846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802841#factFINAL assume true; 802781#factEXIT >#76#return; 802794#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 802812#$Ultimate##0 ~n := #in~n; 802861#L25 assume !(~n <= 0); 802852#L26 call #t~ret0 := fact(~n - 1);< 802859#$Ultimate##0 ~n := #in~n; 803431#L25 assume ~n <= 0;#res := 1; 802898#factFINAL assume true; 802848#factEXIT >#66#return; 802846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802841#factFINAL assume true; 802781#factEXIT >#78#return; 802810#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 802950#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 802949#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 802948#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 802947#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 802174#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 802780#$Ultimate##0 ~n := #in~n; 803314#L25 assume !(~n <= 0); 802713#L26 call #t~ret0 := fact(~n - 1);< 803312#$Ultimate##0 ~n := #in~n; 803311#L25 assume !(~n <= 0); 802711#L26 call #t~ret0 := fact(~n - 1);< 803307#$Ultimate##0 ~n := #in~n; 803311#L25 assume !(~n <= 0); 802711#L26 call #t~ret0 := fact(~n - 1);< 803307#$Ultimate##0 ~n := #in~n; 803310#L25 assume ~n <= 0;#res := 1; 803313#factFINAL assume true; 803305#factEXIT >#66#return; 803304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802766#factFINAL assume true; 802740#factEXIT >#66#return; 802738#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802732#factFINAL assume true; 802709#factEXIT >#66#return; 802727#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 803269#factFINAL assume true; 802679#factEXIT >#74#return; 802654#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 802771#$Ultimate##0 ~n := #in~n; 803233#L25 assume !(~n <= 0); 802710#L26 call #t~ret0 := fact(~n - 1);< 803230#$Ultimate##0 ~n := #in~n; 803236#L25 assume ~n <= 0;#res := 1; 803234#factFINAL assume true; 803226#factEXIT >#66#return; 803224#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 803217#factFINAL assume true; 802650#factEXIT >#76#return; 802663#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 802192#$Ultimate##0 ~n := #in~n; 803707#L25 assume !(~n <= 0); 802724#L26 call #t~ret0 := fact(~n - 1);< 803272#$Ultimate##0 ~n := #in~n; 804093#L25 assume !(~n <= 0); 802716#L26 call #t~ret0 := fact(~n - 1);< 802745#$Ultimate##0 ~n := #in~n; 803310#L25 assume ~n <= 0;#res := 1; 803313#factFINAL assume true; 803305#factEXIT >#66#return; 803304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802766#factFINAL assume true; 802740#factEXIT >#66#return; 802743#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 803268#factFINAL assume true; 802665#factEXIT >#78#return; 802672#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 804112#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 804111#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 804110#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 799746#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 799738#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 799739#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 804138#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 802106#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 802110#$Ultimate##0 ~n := #in~n; 802162#L25 assume !(~n <= 0); 802123#L26 call #t~ret0 := fact(~n - 1);< 802160#$Ultimate##0 ~n := #in~n; 803415#L25 assume !(~n <= 0); 802134#L26 call #t~ret0 := fact(~n - 1);< 802692#$Ultimate##0 ~n := #in~n; 802233#L25 assume ~n <= 0;#res := 1; 802231#factFINAL assume true; 802219#factEXIT >#66#return; 802211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802199#factFINAL assume true; 802121#factEXIT >#66#return; 802119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802113#factFINAL assume true; 802102#factEXIT >#68#return; 802096#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 802101#$Ultimate##0 ~n := #in~n; 802614#L25 assume ~n <= 0;#res := 1; 802609#factFINAL assume true; 802091#factEXIT >#70#return; 802080#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 802090#$Ultimate##0 ~n := #in~n; 802589#L25 assume !(~n <= 0); 801203#L26 call #t~ret0 := fact(~n - 1);< 801376#$Ultimate##0 ~n := #in~n; 802340#L25 assume !(~n <= 0); 801240#L26 call #t~ret0 := fact(~n - 1);< 801242#$Ultimate##0 ~n := #in~n; 801255#L25 assume ~n <= 0;#res := 1; 801252#factFINAL assume true; 801239#factEXIT >#66#return; 801238#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801217#factFINAL assume true; 801195#factEXIT >#66#return; 801213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802588#factFINAL assume true; 802078#factEXIT >#72#return; 802087#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 803150#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 803148#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 803147#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 803146#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 801711#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 801722#$Ultimate##0 ~n := #in~n; 802227#L25 assume !(~n <= 0); 801202#L26 call #t~ret0 := fact(~n - 1);< 801376#$Ultimate##0 ~n := #in~n; 802340#L25 assume !(~n <= 0); 801240#L26 call #t~ret0 := fact(~n - 1);< 801242#$Ultimate##0 ~n := #in~n; 801255#L25 assume ~n <= 0;#res := 1; 801252#factFINAL assume true; 801239#factEXIT >#66#return; 801238#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801217#factFINAL assume true; 801195#factEXIT >#66#return; 801209#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802225#factFINAL assume true; 801703#factEXIT >#68#return; 801718#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 802064#$Ultimate##0 ~n := #in~n; 802068#L25 assume !(~n <= 0); 800846#L26 call #t~ret0 := fact(~n - 1);< 800855#$Ultimate##0 ~n := #in~n; 801151#L25 assume ~n <= 0;#res := 1; 801146#factFINAL assume true; 800834#factEXIT >#66#return; 800851#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802065#factFINAL assume true; 802052#factEXIT >#70#return; 802058#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 802064#$Ultimate##0 ~n := #in~n; 802068#L25 assume !(~n <= 0); 800846#L26 call #t~ret0 := fact(~n - 1);< 800855#$Ultimate##0 ~n := #in~n; 801151#L25 assume ~n <= 0;#res := 1; 801146#factFINAL assume true; 800834#factEXIT >#66#return; 800851#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802065#factFINAL assume true; 802052#factEXIT >#72#return; 802063#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 803141#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 803140#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 803138#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 803137#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 801709#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 801722#$Ultimate##0 ~n := #in~n; 802227#L25 assume !(~n <= 0); 801202#L26 call #t~ret0 := fact(~n - 1);< 801376#$Ultimate##0 ~n := #in~n; 802340#L25 assume !(~n <= 0); 801240#L26 call #t~ret0 := fact(~n - 1);< 801242#$Ultimate##0 ~n := #in~n; 801255#L25 assume ~n <= 0;#res := 1; 801252#factFINAL assume true; 801239#factEXIT >#66#return; 801238#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801217#factFINAL assume true; 801195#factEXIT >#66#return; 801209#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802225#factFINAL assume true; 801703#factEXIT >#68#return; 801699#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 801701#$Ultimate##0 ~n := #in~n; 802226#L25 assume !(~n <= 0); 801206#L26 call #t~ret0 := fact(~n - 1);< 801245#$Ultimate##0 ~n := #in~n; 801243#L25 assume !(~n <= 0); 801199#L26 call #t~ret0 := fact(~n - 1);< 801220#$Ultimate##0 ~n := #in~n; 801255#L25 assume ~n <= 0;#res := 1; 801252#factFINAL assume true; 801239#factEXIT >#66#return; 801238#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801217#factFINAL assume true; 801195#factEXIT >#66#return; 801216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802223#factFINAL assume true; 801694#factEXIT >#70#return; 801661#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 801669#$Ultimate##0 ~n := #in~n; 801673#L25 assume ~n <= 0;#res := 1; 801671#factFINAL assume true; 801657#factEXIT >#72#return; 801667#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 803132#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 803130#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 803129#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 803128#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 801030#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 802041#$Ultimate##0 ~n := #in~n; 802705#L25 assume !(~n <= 0); 801004#L26 call #t~ret0 := fact(~n - 1);< 801013#$Ultimate##0 ~n := #in~n; 802451#L25 assume !(~n <= 0); 801006#L26 call #t~ret0 := fact(~n - 1);< 801989#$Ultimate##0 ~n := #in~n; 802451#L25 assume !(~n <= 0); 801006#L26 call #t~ret0 := fact(~n - 1);< 801989#$Ultimate##0 ~n := #in~n; 802430#L25 assume ~n <= 0;#res := 1; 802429#factFINAL assume true; 801987#factEXIT >#66#return; 801592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801044#factFINAL assume true; 801036#factEXIT >#66#return; 801034#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801029#factFINAL assume true; 801020#factEXIT >#66#return; 801027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802526#factFINAL assume true; 802040#factEXIT >#74#return; 801045#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 801609#$Ultimate##0 ~n := #in~n; 803653#L25 assume !(~n <= 0); 801022#L26 call #t~ret0 := fact(~n - 1);< 801048#$Ultimate##0 ~n := #in~n; 802004#L25 assume !(~n <= 0); 801037#L26 call #t~ret0 := fact(~n - 1);< 801041#$Ultimate##0 ~n := #in~n; 802430#L25 assume ~n <= 0;#res := 1; 802429#factFINAL assume true; 801987#factEXIT >#66#return; 801592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801044#factFINAL assume true; 801036#factEXIT >#66#return; 801040#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802036#factFINAL assume true; 801610#factEXIT >#76#return; 800988#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 800992#$Ultimate##0 ~n := #in~n; 801688#L25 assume !(~n <= 0); 800794#L26 call #t~ret0 := fact(~n - 1);< 800799#$Ultimate##0 ~n := #in~n; 801672#L25 assume ~n <= 0;#res := 1; 801080#factFINAL assume true; 800788#factEXIT >#66#return; 800798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 802689#factFINAL assume true; 800983#factEXIT >#78#return; 800777#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 800977#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 800976#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 800974#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 800972#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 800970#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 800968#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 800966#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800583#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800585#$Ultimate##0 ~n := #in~n; 800584#L25 assume !(~n <= 0); 800143#L26 call #t~ret0 := fact(~n - 1);< 800581#$Ultimate##0 ~n := #in~n; 800580#L25 assume !(~n <= 0); 800168#L26 call #t~ret0 := fact(~n - 1);< 800573#$Ultimate##0 ~n := #in~n; 800574#L25 assume !(~n <= 0); 800223#L26 call #t~ret0 := fact(~n - 1);< 800575#$Ultimate##0 ~n := #in~n; 800576#L25 assume !(~n <= 0); 800337#L26 call #t~ret0 := fact(~n - 1);< 800345#$Ultimate##0 ~n := #in~n; 800698#L25 assume !(~n <= 0); 800438#L26 call #t~ret0 := fact(~n - 1);< 800439#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800935#factFINAL assume true; 800695#factEXIT >#68#return; 800602#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 800608#$Ultimate##0 ~n := #in~n; 800610#L25 assume ~n <= 0;#res := 1; 800609#factFINAL assume true; 800595#factEXIT >#70#return; 800324#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 800626#$Ultimate##0 ~n := #in~n; 801043#L25 assume !(~n <= 0); 800130#L26 call #t~ret0 := fact(~n - 1);< 800152#$Ultimate##0 ~n := #in~n; 800464#L25 assume !(~n <= 0); 800144#L26 call #t~ret0 := fact(~n - 1);< 800463#$Ultimate##0 ~n := #in~n; 800449#L25 assume !(~n <= 0); 800141#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800149#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800627#factFINAL assume true; 800625#factEXIT >#72#return; 800455#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 800727#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 800725#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 800723#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 800721#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800116#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800120#$Ultimate##0 ~n := #in~n; 800164#L25 assume !(~n <= 0); 800135#L26 call #t~ret0 := fact(~n - 1);< 800161#$Ultimate##0 ~n := #in~n; 800277#L25 assume !(~n <= 0); 800167#L26 call #t~ret0 := fact(~n - 1);< 800174#$Ultimate##0 ~n := #in~n; 800285#L25 assume !(~n <= 0); 800222#L26 call #t~ret0 := fact(~n - 1);< 800229#$Ultimate##0 ~n := #in~n; 800467#L25 assume !(~n <= 0); 800342#L26 call #t~ret0 := fact(~n - 1);< 800701#$Ultimate##0 ~n := #in~n; 800698#L25 assume !(~n <= 0); 800438#L26 call #t~ret0 := fact(~n - 1);< 800439#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800151#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800122#factFINAL assume true; 800105#factEXIT >#68#return; 799795#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 799957#$Ultimate##0 ~n := #in~n; 799888#L25 assume !(~n <= 0); 799889#L26 call #t~ret0 := fact(~n - 1);< 800349#$Ultimate##0 ~n := #in~n; 800424#L25 assume ~n <= 0;#res := 1; 800416#factFINAL assume true; 800346#factEXIT >#66#return; 800267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800231#factFINAL assume true; 800205#factEXIT >#70#return; 800210#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 800276#$Ultimate##0 ~n := #in~n; 800711#L25 assume !(~n <= 0); 800169#L26 call #t~ret0 := fact(~n - 1);< 800710#$Ultimate##0 ~n := #in~n; 800709#L25 assume !(~n <= 0); 800226#L26 call #t~ret0 := fact(~n - 1);< 800707#$Ultimate##0 ~n := #in~n; 800576#L25 assume !(~n <= 0); 800337#L26 call #t~ret0 := fact(~n - 1);< 800345#$Ultimate##0 ~n := #in~n; 800698#L25 assume !(~n <= 0); 800438#L26 call #t~ret0 := fact(~n - 1);< 800439#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800334#factFINAL assume true; 800233#factEXIT >#72#return; 800249#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 800551#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 800552#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 800546#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 800547#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800107#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800120#$Ultimate##0 ~n := #in~n; 800164#L25 assume !(~n <= 0); 800135#L26 call #t~ret0 := fact(~n - 1);< 800161#$Ultimate##0 ~n := #in~n; 800277#L25 assume !(~n <= 0); 800167#L26 call #t~ret0 := fact(~n - 1);< 800174#$Ultimate##0 ~n := #in~n; 800285#L25 assume !(~n <= 0); 800222#L26 call #t~ret0 := fact(~n - 1);< 800229#$Ultimate##0 ~n := #in~n; 800467#L25 assume !(~n <= 0); 800342#L26 call #t~ret0 := fact(~n - 1);< 800701#$Ultimate##0 ~n := #in~n; 800698#L25 assume !(~n <= 0); 800438#L26 call #t~ret0 := fact(~n - 1);< 800439#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800151#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800122#factFINAL assume true; 800105#factEXIT >#68#return; 800118#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 800434#$Ultimate##0 ~n := #in~n; 800465#L25 assume !(~n <= 0); 800136#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800343#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800433#factFINAL assume true; 800376#factEXIT >#70#return; 800265#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 800442#$Ultimate##0 ~n := #in~n; 800441#L25 assume !(~n <= 0); 800225#L26 call #t~ret0 := fact(~n - 1);< 800229#$Ultimate##0 ~n := #in~n; 800467#L25 assume !(~n <= 0); 800342#L26 call #t~ret0 := fact(~n - 1);< 800701#$Ultimate##0 ~n := #in~n; 800698#L25 assume !(~n <= 0); 800438#L26 call #t~ret0 := fact(~n - 1);< 800439#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800435#factFINAL assume true; 800394#factEXIT >#72#return; 800408#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 800592#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 800590#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 800568#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 800415#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800117#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800120#$Ultimate##0 ~n := #in~n; 800164#L25 assume !(~n <= 0); 800135#L26 call #t~ret0 := fact(~n - 1);< 800161#$Ultimate##0 ~n := #in~n; 800277#L25 assume !(~n <= 0); 800167#L26 call #t~ret0 := fact(~n - 1);< 800174#$Ultimate##0 ~n := #in~n; 800285#L25 assume !(~n <= 0); 800222#L26 call #t~ret0 := fact(~n - 1);< 800229#$Ultimate##0 ~n := #in~n; 800467#L25 assume !(~n <= 0); 800342#L26 call #t~ret0 := fact(~n - 1);< 800701#$Ultimate##0 ~n := #in~n; 800698#L25 assume !(~n <= 0); 800438#L26 call #t~ret0 := fact(~n - 1);< 800439#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800151#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800122#factFINAL assume true; 800105#factEXIT >#68#return; 800045#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 800101#$Ultimate##0 ~n := #in~n; 800934#L25 assume !(~n <= 0); 800137#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800435#factFINAL assume true; 800394#factEXIT >#70#return; 800378#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 800392#$Ultimate##0 ~n := #in~n; 800708#L25 assume !(~n <= 0); 800341#L26 call #t~ret0 := fact(~n - 1);< 800702#$Ultimate##0 ~n := #in~n; 800700#L25 assume !(~n <= 0); 800340#L26 call #t~ret0 := fact(~n - 1);< 800345#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800343#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800433#factFINAL assume true; 800376#factEXIT >#72#return; 800374#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 800372#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 800371#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 800370#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 800369#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800106#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800120#$Ultimate##0 ~n := #in~n; 800164#L25 assume !(~n <= 0); 800135#L26 call #t~ret0 := fact(~n - 1);< 800161#$Ultimate##0 ~n := #in~n; 800277#L25 assume !(~n <= 0); 800167#L26 call #t~ret0 := fact(~n - 1);< 800174#$Ultimate##0 ~n := #in~n; 800285#L25 assume !(~n <= 0); 800222#L26 call #t~ret0 := fact(~n - 1);< 800229#$Ultimate##0 ~n := #in~n; 800467#L25 assume !(~n <= 0); 800342#L26 call #t~ret0 := fact(~n - 1);< 800701#$Ultimate##0 ~n := #in~n; 800698#L25 assume !(~n <= 0); 800438#L26 call #t~ret0 := fact(~n - 1);< 800439#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800151#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800122#factFINAL assume true; 800105#factEXIT >#68#return; 800024#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 800101#$Ultimate##0 ~n := #in~n; 800934#L25 assume !(~n <= 0); 800137#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800334#factFINAL assume true; 800233#factEXIT >#70#return; 800207#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 800219#$Ultimate##0 ~n := #in~n; 800705#L25 assume !(~n <= 0); 800339#L26 call #t~ret0 := fact(~n - 1);< 800699#$Ultimate##0 ~n := #in~n; 800424#L25 assume ~n <= 0;#res := 1; 800416#factFINAL assume true; 800346#factEXIT >#66#return; 800267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800231#factFINAL assume true; 800205#factEXIT >#72#return; 800175#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 800165#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 800162#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 800153#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 800123#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800108#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800120#$Ultimate##0 ~n := #in~n; 800164#L25 assume !(~n <= 0); 800135#L26 call #t~ret0 := fact(~n - 1);< 800161#$Ultimate##0 ~n := #in~n; 800277#L25 assume !(~n <= 0); 800167#L26 call #t~ret0 := fact(~n - 1);< 800174#$Ultimate##0 ~n := #in~n; 800285#L25 assume !(~n <= 0); 800222#L26 call #t~ret0 := fact(~n - 1);< 800229#$Ultimate##0 ~n := #in~n; 800467#L25 assume !(~n <= 0); 800342#L26 call #t~ret0 := fact(~n - 1);< 800701#$Ultimate##0 ~n := #in~n; 800698#L25 assume !(~n <= 0); 800438#L26 call #t~ret0 := fact(~n - 1);< 800439#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800151#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800122#factFINAL assume true; 800105#factEXIT >#68#return; 800044#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 800101#$Ultimate##0 ~n := #in~n; 800934#L25 assume !(~n <= 0); 800137#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800102#factFINAL assume true; 799998#factEXIT >#70#return; 799835#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 799997#$Ultimate##0 ~n := #in~n; 800706#L25 assume ~n <= 0;#res := 1; 799887#factFINAL assume true; 799792#factEXIT >#72#return; 799880#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 799996#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 799995#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 799994#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 799993#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 799946#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 799952#$Ultimate##0 ~n := #in~n; 799950#L25 assume !(~n <= 0); 799938#L26 call #t~ret0 := fact(~n - 1);< 799941#$Ultimate##0 ~n := #in~n; 799942#L25 assume !(~n <= 0); 799932#L26 call #t~ret0 := fact(~n - 1);< 799936#$Ultimate##0 ~n := #in~n; 799937#L25 assume !(~n <= 0); 799904#L26 call #t~ret0 := fact(~n - 1);< 799933#$Ultimate##0 ~n := #in~n; 799987#L25 assume !(~n <= 0); 799895#L26 call #t~ret0 := fact(~n - 1);< 799898#$Ultimate##0 ~n := #in~n; 799894#L25 assume !(~n <= 0); 799892#L26 call #t~ret0 := fact(~n - 1);< 799891#$Ultimate##0 ~n := #in~n; 799894#L25 assume !(~n <= 0); 799892#L26 call #t~ret0 := fact(~n - 1);< 799891#$Ultimate##0 ~n := #in~n; 799893#L25 assume ~n <= 0;#res := 1; 799989#factFINAL assume true; 799988#factEXIT >#66#return; 799986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799985#factFINAL assume true; 799983#factEXIT >#66#return; 799982#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799981#factFINAL assume true; 799980#factEXIT >#66#return; 799979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799978#factFINAL assume true; 799975#factEXIT >#66#return; 799974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799972#factFINAL assume true; 799968#factEXIT >#66#return; 799969#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799973#factFINAL assume true; 799965#factEXIT >#66#return; 799967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799961#factFINAL assume true; 799962#factEXIT >#74#return; 799909#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 799928#$Ultimate##0 ~n := #in~n; 799925#L25 assume !(~n <= 0); 799897#L26 call #t~ret0 := fact(~n - 1);< 799899#$Ultimate##0 ~n := #in~n; 799894#L25 assume !(~n <= 0); 799892#L26 call #t~ret0 := fact(~n - 1);< 799891#$Ultimate##0 ~n := #in~n; 799894#L25 assume !(~n <= 0); 799892#L26 call #t~ret0 := fact(~n - 1);< 799891#$Ultimate##0 ~n := #in~n; 799894#L25 assume !(~n <= 0); 799892#L26 call #t~ret0 := fact(~n - 1);< 799891#$Ultimate##0 ~n := #in~n; 799894#L25 assume !(~n <= 0); 799892#L26 call #t~ret0 := fact(~n - 1);< 799891#$Ultimate##0 ~n := #in~n; 799893#L25 assume ~n <= 0;#res := 1; 799989#factFINAL assume true; 799988#factEXIT >#66#return; 799986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799985#factFINAL assume true; 799983#factEXIT >#66#return; 799982#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799981#factFINAL assume true; 799980#factEXIT >#66#return; 799979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799978#factFINAL assume true; 799975#factEXIT >#66#return; 799974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799972#factFINAL assume true; 799968#factEXIT >#66#return; 799963#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799964#factFINAL assume true; 800671#factEXIT >#76#return; 799902#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 799927#$Ultimate##0 ~n := #in~n; 799924#L25 assume !(~n <= 0); 799763#L26 call #t~ret0 := fact(~n - 1);< 799890#$Ultimate##0 ~n := #in~n; 799762#L25 assume ~n <= 0;#res := 1; 799765#factFINAL assume true; 800673#factEXIT >#66#return; 800672#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800669#factFINAL assume true; 800665#factEXIT >#78#return; 800662#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 800660#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 800658#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 800656#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 800654#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 800652#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 800650#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 800649#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800612#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800614#$Ultimate##0 ~n := #in~n; 800616#L25 assume !(~n <= 0); 799770#L26 call #t~ret0 := fact(~n - 1);< 799774#$Ultimate##0 ~n := #in~n; 799766#L25 assume !(~n <= 0); 799768#L26 call #t~ret0 := fact(~n - 1);< 800323#$Ultimate##0 ~n := #in~n; 800321#L25 assume !(~n <= 0); 800133#L26 call #t~ret0 := fact(~n - 1);< 800173#$Ultimate##0 ~n := #in~n; 804400#L25 assume !(~n <= 0); 800129#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800703#factFINAL assume true; 800632#factEXIT >#66#return; 800638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800646#factFINAL assume true; 800643#factEXIT >#68#return; 800605#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 800608#$Ultimate##0 ~n := #in~n; 800610#L25 assume ~n <= 0;#res := 1; 800609#factFINAL assume true; 800595#factEXIT >#70#return; 800454#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 800462#$Ultimate##0 ~n := #in~n; 800640#L25 assume !(~n <= 0); 799769#L26 call #t~ret0 := fact(~n - 1);< 799774#$Ultimate##0 ~n := #in~n; 799766#L25 assume !(~n <= 0); 799768#L26 call #t~ret0 := fact(~n - 1);< 800323#$Ultimate##0 ~n := #in~n; 800321#L25 assume !(~n <= 0); 800133#L26 call #t~ret0 := fact(~n - 1);< 800173#$Ultimate##0 ~n := #in~n; 804400#L25 assume !(~n <= 0); 800129#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800359#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 804498#factFINAL assume true; 800450#factEXIT >#72#return; 800461#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 804481#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 804479#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 804478#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 804477#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800534#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800553#$Ultimate##0 ~n := #in~n; 800550#L25 assume !(~n <= 0); 800477#L26 call #t~ret0 := fact(~n - 1);< 800545#$Ultimate##0 ~n := #in~n; 800704#L25 assume !(~n <= 0); 800358#L26 call #t~ret0 := fact(~n - 1);< 800364#$Ultimate##0 ~n := #in~n; 800466#L25 assume !(~n <= 0); 800127#L26 call #t~ret0 := fact(~n - 1);< 800152#$Ultimate##0 ~n := #in~n; 800464#L25 assume !(~n <= 0); 800144#L26 call #t~ret0 := fact(~n - 1);< 800463#$Ultimate##0 ~n := #in~n; 800449#L25 assume !(~n <= 0); 800141#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800703#factFINAL assume true; 800632#factEXIT >#66#return; 800637#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801493#factFINAL assume true; 800932#factEXIT >#68#return; 799844#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 799957#$Ultimate##0 ~n := #in~n; 799888#L25 assume !(~n <= 0); 799889#L26 call #t~ret0 := fact(~n - 1);< 800349#$Ultimate##0 ~n := #in~n; 800424#L25 assume ~n <= 0;#res := 1; 800416#factFINAL assume true; 800346#factEXIT >#66#return; 800267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800231#factFINAL assume true; 800205#factEXIT >#70#return; 800069#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 800322#$Ultimate##0 ~n := #in~n; 800320#L25 assume !(~n <= 0); 800131#L26 call #t~ret0 := fact(~n - 1);< 800152#$Ultimate##0 ~n := #in~n; 800464#L25 assume !(~n <= 0); 800144#L26 call #t~ret0 := fact(~n - 1);< 800463#$Ultimate##0 ~n := #in~n; 800449#L25 assume !(~n <= 0); 800141#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800703#factFINAL assume true; 800632#factEXIT >#66#return; 800636#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801463#factFINAL assume true; 800560#factEXIT >#72#return; 800565#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 804473#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 804471#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 804470#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 804469#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800498#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800553#$Ultimate##0 ~n := #in~n; 800550#L25 assume !(~n <= 0); 800477#L26 call #t~ret0 := fact(~n - 1);< 800545#$Ultimate##0 ~n := #in~n; 800704#L25 assume !(~n <= 0); 800358#L26 call #t~ret0 := fact(~n - 1);< 800364#$Ultimate##0 ~n := #in~n; 800466#L25 assume !(~n <= 0); 800127#L26 call #t~ret0 := fact(~n - 1);< 800152#$Ultimate##0 ~n := #in~n; 800464#L25 assume !(~n <= 0); 800144#L26 call #t~ret0 := fact(~n - 1);< 800463#$Ultimate##0 ~n := #in~n; 800449#L25 assume !(~n <= 0); 800141#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800703#factFINAL assume true; 800632#factEXIT >#66#return; 800637#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801493#factFINAL assume true; 800932#factEXIT >#68#return; 799866#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 799886#$Ultimate##0 ~n := #in~n; 800426#L25 assume !(~n <= 0); 800126#L26 call #t~ret0 := fact(~n - 1);< 800202#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800343#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800433#factFINAL assume true; 800376#factEXIT >#70#return; 800057#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 800279#$Ultimate##0 ~n := #in~n; 800278#L25 assume !(~n <= 0); 800146#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800334#factFINAL assume true; 800233#factEXIT >#72#return; 800263#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 804464#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 804461#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 804456#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 804452#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800493#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800553#$Ultimate##0 ~n := #in~n; 800550#L25 assume !(~n <= 0); 800477#L26 call #t~ret0 := fact(~n - 1);< 800545#$Ultimate##0 ~n := #in~n; 800704#L25 assume !(~n <= 0); 800358#L26 call #t~ret0 := fact(~n - 1);< 800364#$Ultimate##0 ~n := #in~n; 800466#L25 assume !(~n <= 0); 800127#L26 call #t~ret0 := fact(~n - 1);< 800152#$Ultimate##0 ~n := #in~n; 800464#L25 assume !(~n <= 0); 800144#L26 call #t~ret0 := fact(~n - 1);< 800463#$Ultimate##0 ~n := #in~n; 800449#L25 assume !(~n <= 0); 800141#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800703#factFINAL assume true; 800632#factEXIT >#66#return; 800637#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801493#factFINAL assume true; 800932#factEXIT >#68#return; 799861#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 799886#$Ultimate##0 ~n := #in~n; 800426#L25 assume !(~n <= 0); 800126#L26 call #t~ret0 := fact(~n - 1);< 800202#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800435#factFINAL assume true; 800394#factEXIT >#70#return; 800043#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 800104#$Ultimate##0 ~n := #in~n; 800428#L25 assume !(~n <= 0); 800128#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800435#factFINAL assume true; 800394#factEXIT >#72#return; 800397#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 804466#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 804463#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 804460#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 804455#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800495#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800553#$Ultimate##0 ~n := #in~n; 800550#L25 assume !(~n <= 0); 800477#L26 call #t~ret0 := fact(~n - 1);< 800545#$Ultimate##0 ~n := #in~n; 800704#L25 assume !(~n <= 0); 800358#L26 call #t~ret0 := fact(~n - 1);< 800364#$Ultimate##0 ~n := #in~n; 800466#L25 assume !(~n <= 0); 800127#L26 call #t~ret0 := fact(~n - 1);< 800152#$Ultimate##0 ~n := #in~n; 800464#L25 assume !(~n <= 0); 800144#L26 call #t~ret0 := fact(~n - 1);< 800463#$Ultimate##0 ~n := #in~n; 800449#L25 assume !(~n <= 0); 800141#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800703#factFINAL assume true; 800632#factEXIT >#66#return; 800637#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801493#factFINAL assume true; 800932#factEXIT >#68#return; 799847#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 799886#$Ultimate##0 ~n := #in~n; 800426#L25 assume !(~n <= 0); 800126#L26 call #t~ret0 := fact(~n - 1);< 800202#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800334#factFINAL assume true; 800233#factEXIT >#70#return; 800058#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 800104#$Ultimate##0 ~n := #in~n; 800428#L25 assume !(~n <= 0); 800128#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800343#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800433#factFINAL assume true; 800376#factEXIT >#72#return; 800382#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 804426#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 804425#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 804424#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 804422#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800541#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800553#$Ultimate##0 ~n := #in~n; 800550#L25 assume !(~n <= 0); 800477#L26 call #t~ret0 := fact(~n - 1);< 800545#$Ultimate##0 ~n := #in~n; 800704#L25 assume !(~n <= 0); 800358#L26 call #t~ret0 := fact(~n - 1);< 800364#$Ultimate##0 ~n := #in~n; 800466#L25 assume !(~n <= 0); 800127#L26 call #t~ret0 := fact(~n - 1);< 800152#$Ultimate##0 ~n := #in~n; 800464#L25 assume !(~n <= 0); 800144#L26 call #t~ret0 := fact(~n - 1);< 800463#$Ultimate##0 ~n := #in~n; 800449#L25 assume !(~n <= 0); 800141#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800703#factFINAL assume true; 800632#factEXIT >#66#return; 800637#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801493#factFINAL assume true; 800932#factEXIT >#68#return; 799826#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 799886#$Ultimate##0 ~n := #in~n; 800426#L25 assume !(~n <= 0); 800126#L26 call #t~ret0 := fact(~n - 1);< 800202#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800102#factFINAL assume true; 799998#factEXIT >#70#return; 800001#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 800429#$Ultimate##0 ~n := #in~n; 800427#L25 assume !(~n <= 0); 800126#L26 call #t~ret0 := fact(~n - 1);< 800202#$Ultimate##0 ~n := #in~n; 800424#L25 assume ~n <= 0;#res := 1; 800416#factFINAL assume true; 800346#factEXIT >#66#return; 800267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800231#factFINAL assume true; 800205#factEXIT >#72#return; 800211#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 804410#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 804409#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 804408#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 804406#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800496#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800553#$Ultimate##0 ~n := #in~n; 800550#L25 assume !(~n <= 0); 800477#L26 call #t~ret0 := fact(~n - 1);< 800545#$Ultimate##0 ~n := #in~n; 800704#L25 assume !(~n <= 0); 800358#L26 call #t~ret0 := fact(~n - 1);< 800364#$Ultimate##0 ~n := #in~n; 800466#L25 assume !(~n <= 0); 800127#L26 call #t~ret0 := fact(~n - 1);< 800152#$Ultimate##0 ~n := #in~n; 800464#L25 assume !(~n <= 0); 800144#L26 call #t~ret0 := fact(~n - 1);< 800463#$Ultimate##0 ~n := #in~n; 800449#L25 assume !(~n <= 0); 800141#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800703#factFINAL assume true; 800632#factEXIT >#66#return; 800637#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801493#factFINAL assume true; 800932#factEXIT >#68#return; 799848#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 799886#$Ultimate##0 ~n := #in~n; 800426#L25 assume !(~n <= 0); 800126#L26 call #t~ret0 := fact(~n - 1);< 800202#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800703#factFINAL assume true; 800632#factEXIT >#66#return; 800636#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801463#factFINAL assume true; 800560#factEXIT >#70#return; 799793#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 799886#$Ultimate##0 ~n := #in~n; 800426#L25 assume ~n <= 0;#res := 1; 799887#factFINAL assume true; 799792#factEXIT >#72#return; 799740#L30-3 [2023-02-18 08:58:34,216 INFO L750 eck$LassoCheckResult]: Loop: 799740#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 799741#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 799754#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 804246#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 799751#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 799729#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 799693#$Ultimate##0 ~n := #in~n; 799773#L25 assume !(~n <= 0); 799727#L26 call #t~ret0 := fact(~n - 1);< 799733#$Ultimate##0 ~n := #in~n; 799955#L25 assume !(~n <= 0); 799949#L26 call #t~ret0 := fact(~n - 1);< 799953#$Ultimate##0 ~n := #in~n; 799951#L25 assume !(~n <= 0); 799940#L26 call #t~ret0 := fact(~n - 1);< 799943#$Ultimate##0 ~n := #in~n; 799939#L25 assume !(~n <= 0); 799935#L26 call #t~ret0 := fact(~n - 1);< 799977#$Ultimate##0 ~n := #in~n; 799934#L25 assume !(~n <= 0); 799930#L26 call #t~ret0 := fact(~n - 1);< 799931#$Ultimate##0 ~n := #in~n; 799929#L25 assume !(~n <= 0); 799896#L26 call #t~ret0 := fact(~n - 1);< 799898#$Ultimate##0 ~n := #in~n; 799894#L25 assume !(~n <= 0); 799892#L26 call #t~ret0 := fact(~n - 1);< 799891#$Ultimate##0 ~n := #in~n; 799893#L25 assume ~n <= 0;#res := 1; 799989#factFINAL assume true; 799988#factEXIT >#66#return; 799986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799985#factFINAL assume true; 799983#factEXIT >#66#return; 799982#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799981#factFINAL assume true; 799980#factEXIT >#66#return; 799979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799978#factFINAL assume true; 799975#factEXIT >#66#return; 799974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799972#factFINAL assume true; 799968#factEXIT >#66#return; 799969#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799973#factFINAL assume true; 799965#factEXIT >#66#return; 799966#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799990#factFINAL assume true; 799970#factEXIT >#66#return; 799971#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801169#factFINAL assume true; 799958#factEXIT >#74#return; 799905#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 799928#$Ultimate##0 ~n := #in~n; 799925#L25 assume !(~n <= 0); 799897#L26 call #t~ret0 := fact(~n - 1);< 799899#$Ultimate##0 ~n := #in~n; 799894#L25 assume !(~n <= 0); 799892#L26 call #t~ret0 := fact(~n - 1);< 799891#$Ultimate##0 ~n := #in~n; 799894#L25 assume !(~n <= 0); 799892#L26 call #t~ret0 := fact(~n - 1);< 799891#$Ultimate##0 ~n := #in~n; 799894#L25 assume !(~n <= 0); 799892#L26 call #t~ret0 := fact(~n - 1);< 799891#$Ultimate##0 ~n := #in~n; 799894#L25 assume !(~n <= 0); 799892#L26 call #t~ret0 := fact(~n - 1);< 799891#$Ultimate##0 ~n := #in~n; 799893#L25 assume ~n <= 0;#res := 1; 799989#factFINAL assume true; 799988#factEXIT >#66#return; 799986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799985#factFINAL assume true; 799983#factEXIT >#66#return; 799982#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799981#factFINAL assume true; 799980#factEXIT >#66#return; 799979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799978#factFINAL assume true; 799975#factEXIT >#66#return; 799974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799972#factFINAL assume true; 799968#factEXIT >#66#return; 799963#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 799964#factFINAL assume true; 800671#factEXIT >#76#return; 799901#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 799927#$Ultimate##0 ~n := #in~n; 799924#L25 assume !(~n <= 0); 799763#L26 call #t~ret0 := fact(~n - 1);< 799890#$Ultimate##0 ~n := #in~n; 799762#L25 assume ~n <= 0;#res := 1; 799765#factFINAL assume true; 800673#factEXIT >#66#return; 800672#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800669#factFINAL assume true; 800665#factEXIT >#78#return; 800667#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 804522#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 804519#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 804518#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 804517#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 800918#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 800919#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 800914#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800644#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800556#$Ultimate##0 ~n := #in~n; 800647#L25 assume !(~n <= 0); 800634#L26 call #t~ret0 := fact(~n - 1);< 800545#$Ultimate##0 ~n := #in~n; 800704#L25 assume !(~n <= 0); 800358#L26 call #t~ret0 := fact(~n - 1);< 800364#$Ultimate##0 ~n := #in~n; 800466#L25 assume !(~n <= 0); 800127#L26 call #t~ret0 := fact(~n - 1);< 800152#$Ultimate##0 ~n := #in~n; 800464#L25 assume !(~n <= 0); 800144#L26 call #t~ret0 := fact(~n - 1);< 800463#$Ultimate##0 ~n := #in~n; 800449#L25 assume !(~n <= 0); 800141#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800703#factFINAL assume true; 800632#factEXIT >#66#return; 800638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800646#factFINAL assume true; 800643#factEXIT >#68#return; 800603#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 800608#$Ultimate##0 ~n := #in~n; 800610#L25 assume ~n <= 0;#res := 1; 800609#factFINAL assume true; 800595#factEXIT >#70#return; 800607#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 800630#$Ultimate##0 ~n := #in~n; 800641#L25 assume !(~n <= 0); 800432#L26 call #t~ret0 := fact(~n - 1);< 800639#$Ultimate##0 ~n := #in~n; 804378#L25 assume !(~n <= 0); 799767#L26 call #t~ret0 := fact(~n - 1);< 799774#$Ultimate##0 ~n := #in~n; 799766#L25 assume !(~n <= 0); 799768#L26 call #t~ret0 := fact(~n - 1);< 800323#$Ultimate##0 ~n := #in~n; 800321#L25 assume !(~n <= 0); 800133#L26 call #t~ret0 := fact(~n - 1);< 800173#$Ultimate##0 ~n := #in~n; 804400#L25 assume !(~n <= 0); 800129#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800703#factFINAL assume true; 800632#factEXIT >#66#return; 800631#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800628#factFINAL assume true; 800629#factEXIT >#72#return; 804494#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 804495#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 804488#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 804489#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 804485#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800506#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800553#$Ultimate##0 ~n := #in~n; 800550#L25 assume !(~n <= 0); 800477#L26 call #t~ret0 := fact(~n - 1);< 800545#$Ultimate##0 ~n := #in~n; 800704#L25 assume !(~n <= 0); 800358#L26 call #t~ret0 := fact(~n - 1);< 800364#$Ultimate##0 ~n := #in~n; 800466#L25 assume !(~n <= 0); 800127#L26 call #t~ret0 := fact(~n - 1);< 800152#$Ultimate##0 ~n := #in~n; 800464#L25 assume !(~n <= 0); 800144#L26 call #t~ret0 := fact(~n - 1);< 800463#$Ultimate##0 ~n := #in~n; 800449#L25 assume !(~n <= 0); 800141#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800703#factFINAL assume true; 800632#factEXIT >#66#return; 800637#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801493#factFINAL assume true; 800932#factEXIT >#68#return; 799864#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 799957#$Ultimate##0 ~n := #in~n; 799888#L25 assume !(~n <= 0); 799889#L26 call #t~ret0 := fact(~n - 1);< 800349#$Ultimate##0 ~n := #in~n; 800424#L25 assume ~n <= 0;#res := 1; 800416#factFINAL assume true; 800346#factEXIT >#66#return; 800267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800231#factFINAL assume true; 800205#factEXIT >#70#return; 800053#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 800322#$Ultimate##0 ~n := #in~n; 800320#L25 assume !(~n <= 0); 800131#L26 call #t~ret0 := fact(~n - 1);< 800152#$Ultimate##0 ~n := #in~n; 800464#L25 assume !(~n <= 0); 800144#L26 call #t~ret0 := fact(~n - 1);< 800463#$Ultimate##0 ~n := #in~n; 800449#L25 assume !(~n <= 0); 800141#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800361#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800696#factFINAL assume true; 800697#factEXIT >#72#return; 800564#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 804516#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 804515#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 804514#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 804513#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800538#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800553#$Ultimate##0 ~n := #in~n; 800550#L25 assume !(~n <= 0); 800477#L26 call #t~ret0 := fact(~n - 1);< 800545#$Ultimate##0 ~n := #in~n; 800704#L25 assume !(~n <= 0); 800358#L26 call #t~ret0 := fact(~n - 1);< 800364#$Ultimate##0 ~n := #in~n; 800466#L25 assume !(~n <= 0); 800127#L26 call #t~ret0 := fact(~n - 1);< 800152#$Ultimate##0 ~n := #in~n; 800464#L25 assume !(~n <= 0); 800144#L26 call #t~ret0 := fact(~n - 1);< 800463#$Ultimate##0 ~n := #in~n; 800449#L25 assume !(~n <= 0); 800141#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800703#factFINAL assume true; 800632#factEXIT >#66#return; 800637#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801493#factFINAL assume true; 800932#factEXIT >#68#return; 799845#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 799886#$Ultimate##0 ~n := #in~n; 800426#L25 assume !(~n <= 0); 800126#L26 call #t~ret0 := fact(~n - 1);< 800202#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800343#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800433#factFINAL assume true; 800376#factEXIT >#70#return; 800039#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 800279#$Ultimate##0 ~n := #in~n; 800278#L25 assume !(~n <= 0); 800146#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800102#factFINAL assume true; 799998#factEXIT >#72#return; 800090#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 804507#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 804496#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 804493#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 804490#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800481#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800553#$Ultimate##0 ~n := #in~n; 800550#L25 assume !(~n <= 0); 800477#L26 call #t~ret0 := fact(~n - 1);< 800545#$Ultimate##0 ~n := #in~n; 800704#L25 assume !(~n <= 0); 800358#L26 call #t~ret0 := fact(~n - 1);< 800364#$Ultimate##0 ~n := #in~n; 800466#L25 assume !(~n <= 0); 800127#L26 call #t~ret0 := fact(~n - 1);< 800152#$Ultimate##0 ~n := #in~n; 800464#L25 assume !(~n <= 0); 800144#L26 call #t~ret0 := fact(~n - 1);< 800463#$Ultimate##0 ~n := #in~n; 800449#L25 assume !(~n <= 0); 800141#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800703#factFINAL assume true; 800632#factEXIT >#66#return; 800637#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801493#factFINAL assume true; 800932#factEXIT >#68#return; 799842#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 799886#$Ultimate##0 ~n := #in~n; 800426#L25 assume !(~n <= 0); 800126#L26 call #t~ret0 := fact(~n - 1);< 800202#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800435#factFINAL assume true; 800394#factEXIT >#70#return; 800041#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 800104#$Ultimate##0 ~n := #in~n; 800428#L25 assume !(~n <= 0); 800128#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800334#factFINAL assume true; 800233#factEXIT >#72#return; 800257#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 804451#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 804449#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 804447#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 804445#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800490#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800553#$Ultimate##0 ~n := #in~n; 800550#L25 assume !(~n <= 0); 800477#L26 call #t~ret0 := fact(~n - 1);< 800545#$Ultimate##0 ~n := #in~n; 800704#L25 assume !(~n <= 0); 800358#L26 call #t~ret0 := fact(~n - 1);< 800364#$Ultimate##0 ~n := #in~n; 800466#L25 assume !(~n <= 0); 800127#L26 call #t~ret0 := fact(~n - 1);< 800152#$Ultimate##0 ~n := #in~n; 800464#L25 assume !(~n <= 0); 800144#L26 call #t~ret0 := fact(~n - 1);< 800463#$Ultimate##0 ~n := #in~n; 800449#L25 assume !(~n <= 0); 800141#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800703#factFINAL assume true; 800632#factEXIT >#66#return; 800637#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801493#factFINAL assume true; 800932#factEXIT >#68#return; 799834#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 799886#$Ultimate##0 ~n := #in~n; 800426#L25 assume !(~n <= 0); 800126#L26 call #t~ret0 := fact(~n - 1);< 800202#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800334#factFINAL assume true; 800233#factEXIT >#70#return; 800014#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 800104#$Ultimate##0 ~n := #in~n; 800428#L25 assume !(~n <= 0); 800128#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800435#factFINAL assume true; 800394#factEXIT >#72#return; 800403#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 804504#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 804502#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 804500#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 804499#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800523#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800553#$Ultimate##0 ~n := #in~n; 800550#L25 assume !(~n <= 0); 800477#L26 call #t~ret0 := fact(~n - 1);< 800545#$Ultimate##0 ~n := #in~n; 800704#L25 assume !(~n <= 0); 800358#L26 call #t~ret0 := fact(~n - 1);< 800364#$Ultimate##0 ~n := #in~n; 800466#L25 assume !(~n <= 0); 800127#L26 call #t~ret0 := fact(~n - 1);< 800152#$Ultimate##0 ~n := #in~n; 800464#L25 assume !(~n <= 0); 800144#L26 call #t~ret0 := fact(~n - 1);< 800463#$Ultimate##0 ~n := #in~n; 800449#L25 assume !(~n <= 0); 800141#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800703#factFINAL assume true; 800632#factEXIT >#66#return; 800637#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801493#factFINAL assume true; 800932#factEXIT >#68#return; 799824#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 799886#$Ultimate##0 ~n := #in~n; 800426#L25 assume !(~n <= 0); 800126#L26 call #t~ret0 := fact(~n - 1);< 800202#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800102#factFINAL assume true; 799998#factEXIT >#70#return; 800021#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 800104#$Ultimate##0 ~n := #in~n; 800428#L25 assume !(~n <= 0); 800128#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800343#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800433#factFINAL assume true; 800376#factEXIT >#72#return; 800381#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 804423#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 804421#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 804420#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 804419#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800507#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800553#$Ultimate##0 ~n := #in~n; 800550#L25 assume !(~n <= 0); 800477#L26 call #t~ret0 := fact(~n - 1);< 800545#$Ultimate##0 ~n := #in~n; 800704#L25 assume !(~n <= 0); 800358#L26 call #t~ret0 := fact(~n - 1);< 800364#$Ultimate##0 ~n := #in~n; 800466#L25 assume !(~n <= 0); 800127#L26 call #t~ret0 := fact(~n - 1);< 800152#$Ultimate##0 ~n := #in~n; 800464#L25 assume !(~n <= 0); 800144#L26 call #t~ret0 := fact(~n - 1);< 800463#$Ultimate##0 ~n := #in~n; 800449#L25 assume !(~n <= 0); 800141#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800703#factFINAL assume true; 800632#factEXIT >#66#return; 800637#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801493#factFINAL assume true; 800932#factEXIT >#68#return; 799798#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 799886#$Ultimate##0 ~n := #in~n; 800426#L25 assume !(~n <= 0); 800126#L26 call #t~ret0 := fact(~n - 1);< 800202#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800361#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800696#factFINAL assume true; 800697#factEXIT >#70#return; 800001#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 800429#$Ultimate##0 ~n := #in~n; 800427#L25 assume !(~n <= 0); 800126#L26 call #t~ret0 := fact(~n - 1);< 800202#$Ultimate##0 ~n := #in~n; 800424#L25 assume ~n <= 0;#res := 1; 800416#factFINAL assume true; 800346#factEXIT >#66#return; 800267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800231#factFINAL assume true; 800205#factEXIT >#72#return; 800211#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 804410#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 804409#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 804408#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 804406#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 800496#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 800553#$Ultimate##0 ~n := #in~n; 800550#L25 assume !(~n <= 0); 800477#L26 call #t~ret0 := fact(~n - 1);< 800545#$Ultimate##0 ~n := #in~n; 800704#L25 assume !(~n <= 0); 800358#L26 call #t~ret0 := fact(~n - 1);< 800364#$Ultimate##0 ~n := #in~n; 800466#L25 assume !(~n <= 0); 800127#L26 call #t~ret0 := fact(~n - 1);< 800152#$Ultimate##0 ~n := #in~n; 800464#L25 assume !(~n <= 0); 800144#L26 call #t~ret0 := fact(~n - 1);< 800463#$Ultimate##0 ~n := #in~n; 800449#L25 assume !(~n <= 0); 800141#L26 call #t~ret0 := fact(~n - 1);< 800177#$Ultimate##0 ~n := #in~n; 800444#L25 assume !(~n <= 0); 800142#L26 call #t~ret0 := fact(~n - 1);< 800160#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800703#factFINAL assume true; 800632#factEXIT >#66#return; 800637#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 801493#factFINAL assume true; 800932#factEXIT >#68#return; 799848#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 799886#$Ultimate##0 ~n := #in~n; 800426#L25 assume !(~n <= 0); 800126#L26 call #t~ret0 := fact(~n - 1);< 800202#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800577#L25 assume !(~n <= 0); 800145#L26 call #t~ret0 := fact(~n - 1);< 800440#$Ultimate##0 ~n := #in~n; 800572#L25 assume ~n <= 0;#res := 1; 800571#factFINAL assume true; 800437#factEXIT >#66#return; 800436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800413#factFINAL assume true; 800336#factEXIT >#66#return; 800335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800264#factFINAL assume true; 800221#factEXIT >#66#return; 800220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800176#factFINAL assume true; 800166#factEXIT >#66#return; 800163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800154#factFINAL assume true; 800124#factEXIT >#66#return; 800148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800430#factFINAL assume true; 800355#factEXIT >#66#return; 800361#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 800696#factFINAL assume true; 800697#factEXIT >#70#return; 799793#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 799886#$Ultimate##0 ~n := #in~n; 800426#L25 assume ~n <= 0;#res := 1; 799887#factFINAL assume true; 799792#factEXIT >#72#return; 799740#L30-3 [2023-02-18 08:58:34,218 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:34,218 INFO L85 PathProgramCache]: Analyzing trace with hash 1267256385, now seen corresponding path program 75 times [2023-02-18 08:58:34,218 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:34,218 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1782968073] [2023-02-18 08:58:34,218 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:34,218 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:34,249 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:34,249 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [232962776] [2023-02-18 08:58:34,249 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:58:34,249 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:34,250 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:34,252 INFO L229 MonitoredProcess]: Starting monitored process 275 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:58:34,252 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (275)] Waiting until timeout for monitored process [2023-02-18 08:58:35,178 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 14 check-sat command(s) [2023-02-18 08:58:35,178 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:58:35,184 INFO L263 TraceCheckSpWp]: Trace formula consists of 1126 conjuncts, 33 conjunts are in the unsatisfiable core [2023-02-18 08:58:35,193 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:35,322 INFO L134 CoverageAnalysis]: Checked inductivity of 211202 backedges. 16579 proven. 529 refuted. 0 times theorem prover too weak. 194094 trivial. 0 not checked. [2023-02-18 08:58:35,322 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:35,729 INFO L134 CoverageAnalysis]: Checked inductivity of 211202 backedges. 15431 proven. 629 refuted. 0 times theorem prover too weak. 195142 trivial. 0 not checked. [2023-02-18 08:58:35,729 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:35,729 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1782968073] [2023-02-18 08:58:35,729 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:35,729 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [232962776] [2023-02-18 08:58:35,729 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [232962776] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:35,729 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:35,730 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [21, 32] total 35 [2023-02-18 08:58:35,730 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [661875092] [2023-02-18 08:58:35,730 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:35,731 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:58:35,731 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:35,731 INFO L85 PathProgramCache]: Analyzing trace with hash -1734180277, now seen corresponding path program 75 times [2023-02-18 08:58:35,731 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:35,731 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1613839932] [2023-02-18 08:58:35,731 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:35,731 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:35,751 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:35,751 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [702924098] [2023-02-18 08:58:35,751 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:58:35,752 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:35,752 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:35,756 INFO L229 MonitoredProcess]: Starting monitored process 276 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:58:35,757 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (276)] Waiting until timeout for monitored process [2023-02-18 08:58:36,500 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 14 check-sat command(s) [2023-02-18 08:58:36,501 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:58:36,504 INFO L263 TraceCheckSpWp]: Trace formula consists of 863 conjuncts, 33 conjunts are in the unsatisfiable core [2023-02-18 08:58:36,509 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:36,623 INFO L134 CoverageAnalysis]: Checked inductivity of 60809 backedges. 8470 proven. 544 refuted. 0 times theorem prover too weak. 51795 trivial. 0 not checked. [2023-02-18 08:58:36,624 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:36,998 INFO L134 CoverageAnalysis]: Checked inductivity of 60809 backedges. 7870 proven. 644 refuted. 0 times theorem prover too weak. 52295 trivial. 0 not checked. [2023-02-18 08:58:36,998 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:36,998 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1613839932] [2023-02-18 08:58:36,999 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:36,999 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [702924098] [2023-02-18 08:58:36,999 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [702924098] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:36,999 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:36,999 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [21, 32] total 35 [2023-02-18 08:58:36,999 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1882739586] [2023-02-18 08:58:36,999 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:36,999 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:58:36,999 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:58:37,000 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 35 interpolants. [2023-02-18 08:58:37,000 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=169, Invalid=1021, Unknown=0, NotChecked=0, Total=1190 [2023-02-18 08:58:37,000 INFO L87 Difference]: Start difference. First operand 4995 states and 7533 transitions. cyclomatic complexity: 2580 Second operand has 35 states, 32 states have (on average 2.59375) internal successors, (83), 35 states have internal predecessors, (83), 20 states have call successors, (30), 2 states have call predecessors, (30), 15 states have return successors, (39), 18 states have call predecessors, (39), 20 states have call successors, (39) [2023-02-18 08:58:38,293 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:58:38,293 INFO L93 Difference]: Finished difference Result 5428 states and 8453 transitions. [2023-02-18 08:58:38,293 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 5428 states and 8453 transitions. [2023-02-18 08:58:38,317 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 379 [2023-02-18 08:58:38,347 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 5428 states to 5177 states and 8051 transitions. [2023-02-18 08:58:38,348 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 287 [2023-02-18 08:58:38,348 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 287 [2023-02-18 08:58:38,348 INFO L73 IsDeterministic]: Start isDeterministic. Operand 5177 states and 8051 transitions. [2023-02-18 08:58:38,348 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:58:38,348 INFO L218 hiAutomatonCegarLoop]: Abstraction has 5177 states and 8051 transitions. [2023-02-18 08:58:38,350 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 5177 states and 8051 transitions. [2023-02-18 08:58:38,400 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 5177 to 4908. [2023-02-18 08:58:38,403 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4908 states, 3039 states have (on average 1.0487002303389272) internal successors, (3187), 3038 states have internal predecessors, (3187), 1530 states have call successors, (1552), 458 states have call predecessors, (1552), 339 states have return successors, (2636), 1411 states have call predecessors, (2636), 1530 states have call successors, (2636) [2023-02-18 08:58:38,417 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4908 states to 4908 states and 7375 transitions. [2023-02-18 08:58:38,417 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4908 states and 7375 transitions. [2023-02-18 08:58:38,418 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2023-02-18 08:58:38,418 INFO L428 stractBuchiCegarLoop]: Abstraction has 4908 states and 7375 transitions. [2023-02-18 08:58:38,418 INFO L335 stractBuchiCegarLoop]: ======== Iteration 88 ============ [2023-02-18 08:58:38,418 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4908 states and 7375 transitions. [2023-02-18 08:58:38,427 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 321 [2023-02-18 08:58:38,427 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:58:38,427 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:58:38,433 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [288, 288, 210, 210, 210, 210, 78, 26, 25, 19, 19, 19, 19, 19, 19, 19, 18, 18, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 4, 4, 1, 1, 1, 1] [2023-02-18 08:58:38,433 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [151, 151, 124, 124, 124, 124, 27, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:58:38,434 INFO L748 eck$LassoCheckResult]: Stem: 826637#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 826578#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; 826579#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 826602#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; 826591#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 826592#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 831061#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 826576#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 826577#$Ultimate##0 ~n := #in~n; 831044#L25 assume ~n <= 0;#res := 1; 831043#factFINAL assume true; 831041#factEXIT >#68#return; 826624#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 826625#$Ultimate##0 ~n := #in~n; 831177#L25 assume ~n <= 0;#res := 1; 831056#factFINAL assume true; 831055#factEXIT >#70#return; 826553#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 826554#$Ultimate##0 ~n := #in~n; 831335#L25 assume ~n <= 0;#res := 1; 831334#factFINAL assume true; 831333#factEXIT >#72#return; 831332#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 831330#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 831329#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 831328#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 826608#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 826609#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 831371#$Ultimate##0 ~n := #in~n; 831379#L25 assume !(~n <= 0); 831376#L26 call #t~ret0 := fact(~n - 1);< 831377#$Ultimate##0 ~n := #in~n; 831380#L25 assume ~n <= 0;#res := 1; 831378#factFINAL assume true; 831375#factEXIT >#66#return; 831374#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 831373#factFINAL assume true; 831370#factEXIT >#74#return; 831367#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 831368#$Ultimate##0 ~n := #in~n; 831372#L25 assume ~n <= 0;#res := 1; 831369#factFINAL assume true; 831366#factEXIT >#76#return; 826640#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 826641#$Ultimate##0 ~n := #in~n; 831272#L25 assume !(~n <= 0); 831269#L26 call #t~ret0 := fact(~n - 1);< 831270#$Ultimate##0 ~n := #in~n; 831286#L25 assume ~n <= 0;#res := 1; 831283#factFINAL assume true; 831268#factEXIT >#66#return; 831266#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 831265#factFINAL assume true; 831264#factEXIT >#78#return; 831263#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 831261#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 831259#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 831258#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 831257#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 831255#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 831256#$Ultimate##0 ~n := #in~n; 831302#L25 assume !(~n <= 0); 831275#L26 call #t~ret0 := fact(~n - 1);< 831279#$Ultimate##0 ~n := #in~n; 831287#L25 assume !(~n <= 0); 831274#L26 call #t~ret0 := fact(~n - 1);< 831285#$Ultimate##0 ~n := #in~n; 831292#L25 assume ~n <= 0;#res := 1; 831290#factFINAL assume true; 831284#factEXIT >#66#return; 831282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 831281#factFINAL assume true; 831273#factEXIT >#66#return; 831278#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 831364#factFINAL assume true; 831254#factEXIT >#74#return; 831252#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 831253#$Ultimate##0 ~n := #in~n; 831262#L25 assume ~n <= 0;#res := 1; 831260#factFINAL assume true; 831251#factEXIT >#76#return; 831249#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 831250#$Ultimate##0 ~n := #in~n; 831280#L25 assume !(~n <= 0); 831276#L26 call #t~ret0 := fact(~n - 1);< 831279#$Ultimate##0 ~n := #in~n; 831287#L25 assume !(~n <= 0); 831274#L26 call #t~ret0 := fact(~n - 1);< 831285#$Ultimate##0 ~n := #in~n; 831292#L25 assume ~n <= 0;#res := 1; 831290#factFINAL assume true; 831284#factEXIT >#66#return; 831282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 831281#factFINAL assume true; 831273#factEXIT >#66#return; 831271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 831267#factFINAL assume true; 831248#factEXIT >#78#return; 831246#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 831241#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 831239#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 831237#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 831235#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 831233#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 831234#$Ultimate##0 ~n := #in~n; 831247#L25 assume !(~n <= 0); 831244#L26 call #t~ret0 := fact(~n - 1);< 831245#$Ultimate##0 ~n := #in~n; 831299#L25 assume !(~n <= 0); 831243#L26 call #t~ret0 := fact(~n - 1);< 831298#$Ultimate##0 ~n := #in~n; 831299#L25 assume !(~n <= 0); 831243#L26 call #t~ret0 := fact(~n - 1);< 831298#$Ultimate##0 ~n := #in~n; 831310#L25 assume ~n <= 0;#res := 1; 831309#factFINAL assume true; 831305#factEXIT >#66#return; 831303#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 831300#factFINAL assume true; 831297#factEXIT >#66#return; 831295#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 831293#factFINAL assume true; 831242#factEXIT >#66#return; 831240#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 831238#factFINAL assume true; 831232#factEXIT >#74#return; 831230#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 831231#$Ultimate##0 ~n := #in~n; 831296#L25 assume ~n <= 0;#res := 1; 831294#factFINAL assume true; 831229#factEXIT >#76#return; 826613#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 831228#$Ultimate##0 ~n := #in~n; 831327#L25 assume !(~n <= 0); 826545#L26 call #t~ret0 := fact(~n - 1);< 831312#$Ultimate##0 ~n := #in~n; 831322#L25 assume !(~n <= 0); 826547#L26 call #t~ret0 := fact(~n - 1);< 831321#$Ultimate##0 ~n := #in~n; 831322#L25 assume !(~n <= 0); 826547#L26 call #t~ret0 := fact(~n - 1);< 831321#$Ultimate##0 ~n := #in~n; 831324#L25 assume ~n <= 0;#res := 1; 831323#factFINAL assume true; 831320#factEXIT >#66#return; 831319#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 831317#factFINAL assume true; 831315#factEXIT >#66#return; 831313#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 831311#factFINAL assume true; 831306#factEXIT >#66#return; 826550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826614#factFINAL assume true; 831226#factEXIT >#78#return; 831223#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 826581#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 831181#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 831179#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 826601#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 826593#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 826594#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 828727#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 828646#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 828650#$Ultimate##0 ~n := #in~n; 828699#L25 assume !(~n <= 0); 828669#L26 call #t~ret0 := fact(~n - 1);< 828697#$Ultimate##0 ~n := #in~n; 830320#L25 assume ~n <= 0;#res := 1; 829972#factFINAL assume true; 829960#factEXIT >#66#return; 829959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 829958#factFINAL assume true; 829956#factEXIT >#68#return; 829948#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 828640#$Ultimate##0 ~n := #in~n; 830853#L25 assume ~n <= 0;#res := 1; 830852#factFINAL assume true; 829947#factEXIT >#70#return; 829944#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 829945#$Ultimate##0 ~n := #in~n; 830855#L25 assume !(~n <= 0); 828687#L26 call #t~ret0 := fact(~n - 1);< 828734#$Ultimate##0 ~n := #in~n; 830320#L25 assume ~n <= 0;#res := 1; 829972#factFINAL assume true; 829960#factEXIT >#66#return; 829971#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 830854#factFINAL assume true; 829943#factEXIT >#72#return; 829941#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 829939#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 829936#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 829935#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 829934#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 829930#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 829933#$Ultimate##0 ~n := #in~n; 829977#L25 assume !(~n <= 0); 828680#L26 call #t~ret0 := fact(~n - 1);< 828734#$Ultimate##0 ~n := #in~n; 830320#L25 assume ~n <= 0;#res := 1; 829972#factFINAL assume true; 829960#factEXIT >#66#return; 829969#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 830857#factFINAL assume true; 829925#factEXIT >#68#return; 829913#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 829923#$Ultimate##0 ~n := #in~n; 830862#L25 assume !(~n <= 0); 829963#L26 call #t~ret0 := fact(~n - 1);< 829973#$Ultimate##0 ~n := #in~n; 830320#L25 assume ~n <= 0;#res := 1; 829972#factFINAL assume true; 829960#factEXIT >#66#return; 829966#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 830858#factFINAL assume true; 829903#factEXIT >#70#return; 829285#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 829294#$Ultimate##0 ~n := #in~n; 830074#L25 assume ~n <= 0;#res := 1; 830072#factFINAL assume true; 829280#factEXIT >#72#return; 829291#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 829901#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 829899#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 829898#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 829896#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 829268#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 829895#$Ultimate##0 ~n := #in~n; 829924#L25 assume !(~n <= 0); 828686#L26 call #t~ret0 := fact(~n - 1);< 829902#$Ultimate##0 ~n := #in~n; 830777#L25 assume !(~n <= 0); 828681#L26 call #t~ret0 := fact(~n - 1);< 830117#$Ultimate##0 ~n := #in~n; 831187#L25 assume ~n <= 0;#res := 1; 828969#factFINAL assume true; 828738#factEXIT >#66#return; 828736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828729#factFINAL assume true; 828658#factEXIT >#66#return; 828696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 829900#factFINAL assume true; 829897#factEXIT >#74#return; 828927#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 828974#$Ultimate##0 ~n := #in~n; 829975#L25 assume !(~n <= 0); 828678#L26 call #t~ret0 := fact(~n - 1);< 828697#$Ultimate##0 ~n := #in~n; 830320#L25 assume ~n <= 0;#res := 1; 829972#factFINAL assume true; 829960#factEXIT >#66#return; 829967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 831084#factFINAL assume true; 828914#factEXIT >#76#return; 828925#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 828945#$Ultimate##0 ~n := #in~n; 831074#L25 assume !(~n <= 0); 829964#L26 call #t~ret0 := fact(~n - 1);< 829973#$Ultimate##0 ~n := #in~n; 830320#L25 assume ~n <= 0;#res := 1; 829972#factFINAL assume true; 829960#factEXIT >#66#return; 829967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 831084#factFINAL assume true; 828914#factEXIT >#78#return; 828943#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 829894#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 829892#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 829888#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 829886#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 828782#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 830158#$Ultimate##0 ~n := #in~n; 830913#L25 assume !(~n <= 0); 828861#L26 call #t~ret0 := fact(~n - 1);< 830904#$Ultimate##0 ~n := #in~n; 830905#L25 assume !(~n <= 0); 828875#L26 call #t~ret0 := fact(~n - 1);< 831089#$Ultimate##0 ~n := #in~n; 830905#L25 assume !(~n <= 0); 828875#L26 call #t~ret0 := fact(~n - 1);< 831089#$Ultimate##0 ~n := #in~n; 831092#L25 assume ~n <= 0;#res := 1; 831093#factFINAL assume true; 831087#factEXIT >#66#return; 831085#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828900#factFINAL assume true; 828888#factEXIT >#66#return; 828887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828883#factFINAL assume true; 828860#factEXIT >#66#return; 828878#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 831094#factFINAL assume true; 828848#factEXIT >#74#return; 828705#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 828847#$Ultimate##0 ~n := #in~n; 830901#L25 assume !(~n <= 0); 828873#L26 call #t~ret0 := fact(~n - 1);< 830900#$Ultimate##0 ~n := #in~n; 830903#L25 assume ~n <= 0;#res := 1; 830899#factFINAL assume true; 829812#factEXIT >#66#return; 829815#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828846#factFINAL assume true; 828702#factEXIT >#76#return; 828721#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 828806#$Ultimate##0 ~n := #in~n; 830999#L25 assume !(~n <= 0); 828869#L26 call #t~ret0 := fact(~n - 1);< 830889#$Ultimate##0 ~n := #in~n; 831173#L25 assume !(~n <= 0); 828867#L26 call #t~ret0 := fact(~n - 1);< 828894#$Ultimate##0 ~n := #in~n; 831092#L25 assume ~n <= 0;#res := 1; 831093#factFINAL assume true; 831087#factEXIT >#66#return; 831085#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828900#factFINAL assume true; 828888#factEXIT >#66#return; 828891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 831137#factFINAL assume true; 828798#factEXIT >#78#return; 828805#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 830153#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 830152#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 830151#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 830150#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 830148#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 830147#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 830146#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 828648#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 828650#$Ultimate##0 ~n := #in~n; 828699#L25 assume !(~n <= 0); 828669#L26 call #t~ret0 := fact(~n - 1);< 828697#$Ultimate##0 ~n := #in~n; 831164#L25 assume !(~n <= 0); 828666#L26 call #t~ret0 := fact(~n - 1);< 828740#$Ultimate##0 ~n := #in~n; 831187#L25 assume ~n <= 0;#res := 1; 828969#factFINAL assume true; 828738#factEXIT >#66#return; 828736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828729#factFINAL assume true; 828658#factEXIT >#66#return; 828656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828653#factFINAL assume true; 828642#factEXIT >#68#return; 828632#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 828639#$Ultimate##0 ~n := #in~n; 828841#L25 assume ~n <= 0;#res := 1; 828839#factFINAL assume true; 828631#factEXIT >#70#return; 828622#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 828630#$Ultimate##0 ~n := #in~n; 828840#L25 assume !(~n <= 0); 827764#L26 call #t~ret0 := fact(~n - 1);< 827784#$Ultimate##0 ~n := #in~n; 828321#L25 assume !(~n <= 0); 828132#L26 call #t~ret0 := fact(~n - 1);< 828134#$Ultimate##0 ~n := #in~n; 828293#L25 assume ~n <= 0;#res := 1; 828292#factFINAL assume true; 828131#factEXIT >#66#return; 828130#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828112#factFINAL assume true; 827742#factEXIT >#66#return; 827781#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828838#factFINAL assume true; 828618#factEXIT >#72#return; 828627#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 830502#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 830500#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 830499#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 830498#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 828121#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 828519#$Ultimate##0 ~n := #in~n; 830492#L25 assume !(~n <= 0); 827760#L26 call #t~ret0 := fact(~n - 1);< 827784#$Ultimate##0 ~n := #in~n; 828321#L25 assume !(~n <= 0); 828132#L26 call #t~ret0 := fact(~n - 1);< 828134#$Ultimate##0 ~n := #in~n; 828293#L25 assume ~n <= 0;#res := 1; 828292#factFINAL assume true; 828131#factEXIT >#66#return; 828130#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828112#factFINAL assume true; 827742#factEXIT >#66#return; 827777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 831147#factFINAL assume true; 828512#factEXIT >#68#return; 828516#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 828610#$Ultimate##0 ~n := #in~n; 828831#L25 assume !(~n <= 0); 828084#L26 call #t~ret0 := fact(~n - 1);< 828090#$Ultimate##0 ~n := #in~n; 828291#L25 assume ~n <= 0;#res := 1; 828092#factFINAL assume true; 828079#factEXIT >#66#return; 828088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828612#factFINAL assume true; 828598#factEXIT >#70#return; 828601#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 828610#$Ultimate##0 ~n := #in~n; 828831#L25 assume !(~n <= 0); 828084#L26 call #t~ret0 := fact(~n - 1);< 828090#$Ultimate##0 ~n := #in~n; 828291#L25 assume ~n <= 0;#res := 1; 828092#factFINAL assume true; 828079#factEXIT >#66#return; 828088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828612#factFINAL assume true; 828598#factEXIT >#72#return; 828606#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 830497#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 830496#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 830495#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 830494#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 828125#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 828519#$Ultimate##0 ~n := #in~n; 830492#L25 assume !(~n <= 0); 827760#L26 call #t~ret0 := fact(~n - 1);< 827784#$Ultimate##0 ~n := #in~n; 828321#L25 assume !(~n <= 0); 828132#L26 call #t~ret0 := fact(~n - 1);< 828134#$Ultimate##0 ~n := #in~n; 828293#L25 assume ~n <= 0;#res := 1; 828292#factFINAL assume true; 828131#factEXIT >#66#return; 828130#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828112#factFINAL assume true; 827742#factEXIT >#66#return; 827777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 831147#factFINAL assume true; 828512#factEXIT >#68#return; 828509#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 828510#$Ultimate##0 ~n := #in~n; 831048#L25 assume !(~n <= 0); 827761#L26 call #t~ret0 := fact(~n - 1);< 827997#$Ultimate##0 ~n := #in~n; 828138#L25 assume !(~n <= 0); 827773#L26 call #t~ret0 := fact(~n - 1);< 828136#$Ultimate##0 ~n := #in~n; 828293#L25 assume ~n <= 0;#res := 1; 828292#factFINAL assume true; 828131#factEXIT >#66#return; 828130#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828112#factFINAL assume true; 827742#factEXIT >#66#return; 827778#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 831149#factFINAL assume true; 828503#factEXIT >#70#return; 828494#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 828501#$Ultimate##0 ~n := #in~n; 831151#L25 assume ~n <= 0;#res := 1; 831150#factFINAL assume true; 828489#factEXIT >#72#return; 828499#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 831202#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 831200#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 831039#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 829883#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 827893#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 828371#$Ultimate##0 ~n := #in~n; 828369#L25 assume !(~n <= 0); 827434#L26 call #t~ret0 := fact(~n - 1);< 827450#$Ultimate##0 ~n := #in~n; 828413#L25 assume !(~n <= 0); 827435#L26 call #t~ret0 := fact(~n - 1);< 827889#$Ultimate##0 ~n := #in~n; 828413#L25 assume !(~n <= 0); 827435#L26 call #t~ret0 := fact(~n - 1);< 827889#$Ultimate##0 ~n := #in~n; 827904#L25 assume ~n <= 0;#res := 1; 827915#factFINAL assume true; 827885#factEXIT >#66#return; 827884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827465#factFINAL assume true; 827456#factEXIT >#66#return; 827463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827890#factFINAL assume true; 827877#factEXIT >#66#return; 827881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828385#factFINAL assume true; 828383#factEXIT >#74#return; 827826#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 827827#$Ultimate##0 ~n := #in~n; 828381#L25 assume !(~n <= 0); 827460#L26 call #t~ret0 := fact(~n - 1);< 827897#$Ultimate##0 ~n := #in~n; 827902#L25 assume !(~n <= 0); 827457#L26 call #t~ret0 := fact(~n - 1);< 827888#$Ultimate##0 ~n := #in~n; 827904#L25 assume ~n <= 0;#res := 1; 827915#factFINAL assume true; 827885#factEXIT >#66#return; 827884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827465#factFINAL assume true; 827456#factEXIT >#66#return; 827464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827937#factFINAL assume true; 827936#factEXIT >#76#return; 827398#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 827410#$Ultimate##0 ~n := #in~n; 828070#L25 assume !(~n <= 0); 827871#L26 call #t~ret0 := fact(~n - 1);< 827874#$Ultimate##0 ~n := #in~n; 828364#L25 assume ~n <= 0;#res := 1; 828363#factFINAL assume true; 827870#factEXIT >#66#return; 827873#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827825#factFINAL assume true; 827397#factEXIT >#78#return; 827370#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 827368#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 827366#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 827363#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 827239#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 827240#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 827233#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 827234#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 827227#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 827230#$Ultimate##0 ~n := #in~n; 827229#L25 assume !(~n <= 0); 826857#L26 call #t~ret0 := fact(~n - 1);< 827226#$Ultimate##0 ~n := #in~n; 827225#L25 assume !(~n <= 0); 826883#L26 call #t~ret0 := fact(~n - 1);< 827224#$Ultimate##0 ~n := #in~n; 827223#L25 assume !(~n <= 0); 826948#L26 call #t~ret0 := fact(~n - 1);< 827222#$Ultimate##0 ~n := #in~n; 827205#L25 assume !(~n <= 0); 827033#L26 call #t~ret0 := fact(~n - 1);< 827068#$Ultimate##0 ~n := #in~n; 827298#L25 assume !(~n <= 0); 827067#L26 call #t~ret0 := fact(~n - 1);< 827070#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826868#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827332#factFINAL assume true; 827313#factEXIT >#68#return; 827273#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 827283#$Ultimate##0 ~n := #in~n; 827285#L25 assume ~n <= 0;#res := 1; 827284#factFINAL assume true; 827272#factEXIT >#70#return; 827215#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 827220#$Ultimate##0 ~n := #in~n; 827211#L25 assume !(~n <= 0); 826861#L26 call #t~ret0 := fact(~n - 1);< 826870#$Ultimate##0 ~n := #in~n; 827188#L25 assume !(~n <= 0); 826862#L26 call #t~ret0 := fact(~n - 1);< 827186#$Ultimate##0 ~n := #in~n; 827184#L25 assume !(~n <= 0); 826860#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826869#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827532#factFINAL assume true; 827270#factEXIT >#72#return; 827259#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 827267#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 827266#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 827265#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 827264#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 826823#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 826837#$Ultimate##0 ~n := #in~n; 826880#L25 assume !(~n <= 0); 826851#L26 call #t~ret0 := fact(~n - 1);< 826877#$Ultimate##0 ~n := #in~n; 827307#L25 assume !(~n <= 0); 826886#L26 call #t~ret0 := fact(~n - 1);< 826890#$Ultimate##0 ~n := #in~n; 827303#L25 assume !(~n <= 0); 826951#L26 call #t~ret0 := fact(~n - 1);< 827008#$Ultimate##0 ~n := #in~n; 827302#L25 assume !(~n <= 0); 827036#L26 call #t~ret0 := fact(~n - 1);< 827039#$Ultimate##0 ~n := #in~n; 827298#L25 assume !(~n <= 0); 827067#L26 call #t~ret0 := fact(~n - 1);< 827070#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826839#factFINAL assume true; 826822#factEXIT >#68#return; 826691#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 826718#$Ultimate##0 ~n := #in~n; 826716#L25 assume !(~n <= 0); 826717#L26 call #t~ret0 := fact(~n - 1);< 826985#$Ultimate##0 ~n := #in~n; 826999#L25 assume ~n <= 0;#res := 1; 826988#factFINAL assume true; 826981#factEXIT >#66#return; 826957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826956#factFINAL assume true; 826926#factEXIT >#70#return; 826920#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 827093#$Ultimate##0 ~n := #in~n; 827306#L25 assume !(~n <= 0); 826884#L26 call #t~ret0 := fact(~n - 1);< 826925#$Ultimate##0 ~n := #in~n; 827940#L25 assume !(~n <= 0); 826950#L26 call #t~ret0 := fact(~n - 1);< 826954#$Ultimate##0 ~n := #in~n; 827205#L25 assume !(~n <= 0); 827033#L26 call #t~ret0 := fact(~n - 1);< 827068#$Ultimate##0 ~n := #in~n; 827298#L25 assume !(~n <= 0); 827067#L26 call #t~ret0 := fact(~n - 1);< 827070#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826888#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826986#factFINAL assume true; 826958#factEXIT >#72#return; 826971#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 827092#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 827091#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 827090#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 827089#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 826831#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 826837#$Ultimate##0 ~n := #in~n; 826880#L25 assume !(~n <= 0); 826851#L26 call #t~ret0 := fact(~n - 1);< 826877#$Ultimate##0 ~n := #in~n; 827307#L25 assume !(~n <= 0); 826886#L26 call #t~ret0 := fact(~n - 1);< 826890#$Ultimate##0 ~n := #in~n; 827303#L25 assume !(~n <= 0); 826951#L26 call #t~ret0 := fact(~n - 1);< 827008#$Ultimate##0 ~n := #in~n; 827302#L25 assume !(~n <= 0); 827036#L26 call #t~ret0 := fact(~n - 1);< 827039#$Ultimate##0 ~n := #in~n; 827298#L25 assume !(~n <= 0); 827067#L26 call #t~ret0 := fact(~n - 1);< 827070#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826839#factFINAL assume true; 826822#factEXIT >#68#return; 826835#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 827041#$Ultimate##0 ~n := #in~n; 827201#L25 assume !(~n <= 0); 826852#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827037#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827040#factFINAL assume true; 827011#factEXIT >#70#return; 827007#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 827064#$Ultimate##0 ~n := #in~n; 827088#L25 assume !(~n <= 0); 826949#L26 call #t~ret0 := fact(~n - 1);< 827008#$Ultimate##0 ~n := #in~n; 827302#L25 assume !(~n <= 0); 827036#L26 call #t~ret0 := fact(~n - 1);< 827039#$Ultimate##0 ~n := #in~n; 827298#L25 assume !(~n <= 0); 827067#L26 call #t~ret0 := fact(~n - 1);< 827070#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827062#factFINAL assume true; 827042#factEXIT >#72#return; 827058#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 827085#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 827082#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 827079#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 827071#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 826827#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 826837#$Ultimate##0 ~n := #in~n; 826880#L25 assume !(~n <= 0); 826851#L26 call #t~ret0 := fact(~n - 1);< 826877#$Ultimate##0 ~n := #in~n; 827307#L25 assume !(~n <= 0); 826886#L26 call #t~ret0 := fact(~n - 1);< 826890#$Ultimate##0 ~n := #in~n; 827303#L25 assume !(~n <= 0); 826951#L26 call #t~ret0 := fact(~n - 1);< 827008#$Ultimate##0 ~n := #in~n; 827302#L25 assume !(~n <= 0); 827036#L26 call #t~ret0 := fact(~n - 1);< 827039#$Ultimate##0 ~n := #in~n; 827298#L25 assume !(~n <= 0); 827067#L26 call #t~ret0 := fact(~n - 1);< 827070#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826839#factFINAL assume true; 826822#factEXIT >#68#return; 826755#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 826816#$Ultimate##0 ~n := #in~n; 827546#L25 assume !(~n <= 0); 826853#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827062#factFINAL assume true; 827042#factEXIT >#70#return; 827017#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 827030#$Ultimate##0 ~n := #in~n; 827206#L25 assume !(~n <= 0); 827035#L26 call #t~ret0 := fact(~n - 1);< 827060#$Ultimate##0 ~n := #in~n; 827296#L25 assume !(~n <= 0); 827034#L26 call #t~ret0 := fact(~n - 1);< 827068#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827037#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827040#factFINAL assume true; 827011#factEXIT >#72#return; 827009#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 827004#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 827003#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 827001#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 826998#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 826829#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 826837#$Ultimate##0 ~n := #in~n; 826880#L25 assume !(~n <= 0); 826851#L26 call #t~ret0 := fact(~n - 1);< 826877#$Ultimate##0 ~n := #in~n; 827307#L25 assume !(~n <= 0); 826886#L26 call #t~ret0 := fact(~n - 1);< 826890#$Ultimate##0 ~n := #in~n; 827303#L25 assume !(~n <= 0); 826951#L26 call #t~ret0 := fact(~n - 1);< 827008#$Ultimate##0 ~n := #in~n; 827302#L25 assume !(~n <= 0); 827036#L26 call #t~ret0 := fact(~n - 1);< 827039#$Ultimate##0 ~n := #in~n; 827298#L25 assume !(~n <= 0); 827067#L26 call #t~ret0 := fact(~n - 1);< 827070#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826839#factFINAL assume true; 826822#factEXIT >#68#return; 826765#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 826816#$Ultimate##0 ~n := #in~n; 827546#L25 assume !(~n <= 0); 826853#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826888#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826986#factFINAL assume true; 826958#factEXIT >#70#return; 826928#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 826942#$Ultimate##0 ~n := #in~n; 827301#L25 assume !(~n <= 0); 826982#L26 call #t~ret0 := fact(~n - 1);< 827299#$Ultimate##0 ~n := #in~n; 826999#L25 assume ~n <= 0;#res := 1; 826988#factFINAL assume true; 826981#factEXIT >#66#return; 826957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826956#factFINAL assume true; 826926#factEXIT >#72#return; 826891#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 826881#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 826878#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 826871#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 826840#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 826832#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 826837#$Ultimate##0 ~n := #in~n; 826880#L25 assume !(~n <= 0); 826851#L26 call #t~ret0 := fact(~n - 1);< 826877#$Ultimate##0 ~n := #in~n; 827307#L25 assume !(~n <= 0); 826886#L26 call #t~ret0 := fact(~n - 1);< 826890#$Ultimate##0 ~n := #in~n; 827303#L25 assume !(~n <= 0); 826951#L26 call #t~ret0 := fact(~n - 1);< 827008#$Ultimate##0 ~n := #in~n; 827302#L25 assume !(~n <= 0); 827036#L26 call #t~ret0 := fact(~n - 1);< 827039#$Ultimate##0 ~n := #in~n; 827298#L25 assume !(~n <= 0); 827067#L26 call #t~ret0 := fact(~n - 1);< 827070#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826839#factFINAL assume true; 826822#factEXIT >#68#return; 826730#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 826816#$Ultimate##0 ~n := #in~n; 827546#L25 assume !(~n <= 0); 826853#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826838#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826819#factFINAL assume true; 826720#factEXIT >#70#return; 826695#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 826714#$Ultimate##0 ~n := #in~n; 827300#L25 assume ~n <= 0;#res := 1; 826715#factFINAL assume true; 826642#factEXIT >#72#return; 826710#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 828432#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 828430#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 828428#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 828427#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 827613#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 827614#$Ultimate##0 ~n := #in~n; 828065#L25 assume !(~n <= 0); 826566#L26 call #t~ret0 := fact(~n - 1);< 828064#$Ultimate##0 ~n := #in~n; 828063#L25 assume !(~n <= 0); 826565#L26 call #t~ret0 := fact(~n - 1);< 828062#$Ultimate##0 ~n := #in~n; 828061#L25 assume !(~n <= 0); 826563#L26 call #t~ret0 := fact(~n - 1);< 828060#$Ultimate##0 ~n := #in~n; 828058#L25 assume !(~n <= 0); 826564#L26 call #t~ret0 := fact(~n - 1);< 827965#$Ultimate##0 ~n := #in~n; 827815#L25 assume !(~n <= 0); 826560#L26 call #t~ret0 := fact(~n - 1);< 827813#$Ultimate##0 ~n := #in~n; 827815#L25 assume !(~n <= 0); 826560#L26 call #t~ret0 := fact(~n - 1);< 827813#$Ultimate##0 ~n := #in~n; 827814#L25 assume ~n <= 0;#res := 1; 828059#factFINAL assume true; 828004#factEXIT >#66#return; 828003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828002#factFINAL assume true; 827963#factEXIT >#66#return; 827962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827961#factFINAL assume true; 827956#factEXIT >#66#return; 827955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827954#factFINAL assume true; 827949#factEXIT >#66#return; 827948#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827946#factFINAL assume true; 827941#factEXIT >#66#return; 827942#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 830953#factFINAL assume true; 829576#factEXIT >#66#return; 829575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 829574#factFINAL assume true; 827603#factEXIT >#74#return; 827602#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 826634#$Ultimate##0 ~n := #in~n; 827945#L25 assume !(~n <= 0); 826561#L26 call #t~ret0 := fact(~n - 1);< 827943#$Ultimate##0 ~n := #in~n; 827815#L25 assume !(~n <= 0); 826560#L26 call #t~ret0 := fact(~n - 1);< 827813#$Ultimate##0 ~n := #in~n; 827815#L25 assume !(~n <= 0); 826560#L26 call #t~ret0 := fact(~n - 1);< 827813#$Ultimate##0 ~n := #in~n; 827815#L25 assume !(~n <= 0); 826560#L26 call #t~ret0 := fact(~n - 1);< 827813#$Ultimate##0 ~n := #in~n; 827815#L25 assume !(~n <= 0); 826560#L26 call #t~ret0 := fact(~n - 1);< 827813#$Ultimate##0 ~n := #in~n; 827814#L25 assume ~n <= 0;#res := 1; 828059#factFINAL assume true; 828004#factEXIT >#66#return; 828003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828002#factFINAL assume true; 827963#factEXIT >#66#return; 827962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827961#factFINAL assume true; 827956#factEXIT >#66#return; 827955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827954#factFINAL assume true; 827949#factEXIT >#66#return; 827948#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827946#factFINAL assume true; 827941#factEXIT >#66#return; 827939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827938#factFINAL assume true; 827598#factEXIT >#76#return; 826585#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 827678#$Ultimate##0 ~n := #in~n; 827677#L25 assume !(~n <= 0); 826584#L26 call #t~ret0 := fact(~n - 1);< 826588#$Ultimate##0 ~n := #in~n; 826616#L25 assume ~n <= 0;#res := 1; 826617#factFINAL assume true; 828068#factEXIT >#66#return; 828067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828066#factFINAL assume true; 827715#factEXIT >#78#return; 827714#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 828075#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 828074#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 828073#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 828072#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 828071#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 828069#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 827717#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 827291#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 827295#$Ultimate##0 ~n := #in~n; 827944#L25 assume !(~n <= 0); 826876#L26 call #t~ret0 := fact(~n - 1);< 827504#$Ultimate##0 ~n := #in~n; 827662#L25 assume !(~n <= 0); 826847#L26 call #t~ret0 := fact(~n - 1);< 826874#$Ultimate##0 ~n := #in~n; 827632#L25 assume !(~n <= 0); 826856#L26 call #t~ret0 := fact(~n - 1);< 826889#$Ultimate##0 ~n := #in~n; 827843#L25 assume !(~n <= 0); 826855#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827482#factFINAL assume true; 827164#factEXIT >#66#return; 827176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827294#factFINAL assume true; 827286#factEXIT >#68#return; 827274#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 827283#$Ultimate##0 ~n := #in~n; 827285#L25 assume ~n <= 0;#res := 1; 827284#factFINAL assume true; 827272#factEXIT >#70#return; 827245#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 827262#$Ultimate##0 ~n := #in~n; 827518#L25 assume !(~n <= 0); 826875#L26 call #t~ret0 := fact(~n - 1);< 827504#$Ultimate##0 ~n := #in~n; 827662#L25 assume !(~n <= 0); 826847#L26 call #t~ret0 := fact(~n - 1);< 826874#$Ultimate##0 ~n := #in~n; 827632#L25 assume !(~n <= 0); 826856#L26 call #t~ret0 := fact(~n - 1);< 826889#$Ultimate##0 ~n := #in~n; 827843#L25 assume !(~n <= 0); 826855#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827499#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827514#factFINAL assume true; 827509#factEXIT >#72#return; 827251#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 828830#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 828828#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 828826#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 828824#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 827143#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 827160#$Ultimate##0 ~n := #in~n; 827181#L25 assume !(~n <= 0); 827168#L26 call #t~ret0 := fact(~n - 1);< 827179#$Ultimate##0 ~n := #in~n; 827547#L25 assume !(~n <= 0); 827166#L26 call #t~ret0 := fact(~n - 1);< 827216#$Ultimate##0 ~n := #in~n; 827217#L25 assume !(~n <= 0); 826843#L26 call #t~ret0 := fact(~n - 1);< 826870#$Ultimate##0 ~n := #in~n; 827188#L25 assume !(~n <= 0); 826862#L26 call #t~ret0 := fact(~n - 1);< 827186#$Ultimate##0 ~n := #in~n; 827184#L25 assume !(~n <= 0); 826860#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827482#factFINAL assume true; 827164#factEXIT >#66#return; 827163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827161#factFINAL assume true; 827094#factEXIT >#68#return; 826644#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 826718#$Ultimate##0 ~n := #in~n; 826716#L25 assume !(~n <= 0); 826717#L26 call #t~ret0 := fact(~n - 1);< 826985#$Ultimate##0 ~n := #in~n; 826999#L25 assume ~n <= 0;#res := 1; 826988#factFINAL assume true; 826981#factEXIT >#66#return; 826957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826956#factFINAL assume true; 826926#factEXIT >#70#return; 826786#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 826821#$Ultimate##0 ~n := #in~n; 827081#L25 assume !(~n <= 0); 826842#L26 call #t~ret0 := fact(~n - 1);< 826870#$Ultimate##0 ~n := #in~n; 827188#L25 assume !(~n <= 0); 826862#L26 call #t~ret0 := fact(~n - 1);< 827186#$Ultimate##0 ~n := #in~n; 827184#L25 assume !(~n <= 0); 826860#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827482#factFINAL assume true; 827164#factEXIT >#66#return; 827174#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828005#factFINAL assume true; 827866#factEXIT >#72#return; 826815#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 827970#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 827968#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 827967#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 827966#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 827134#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 827160#$Ultimate##0 ~n := #in~n; 827181#L25 assume !(~n <= 0); 827168#L26 call #t~ret0 := fact(~n - 1);< 827179#$Ultimate##0 ~n := #in~n; 827547#L25 assume !(~n <= 0); 827166#L26 call #t~ret0 := fact(~n - 1);< 827216#$Ultimate##0 ~n := #in~n; 827217#L25 assume !(~n <= 0); 826843#L26 call #t~ret0 := fact(~n - 1);< 826870#$Ultimate##0 ~n := #in~n; 827188#L25 assume !(~n <= 0); 826862#L26 call #t~ret0 := fact(~n - 1);< 827186#$Ultimate##0 ~n := #in~n; 827184#L25 assume !(~n <= 0); 826860#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827482#factFINAL assume true; 827164#factEXIT >#66#return; 827163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827161#factFINAL assume true; 827094#factEXIT >#68#return; 826701#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 826719#$Ultimate##0 ~n := #in~n; 826995#L25 assume !(~n <= 0); 826859#L26 call #t~ret0 := fact(~n - 1);< 826917#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827037#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827040#factFINAL assume true; 827011#factEXIT >#70#return; 826760#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 826987#$Ultimate##0 ~n := #in~n; 827333#L25 assume !(~n <= 0); 826846#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826888#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826986#factFINAL assume true; 826958#factEXIT >#72#return; 826972#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 827577#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 827575#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 827573#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 827571#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 827123#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 827160#$Ultimate##0 ~n := #in~n; 827181#L25 assume !(~n <= 0); 827168#L26 call #t~ret0 := fact(~n - 1);< 827179#$Ultimate##0 ~n := #in~n; 827547#L25 assume !(~n <= 0); 827166#L26 call #t~ret0 := fact(~n - 1);< 827216#$Ultimate##0 ~n := #in~n; 827217#L25 assume !(~n <= 0); 826843#L26 call #t~ret0 := fact(~n - 1);< 826870#$Ultimate##0 ~n := #in~n; 827188#L25 assume !(~n <= 0); 826862#L26 call #t~ret0 := fact(~n - 1);< 827186#$Ultimate##0 ~n := #in~n; 827184#L25 assume !(~n <= 0); 826860#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827482#factFINAL assume true; 827164#factEXIT >#66#return; 827163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827161#factFINAL assume true; 827094#factEXIT >#68#return; 826674#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 826719#$Ultimate##0 ~n := #in~n; 826995#L25 assume !(~n <= 0); 826859#L26 call #t~ret0 := fact(~n - 1);< 826917#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827062#factFINAL assume true; 827042#factEXIT >#70#return; 826790#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 827063#$Ultimate##0 ~n := #in~n; 827073#L25 assume !(~n <= 0); 826848#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827062#factFINAL assume true; 827042#factEXIT >#72#return; 827056#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 828037#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 828036#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 828035#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 828034#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 827120#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 827160#$Ultimate##0 ~n := #in~n; 827181#L25 assume !(~n <= 0); 827168#L26 call #t~ret0 := fact(~n - 1);< 827179#$Ultimate##0 ~n := #in~n; 827547#L25 assume !(~n <= 0); 827166#L26 call #t~ret0 := fact(~n - 1);< 827216#$Ultimate##0 ~n := #in~n; 827217#L25 assume !(~n <= 0); 826843#L26 call #t~ret0 := fact(~n - 1);< 826870#$Ultimate##0 ~n := #in~n; 827188#L25 assume !(~n <= 0); 826862#L26 call #t~ret0 := fact(~n - 1);< 827186#$Ultimate##0 ~n := #in~n; 827184#L25 assume !(~n <= 0); 826860#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827482#factFINAL assume true; 827164#factEXIT >#66#return; 827163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827161#factFINAL assume true; 827094#factEXIT >#68#return; 826699#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 826719#$Ultimate##0 ~n := #in~n; 826995#L25 assume !(~n <= 0); 826859#L26 call #t~ret0 := fact(~n - 1);< 826917#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826888#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826986#factFINAL assume true; 826958#factEXIT >#70#return; 826764#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 827063#$Ultimate##0 ~n := #in~n; 827073#L25 assume !(~n <= 0); 826848#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827037#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827040#factFINAL assume true; 827011#factEXIT >#72#return; 827028#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 828033#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 828032#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 828031#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 828030#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 827140#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 827160#$Ultimate##0 ~n := #in~n; 827181#L25 assume !(~n <= 0); 827168#L26 call #t~ret0 := fact(~n - 1);< 827179#$Ultimate##0 ~n := #in~n; 827547#L25 assume !(~n <= 0); 827166#L26 call #t~ret0 := fact(~n - 1);< 827216#$Ultimate##0 ~n := #in~n; 827217#L25 assume !(~n <= 0); 826843#L26 call #t~ret0 := fact(~n - 1);< 826870#$Ultimate##0 ~n := #in~n; 827188#L25 assume !(~n <= 0); 826862#L26 call #t~ret0 := fact(~n - 1);< 827186#$Ultimate##0 ~n := #in~n; 827184#L25 assume !(~n <= 0); 826860#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827482#factFINAL assume true; 827164#factEXIT >#66#return; 827163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827161#factFINAL assume true; 827094#factEXIT >#68#return; 826666#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 826719#$Ultimate##0 ~n := #in~n; 826995#L25 assume !(~n <= 0); 826859#L26 call #t~ret0 := fact(~n - 1);< 826917#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826838#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826819#factFINAL assume true; 826720#factEXIT >#70#return; 826744#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 826997#$Ultimate##0 ~n := #in~n; 826996#L25 assume !(~n <= 0); 826859#L26 call #t~ret0 := fact(~n - 1);< 826917#$Ultimate##0 ~n := #in~n; 826999#L25 assume ~n <= 0;#res := 1; 826988#factFINAL assume true; 826981#factEXIT >#66#return; 826957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826956#factFINAL assume true; 826926#factEXIT >#72#return; 826935#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 828029#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 828028#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 828027#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 828026#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 827127#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 827160#$Ultimate##0 ~n := #in~n; 827181#L25 assume !(~n <= 0); 827168#L26 call #t~ret0 := fact(~n - 1);< 827179#$Ultimate##0 ~n := #in~n; 827547#L25 assume !(~n <= 0); 827166#L26 call #t~ret0 := fact(~n - 1);< 827216#$Ultimate##0 ~n := #in~n; 827217#L25 assume !(~n <= 0); 826843#L26 call #t~ret0 := fact(~n - 1);< 826870#$Ultimate##0 ~n := #in~n; 827188#L25 assume !(~n <= 0); 826862#L26 call #t~ret0 := fact(~n - 1);< 827186#$Ultimate##0 ~n := #in~n; 827184#L25 assume !(~n <= 0); 826860#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827482#factFINAL assume true; 827164#factEXIT >#66#return; 827163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827161#factFINAL assume true; 827094#factEXIT >#68#return; 826675#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 826719#$Ultimate##0 ~n := #in~n; 826995#L25 assume !(~n <= 0); 826859#L26 call #t~ret0 := fact(~n - 1);< 826917#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827482#factFINAL assume true; 827164#factEXIT >#66#return; 827174#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828005#factFINAL assume true; 827866#factEXIT >#70#return; 826665#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 826719#$Ultimate##0 ~n := #in~n; 826995#L25 assume ~n <= 0;#res := 1; 826715#factFINAL assume true; 826642#factEXIT >#72#return; 826711#L30-3 [2023-02-18 08:58:38,435 INFO L750 eck$LassoCheckResult]: Loop: 826711#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 829767#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 829765#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 829763#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 829701#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 826626#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 826535#$Ultimate##0 ~n := #in~n; 826631#L25 assume !(~n <= 0); 826562#L26 call #t~ret0 := fact(~n - 1);< 827630#$Ultimate##0 ~n := #in~n; 829028#L25 assume !(~n <= 0); 826559#L26 call #t~ret0 := fact(~n - 1);< 829027#$Ultimate##0 ~n := #in~n; 829025#L25 assume !(~n <= 0); 826557#L26 call #t~ret0 := fact(~n - 1);< 827947#$Ultimate##0 ~n := #in~n; 829076#L25 assume !(~n <= 0); 826558#L26 call #t~ret0 := fact(~n - 1);< 827951#$Ultimate##0 ~n := #in~n; 829117#L25 assume !(~n <= 0); 826556#L26 call #t~ret0 := fact(~n - 1);< 827957#$Ultimate##0 ~n := #in~n; 829078#L25 assume !(~n <= 0); 826569#L26 call #t~ret0 := fact(~n - 1);< 827965#$Ultimate##0 ~n := #in~n; 827815#L25 assume !(~n <= 0); 826560#L26 call #t~ret0 := fact(~n - 1);< 827813#$Ultimate##0 ~n := #in~n; 827814#L25 assume ~n <= 0;#res := 1; 828059#factFINAL assume true; 828004#factEXIT >#66#return; 828003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828002#factFINAL assume true; 827963#factEXIT >#66#return; 827962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827961#factFINAL assume true; 827956#factEXIT >#66#return; 827955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827954#factFINAL assume true; 827949#factEXIT >#66#return; 827948#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827946#factFINAL assume true; 827941#factEXIT >#66#return; 827942#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 830953#factFINAL assume true; 829576#factEXIT >#66#return; 827629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826555#factFINAL assume true; 826570#factEXIT >#66#return; 827622#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827618#factFINAL assume true; 827619#factEXIT >#74#return; 827599#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 826634#$Ultimate##0 ~n := #in~n; 827945#L25 assume !(~n <= 0); 826561#L26 call #t~ret0 := fact(~n - 1);< 827943#$Ultimate##0 ~n := #in~n; 827815#L25 assume !(~n <= 0); 826560#L26 call #t~ret0 := fact(~n - 1);< 827813#$Ultimate##0 ~n := #in~n; 827815#L25 assume !(~n <= 0); 826560#L26 call #t~ret0 := fact(~n - 1);< 827813#$Ultimate##0 ~n := #in~n; 827815#L25 assume !(~n <= 0); 826560#L26 call #t~ret0 := fact(~n - 1);< 827813#$Ultimate##0 ~n := #in~n; 827815#L25 assume !(~n <= 0); 826560#L26 call #t~ret0 := fact(~n - 1);< 827813#$Ultimate##0 ~n := #in~n; 827814#L25 assume ~n <= 0;#res := 1; 828059#factFINAL assume true; 828004#factEXIT >#66#return; 828003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828002#factFINAL assume true; 827963#factEXIT >#66#return; 827962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827961#factFINAL assume true; 827956#factEXIT >#66#return; 827955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827954#factFINAL assume true; 827949#factEXIT >#66#return; 827948#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827946#factFINAL assume true; 827941#factEXIT >#66#return; 827939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827938#factFINAL assume true; 827598#factEXIT >#76#return; 826586#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 827678#$Ultimate##0 ~n := #in~n; 827677#L25 assume !(~n <= 0); 826584#L26 call #t~ret0 := fact(~n - 1);< 826588#$Ultimate##0 ~n := #in~n; 826616#L25 assume ~n <= 0;#res := 1; 826617#factFINAL assume true; 828068#factEXIT >#66#return; 828067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828066#factFINAL assume true; 827715#factEXIT >#78#return; 827699#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 827694#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 827688#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 827686#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 827684#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 827682#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 827680#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 827679#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 827288#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 827293#$Ultimate##0 ~n := #in~n; 827507#L25 assume !(~n <= 0); 827172#L26 call #t~ret0 := fact(~n - 1);< 827179#$Ultimate##0 ~n := #in~n; 827547#L25 assume !(~n <= 0); 827166#L26 call #t~ret0 := fact(~n - 1);< 827216#$Ultimate##0 ~n := #in~n; 827217#L25 assume !(~n <= 0); 826843#L26 call #t~ret0 := fact(~n - 1);< 826870#$Ultimate##0 ~n := #in~n; 827188#L25 assume !(~n <= 0); 826862#L26 call #t~ret0 := fact(~n - 1);< 827186#$Ultimate##0 ~n := #in~n; 827184#L25 assume !(~n <= 0); 826860#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827482#factFINAL assume true; 827164#factEXIT >#66#return; 827176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827294#factFINAL assume true; 827286#factEXIT >#68#return; 827276#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 827283#$Ultimate##0 ~n := #in~n; 827285#L25 assume ~n <= 0;#res := 1; 827284#factFINAL assume true; 827272#factEXIT >#70#return; 827247#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 827260#$Ultimate##0 ~n := #in~n; 827533#L25 assume !(~n <= 0); 827173#L26 call #t~ret0 := fact(~n - 1);< 827263#$Ultimate##0 ~n := #in~n; 827520#L25 assume !(~n <= 0); 826873#L26 call #t~ret0 := fact(~n - 1);< 827504#$Ultimate##0 ~n := #in~n; 827662#L25 assume !(~n <= 0); 826847#L26 call #t~ret0 := fact(~n - 1);< 826874#$Ultimate##0 ~n := #in~n; 827632#L25 assume !(~n <= 0); 826856#L26 call #t~ret0 := fact(~n - 1);< 826889#$Ultimate##0 ~n := #in~n; 827843#L25 assume !(~n <= 0); 826855#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827482#factFINAL assume true; 827164#factEXIT >#66#return; 827178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827261#factFINAL assume true; 827244#factEXIT >#72#return; 827241#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 827238#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 827235#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 827232#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 827162#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 827122#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 827160#$Ultimate##0 ~n := #in~n; 827181#L25 assume !(~n <= 0); 827168#L26 call #t~ret0 := fact(~n - 1);< 827179#$Ultimate##0 ~n := #in~n; 827547#L25 assume !(~n <= 0); 827166#L26 call #t~ret0 := fact(~n - 1);< 827216#$Ultimate##0 ~n := #in~n; 827217#L25 assume !(~n <= 0); 826843#L26 call #t~ret0 := fact(~n - 1);< 826870#$Ultimate##0 ~n := #in~n; 827188#L25 assume !(~n <= 0); 826862#L26 call #t~ret0 := fact(~n - 1);< 827186#$Ultimate##0 ~n := #in~n; 827184#L25 assume !(~n <= 0); 826860#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827482#factFINAL assume true; 827164#factEXIT >#66#return; 827163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827161#factFINAL assume true; 827094#factEXIT >#68#return; 826653#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 826718#$Ultimate##0 ~n := #in~n; 826716#L25 assume !(~n <= 0); 826717#L26 call #t~ret0 := fact(~n - 1);< 826985#$Ultimate##0 ~n := #in~n; 826999#L25 assume ~n <= 0;#res := 1; 826988#factFINAL assume true; 826981#factEXIT >#66#return; 826957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826956#factFINAL assume true; 826926#factEXIT >#70#return; 826783#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 826821#$Ultimate##0 ~n := #in~n; 827081#L25 assume !(~n <= 0); 826842#L26 call #t~ret0 := fact(~n - 1);< 826870#$Ultimate##0 ~n := #in~n; 827188#L25 assume !(~n <= 0); 826862#L26 call #t~ret0 := fact(~n - 1);< 827186#$Ultimate##0 ~n := #in~n; 827184#L25 assume !(~n <= 0); 826860#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827204#factFINAL assume true; 826809#factEXIT >#72#return; 826814#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 830106#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 830105#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 830104#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 830103#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 827136#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 827160#$Ultimate##0 ~n := #in~n; 827181#L25 assume !(~n <= 0); 827168#L26 call #t~ret0 := fact(~n - 1);< 827179#$Ultimate##0 ~n := #in~n; 827547#L25 assume !(~n <= 0); 827166#L26 call #t~ret0 := fact(~n - 1);< 827216#$Ultimate##0 ~n := #in~n; 827217#L25 assume !(~n <= 0); 826843#L26 call #t~ret0 := fact(~n - 1);< 826870#$Ultimate##0 ~n := #in~n; 827188#L25 assume !(~n <= 0); 826862#L26 call #t~ret0 := fact(~n - 1);< 827186#$Ultimate##0 ~n := #in~n; 827184#L25 assume !(~n <= 0); 826860#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827482#factFINAL assume true; 827164#factEXIT >#66#return; 827163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827161#factFINAL assume true; 827094#factEXIT >#68#return; 826696#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 826719#$Ultimate##0 ~n := #in~n; 826995#L25 assume !(~n <= 0); 826859#L26 call #t~ret0 := fact(~n - 1);< 826917#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827037#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827040#factFINAL assume true; 827011#factEXIT >#70#return; 826759#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 826987#$Ultimate##0 ~n := #in~n; 827333#L25 assume !(~n <= 0); 826846#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826888#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826986#factFINAL assume true; 826958#factEXIT >#72#return; 826798#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 829651#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 829649#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 829647#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 829645#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 827112#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 827160#$Ultimate##0 ~n := #in~n; 827181#L25 assume !(~n <= 0); 827168#L26 call #t~ret0 := fact(~n - 1);< 827179#$Ultimate##0 ~n := #in~n; 827547#L25 assume !(~n <= 0); 827166#L26 call #t~ret0 := fact(~n - 1);< 827216#$Ultimate##0 ~n := #in~n; 827217#L25 assume !(~n <= 0); 826843#L26 call #t~ret0 := fact(~n - 1);< 826870#$Ultimate##0 ~n := #in~n; 827188#L25 assume !(~n <= 0); 826862#L26 call #t~ret0 := fact(~n - 1);< 827186#$Ultimate##0 ~n := #in~n; 827184#L25 assume !(~n <= 0); 826860#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827482#factFINAL assume true; 827164#factEXIT >#66#return; 827163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827161#factFINAL assume true; 827094#factEXIT >#68#return; 826672#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 826719#$Ultimate##0 ~n := #in~n; 826995#L25 assume !(~n <= 0); 826859#L26 call #t~ret0 := fact(~n - 1);< 826917#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827062#factFINAL assume true; 827042#factEXIT >#70#return; 826789#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 827063#$Ultimate##0 ~n := #in~n; 827073#L25 assume !(~n <= 0); 826848#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826888#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826986#factFINAL assume true; 826958#factEXIT >#72#return; 826977#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 829985#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 829983#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 829981#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 829980#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 827104#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 827160#$Ultimate##0 ~n := #in~n; 827181#L25 assume !(~n <= 0); 827168#L26 call #t~ret0 := fact(~n - 1);< 827179#$Ultimate##0 ~n := #in~n; 827547#L25 assume !(~n <= 0); 827166#L26 call #t~ret0 := fact(~n - 1);< 827216#$Ultimate##0 ~n := #in~n; 827217#L25 assume !(~n <= 0); 826843#L26 call #t~ret0 := fact(~n - 1);< 826870#$Ultimate##0 ~n := #in~n; 827188#L25 assume !(~n <= 0); 826862#L26 call #t~ret0 := fact(~n - 1);< 827186#$Ultimate##0 ~n := #in~n; 827184#L25 assume !(~n <= 0); 826860#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827482#factFINAL assume true; 827164#factEXIT >#66#return; 827163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827161#factFINAL assume true; 827094#factEXIT >#68#return; 826702#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 826719#$Ultimate##0 ~n := #in~n; 826995#L25 assume !(~n <= 0); 826859#L26 call #t~ret0 := fact(~n - 1);< 826917#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826888#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826986#factFINAL assume true; 826958#factEXIT >#70#return; 826766#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 827063#$Ultimate##0 ~n := #in~n; 827073#L25 assume !(~n <= 0); 826848#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827062#factFINAL assume true; 827042#factEXIT >#72#return; 827055#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 829995#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 829993#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 829991#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 829988#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 827146#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 827160#$Ultimate##0 ~n := #in~n; 827181#L25 assume !(~n <= 0); 827168#L26 call #t~ret0 := fact(~n - 1);< 827179#$Ultimate##0 ~n := #in~n; 827547#L25 assume !(~n <= 0); 827166#L26 call #t~ret0 := fact(~n - 1);< 827216#$Ultimate##0 ~n := #in~n; 827217#L25 assume !(~n <= 0); 826843#L26 call #t~ret0 := fact(~n - 1);< 826870#$Ultimate##0 ~n := #in~n; 827188#L25 assume !(~n <= 0); 826862#L26 call #t~ret0 := fact(~n - 1);< 827186#$Ultimate##0 ~n := #in~n; 827184#L25 assume !(~n <= 0); 826860#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827482#factFINAL assume true; 827164#factEXIT >#66#return; 827163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827161#factFINAL assume true; 827094#factEXIT >#68#return; 826669#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 826719#$Ultimate##0 ~n := #in~n; 826995#L25 assume !(~n <= 0); 826859#L26 call #t~ret0 := fact(~n - 1);< 826917#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826838#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826819#factFINAL assume true; 826720#factEXIT >#70#return; 826747#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 827063#$Ultimate##0 ~n := #in~n; 827073#L25 assume !(~n <= 0); 826848#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827037#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827040#factFINAL assume true; 827011#factEXIT >#72#return; 827022#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 829987#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 829986#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 829984#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 829982#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 827103#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 827160#$Ultimate##0 ~n := #in~n; 827181#L25 assume !(~n <= 0); 827168#L26 call #t~ret0 := fact(~n - 1);< 827179#$Ultimate##0 ~n := #in~n; 827547#L25 assume !(~n <= 0); 827166#L26 call #t~ret0 := fact(~n - 1);< 827216#$Ultimate##0 ~n := #in~n; 827217#L25 assume !(~n <= 0); 826843#L26 call #t~ret0 := fact(~n - 1);< 826870#$Ultimate##0 ~n := #in~n; 827188#L25 assume !(~n <= 0); 826862#L26 call #t~ret0 := fact(~n - 1);< 827186#$Ultimate##0 ~n := #in~n; 827184#L25 assume !(~n <= 0); 826860#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827482#factFINAL assume true; 827164#factEXIT >#66#return; 827163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827161#factFINAL assume true; 827094#factEXIT >#68#return; 826687#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 826719#$Ultimate##0 ~n := #in~n; 826995#L25 assume !(~n <= 0); 826859#L26 call #t~ret0 := fact(~n - 1);< 826917#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827204#factFINAL assume true; 826809#factEXIT >#70#return; 826737#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 826997#$Ultimate##0 ~n := #in~n; 826996#L25 assume !(~n <= 0); 826859#L26 call #t~ret0 := fact(~n - 1);< 826917#$Ultimate##0 ~n := #in~n; 826999#L25 assume ~n <= 0;#res := 1; 826988#factFINAL assume true; 826981#factEXIT >#66#return; 826957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826956#factFINAL assume true; 826926#factEXIT >#72#return; 826931#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 831341#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 831339#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 831046#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 828140#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 827145#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 827160#$Ultimate##0 ~n := #in~n; 827181#L25 assume !(~n <= 0); 827168#L26 call #t~ret0 := fact(~n - 1);< 827179#$Ultimate##0 ~n := #in~n; 827547#L25 assume !(~n <= 0); 827166#L26 call #t~ret0 := fact(~n - 1);< 827216#$Ultimate##0 ~n := #in~n; 827217#L25 assume !(~n <= 0); 826843#L26 call #t~ret0 := fact(~n - 1);< 826870#$Ultimate##0 ~n := #in~n; 827188#L25 assume !(~n <= 0); 826862#L26 call #t~ret0 := fact(~n - 1);< 827186#$Ultimate##0 ~n := #in~n; 827184#L25 assume !(~n <= 0); 826860#L26 call #t~ret0 := fact(~n - 1);< 826918#$Ultimate##0 ~n := #in~n; 827180#L25 assume !(~n <= 0); 826858#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827482#factFINAL assume true; 827164#factEXIT >#66#return; 827163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827161#factFINAL assume true; 827094#factEXIT >#68#return; 826817#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 826818#$Ultimate##0 ~n := #in~n; 827521#L25 assume !(~n <= 0); 827165#L26 call #t~ret0 := fact(~n - 1);< 827263#$Ultimate##0 ~n := #in~n; 827520#L25 assume !(~n <= 0); 826873#L26 call #t~ret0 := fact(~n - 1);< 827504#$Ultimate##0 ~n := #in~n; 827662#L25 assume !(~n <= 0); 826847#L26 call #t~ret0 := fact(~n - 1);< 826874#$Ultimate##0 ~n := #in~n; 827632#L25 assume !(~n <= 0); 826856#L26 call #t~ret0 := fact(~n - 1);< 826889#$Ultimate##0 ~n := #in~n; 827843#L25 assume !(~n <= 0); 826855#L26 call #t~ret0 := fact(~n - 1);< 826953#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827077#L25 assume !(~n <= 0); 826844#L26 call #t~ret0 := fact(~n - 1);< 827069#$Ultimate##0 ~n := #in~n; 827075#L25 assume ~n <= 0;#res := 1; 827074#factFINAL assume true; 827066#factEXIT >#66#return; 827065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827059#factFINAL assume true; 827031#factEXIT >#66#return; 827010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827005#factFINAL assume true; 826945#factEXIT >#66#return; 826943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826892#factFINAL assume true; 826882#factEXIT >#66#return; 826879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 826872#factFINAL assume true; 826841#factEXIT >#66#return; 826867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827503#factFINAL assume true; 827497#factEXIT >#66#return; 827175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 827482#factFINAL assume true; 827164#factEXIT >#66#return; 827174#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 828005#factFINAL assume true; 827866#factEXIT >#70#return; 826665#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 826719#$Ultimate##0 ~n := #in~n; 826995#L25 assume ~n <= 0;#res := 1; 826715#factFINAL assume true; 826642#factEXIT >#72#return; 826711#L30-3 [2023-02-18 08:58:38,435 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:38,435 INFO L85 PathProgramCache]: Analyzing trace with hash 1267256385, now seen corresponding path program 76 times [2023-02-18 08:58:38,435 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:38,436 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [633719851] [2023-02-18 08:58:38,436 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:38,436 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:38,562 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:38,562 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [777711423] [2023-02-18 08:58:38,562 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:58:38,562 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:38,563 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:38,568 INFO L229 MonitoredProcess]: Starting monitored process 277 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:58:38,569 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (277)] Waiting until timeout for monitored process [2023-02-18 08:58:39,583 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:58:39,584 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:58:39,598 INFO L263 TraceCheckSpWp]: Trace formula consists of 3880 conjuncts, 15 conjunts are in the unsatisfiable core [2023-02-18 08:58:39,617 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:39,672 INFO L134 CoverageAnalysis]: Checked inductivity of 211202 backedges. 87586 proven. 338 refuted. 0 times theorem prover too weak. 123278 trivial. 0 not checked. [2023-02-18 08:58:39,673 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:39,785 INFO L134 CoverageAnalysis]: Checked inductivity of 211202 backedges. 2320 proven. 4059 refuted. 0 times theorem prover too weak. 204823 trivial. 0 not checked. [2023-02-18 08:58:39,785 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:39,785 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [633719851] [2023-02-18 08:58:39,785 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:39,785 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [777711423] [2023-02-18 08:58:39,785 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [777711423] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:39,786 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:39,786 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 16 [2023-02-18 08:58:39,786 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [291081934] [2023-02-18 08:58:39,786 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:39,787 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:58:39,787 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:39,787 INFO L85 PathProgramCache]: Analyzing trace with hash -2017507525, now seen corresponding path program 76 times [2023-02-18 08:58:39,787 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:39,787 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2002144392] [2023-02-18 08:58:39,787 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:39,787 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:39,808 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:39,808 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1879293223] [2023-02-18 08:58:39,809 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:58:39,809 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:39,809 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:39,813 INFO L229 MonitoredProcess]: Starting monitored process 278 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:58:39,813 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (278)] Waiting until timeout for monitored process [2023-02-18 08:58:40,622 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:58:40,622 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:58:40,629 INFO L263 TraceCheckSpWp]: Trace formula consists of 1955 conjuncts, 33 conjunts are in the unsatisfiable core [2023-02-18 08:58:40,635 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:40,727 INFO L134 CoverageAnalysis]: Checked inductivity of 60809 backedges. 11688 proven. 309 refuted. 0 times theorem prover too weak. 48812 trivial. 0 not checked. [2023-02-18 08:58:40,727 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:41,077 INFO L134 CoverageAnalysis]: Checked inductivity of 60809 backedges. 162 proven. 9346 refuted. 0 times theorem prover too weak. 51301 trivial. 0 not checked. [2023-02-18 08:58:41,077 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:41,077 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2002144392] [2023-02-18 08:58:41,077 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:41,077 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1879293223] [2023-02-18 08:58:41,077 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1879293223] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:41,077 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:41,078 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 30] total 33 [2023-02-18 08:58:41,078 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [298247040] [2023-02-18 08:58:41,078 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:41,078 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:58:41,078 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:58:41,078 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 33 interpolants. [2023-02-18 08:58:41,079 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=163, Invalid=893, Unknown=0, NotChecked=0, Total=1056 [2023-02-18 08:58:41,079 INFO L87 Difference]: Start difference. First operand 4908 states and 7375 transitions. cyclomatic complexity: 2510 Second operand has 33 states, 30 states have (on average 2.7333333333333334) internal successors, (82), 30 states have internal predecessors, (82), 19 states have call successors, (26), 2 states have call predecessors, (26), 15 states have return successors, (36), 17 states have call predecessors, (36), 19 states have call successors, (36) [2023-02-18 08:58:42,246 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:58:42,247 INFO L93 Difference]: Finished difference Result 5766 states and 9232 transitions. [2023-02-18 08:58:42,247 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 5766 states and 9232 transitions. [2023-02-18 08:58:42,274 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 330 [2023-02-18 08:58:42,306 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 5766 states to 5653 states and 9070 transitions. [2023-02-18 08:58:42,306 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 453 [2023-02-18 08:58:42,307 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 453 [2023-02-18 08:58:42,307 INFO L73 IsDeterministic]: Start isDeterministic. Operand 5653 states and 9070 transitions. [2023-02-18 08:58:42,307 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:58:42,307 INFO L218 hiAutomatonCegarLoop]: Abstraction has 5653 states and 9070 transitions. [2023-02-18 08:58:42,309 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 5653 states and 9070 transitions. [2023-02-18 08:58:42,363 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 5653 to 4727. [2023-02-18 08:58:42,366 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4727 states, 2915 states have (on average 1.0497427101200687) internal successors, (3060), 2912 states have internal predecessors, (3060), 1473 states have call successors, (1495), 461 states have call predecessors, (1495), 339 states have return successors, (2589), 1353 states have call predecessors, (2589), 1473 states have call successors, (2589) [2023-02-18 08:58:42,380 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4727 states to 4727 states and 7144 transitions. [2023-02-18 08:58:42,380 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4727 states and 7144 transitions. [2023-02-18 08:58:42,380 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2023-02-18 08:58:42,381 INFO L428 stractBuchiCegarLoop]: Abstraction has 4727 states and 7144 transitions. [2023-02-18 08:58:42,381 INFO L335 stractBuchiCegarLoop]: ======== Iteration 89 ============ [2023-02-18 08:58:42,381 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4727 states and 7144 transitions. [2023-02-18 08:58:42,390 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 322 [2023-02-18 08:58:42,390 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:58:42,390 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:58:42,396 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [309, 309, 228, 228, 228, 228, 81, 27, 26, 20, 20, 20, 20, 20, 20, 20, 19, 19, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 4, 4, 1, 1, 1, 1] [2023-02-18 08:58:42,396 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [154, 154, 127, 127, 127, 127, 27, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:58:42,396 INFO L748 eck$LassoCheckResult]: Stem: 853672#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 853620#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; 853621#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 853644#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; 853673#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 856331#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 856329#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 856290#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 856291#$Ultimate##0 ~n := #in~n; 856294#L25 assume ~n <= 0;#res := 1; 856292#factFINAL assume true; 856289#factEXIT >#68#return; 856287#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 856288#$Ultimate##0 ~n := #in~n; 856295#L25 assume ~n <= 0;#res := 1; 856293#factFINAL assume true; 856286#factEXIT >#70#return; 856284#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 856285#$Ultimate##0 ~n := #in~n; 856304#L25 assume ~n <= 0;#res := 1; 856296#factFINAL assume true; 856283#factEXIT >#72#return; 856282#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 856281#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 856280#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 856279#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 856277#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 856274#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 856275#$Ultimate##0 ~n := #in~n; 856303#L25 assume !(~n <= 0); 856301#L26 call #t~ret0 := fact(~n - 1);< 856302#$Ultimate##0 ~n := #in~n; 856310#L25 assume ~n <= 0;#res := 1; 856308#factFINAL assume true; 856300#factEXIT >#66#return; 856298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856297#factFINAL assume true; 856273#factEXIT >#74#return; 856261#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 856262#$Ultimate##0 ~n := #in~n; 856270#L25 assume ~n <= 0;#res := 1; 856269#factFINAL assume true; 856260#factEXIT >#76#return; 856256#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 856257#$Ultimate##0 ~n := #in~n; 856327#L25 assume !(~n <= 0); 856267#L26 call #t~ret0 := fact(~n - 1);< 856268#$Ultimate##0 ~n := #in~n; 856272#L25 assume ~n <= 0;#res := 1; 856271#factFINAL assume true; 856266#factEXIT >#66#return; 856265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856259#factFINAL assume true; 856255#factEXIT >#78#return; 856252#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 856249#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 856247#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 856244#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 856231#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 855940#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 855941#$Ultimate##0 ~n := #in~n; 855952#L25 assume !(~n <= 0); 855946#L26 call #t~ret0 := fact(~n - 1);< 855950#$Ultimate##0 ~n := #in~n; 855961#L25 assume !(~n <= 0); 855948#L26 call #t~ret0 := fact(~n - 1);< 855960#$Ultimate##0 ~n := #in~n; 855965#L25 assume ~n <= 0;#res := 1; 855964#factFINAL assume true; 855958#factEXIT >#66#return; 855959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 855966#factFINAL assume true; 855956#factEXIT >#66#return; 855943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 855942#factFINAL assume true; 855939#factEXIT >#74#return; 855936#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 855937#$Ultimate##0 ~n := #in~n; 855951#L25 assume ~n <= 0;#res := 1; 855944#factFINAL assume true; 855935#factEXIT >#76#return; 855932#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 855933#$Ultimate##0 ~n := #in~n; 855954#L25 assume !(~n <= 0); 855947#L26 call #t~ret0 := fact(~n - 1);< 855950#$Ultimate##0 ~n := #in~n; 855961#L25 assume !(~n <= 0); 855948#L26 call #t~ret0 := fact(~n - 1);< 855960#$Ultimate##0 ~n := #in~n; 855965#L25 assume ~n <= 0;#res := 1; 855964#factFINAL assume true; 855958#factEXIT >#66#return; 855959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 855966#factFINAL assume true; 855956#factEXIT >#66#return; 855957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 855967#factFINAL assume true; 855931#factEXIT >#78#return; 855930#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 855928#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 855924#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 855921#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 855917#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 855907#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 855908#$Ultimate##0 ~n := #in~n; 855980#L25 assume !(~n <= 0); 855978#L26 call #t~ret0 := fact(~n - 1);< 855979#$Ultimate##0 ~n := #in~n; 855986#L25 assume !(~n <= 0); 855977#L26 call #t~ret0 := fact(~n - 1);< 855984#$Ultimate##0 ~n := #in~n; 855986#L25 assume !(~n <= 0); 855977#L26 call #t~ret0 := fact(~n - 1);< 855984#$Ultimate##0 ~n := #in~n; 856052#L25 assume ~n <= 0;#res := 1; 856051#factFINAL assume true; 856049#factEXIT >#66#return; 856047#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856046#factFINAL assume true; 855983#factEXIT >#66#return; 855982#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 855981#factFINAL assume true; 855976#factEXIT >#66#return; 855974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 855972#factFINAL assume true; 855906#factEXIT >#74#return; 855903#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 855904#$Ultimate##0 ~n := #in~n; 856050#L25 assume ~n <= 0;#res := 1; 856048#factFINAL assume true; 855902#factEXIT >#76#return; 853653#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 855900#$Ultimate##0 ~n := #in~n; 856053#L25 assume !(~n <= 0); 855914#L26 call #t~ret0 := fact(~n - 1);< 855970#$Ultimate##0 ~n := #in~n; 855990#L25 assume !(~n <= 0); 855911#L26 call #t~ret0 := fact(~n - 1);< 855989#$Ultimate##0 ~n := #in~n; 855990#L25 assume !(~n <= 0); 855911#L26 call #t~ret0 := fact(~n - 1);< 855989#$Ultimate##0 ~n := #in~n; 855992#L25 assume ~n <= 0;#res := 1; 855991#factFINAL assume true; 855988#factEXIT >#66#return; 855987#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 855985#factFINAL assume true; 855973#factEXIT >#66#return; 855971#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 855969#factFINAL assume true; 855909#factEXIT >#66#return; 853652#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853654#factFINAL assume true; 855899#factEXIT >#78#return; 855838#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 855836#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 855834#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 855832#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 855830#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 855829#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 855828#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 855221#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 855159#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 855163#$Ultimate##0 ~n := #in~n; 855213#L25 assume !(~n <= 0); 855174#L26 call #t~ret0 := fact(~n - 1);< 855208#$Ultimate##0 ~n := #in~n; 855234#L25 assume ~n <= 0;#res := 1; 856700#factFINAL assume true; 856664#factEXIT >#66#return; 856672#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856758#factFINAL assume true; 856757#factEXIT >#68#return; 856754#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 855150#$Ultimate##0 ~n := #in~n; 856760#L25 assume ~n <= 0;#res := 1; 856755#factFINAL assume true; 856753#factEXIT >#70#return; 856701#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 856772#$Ultimate##0 ~n := #in~n; 856785#L25 assume !(~n <= 0); 855191#L26 call #t~ret0 := fact(~n - 1);< 856631#$Ultimate##0 ~n := #in~n; 855234#L25 assume ~n <= 0;#res := 1; 856700#factFINAL assume true; 856664#factEXIT >#66#return; 856673#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856780#factFINAL assume true; 856771#factEXIT >#72#return; 856769#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 856767#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 856764#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 856699#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 856692#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 856686#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 856691#$Ultimate##0 ~n := #in~n; 856768#L25 assume !(~n <= 0); 855187#L26 call #t~ret0 := fact(~n - 1);< 856631#$Ultimate##0 ~n := #in~n; 855234#L25 assume ~n <= 0;#res := 1; 856700#factFINAL assume true; 856664#factEXIT >#66#return; 856671#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856733#factFINAL assume true; 856683#factEXIT >#68#return; 856617#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 856628#$Ultimate##0 ~n := #in~n; 856676#L25 assume !(~n <= 0); 856668#L26 call #t~ret0 := fact(~n - 1);< 856674#$Ultimate##0 ~n := #in~n; 855234#L25 assume ~n <= 0;#res := 1; 856700#factFINAL assume true; 856664#factEXIT >#66#return; 856663#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856629#factFINAL assume true; 856608#factEXIT >#70#return; 856597#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 856606#$Ultimate##0 ~n := #in~n; 856660#L25 assume ~n <= 0;#res := 1; 856659#factFINAL assume true; 856592#factEXIT >#72#return; 856591#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 856589#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 856588#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 856586#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 856585#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 856583#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 856584#$Ultimate##0 ~n := #in~n; 856607#L25 assume !(~n <= 0); 855197#L26 call #t~ret0 := fact(~n - 1);< 856590#$Ultimate##0 ~n := #in~n; 855274#L25 assume !(~n <= 0); 855199#L26 call #t~ret0 := fact(~n - 1);< 855218#$Ultimate##0 ~n := #in~n; 855222#L25 assume ~n <= 0;#res := 1; 855219#factFINAL assume true; 855215#factEXIT >#66#return; 855214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 855209#factFINAL assume true; 855169#factEXIT >#66#return; 855207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856587#factFINAL assume true; 856582#factEXIT >#74#return; 856479#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 856560#$Ultimate##0 ~n := #in~n; 856765#L25 assume !(~n <= 0); 855171#L26 call #t~ret0 := fact(~n - 1);< 855208#$Ultimate##0 ~n := #in~n; 855234#L25 assume ~n <= 0;#res := 1; 856700#factFINAL assume true; 856664#factEXIT >#66#return; 856645#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856581#factFINAL assume true; 856554#factEXIT >#76#return; 856516#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 856573#$Ultimate##0 ~n := #in~n; 856766#L25 assume !(~n <= 0); 856666#L26 call #t~ret0 := fact(~n - 1);< 856674#$Ultimate##0 ~n := #in~n; 855234#L25 assume ~n <= 0;#res := 1; 856700#factFINAL assume true; 856664#factEXIT >#66#return; 856645#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856581#factFINAL assume true; 856554#factEXIT >#78#return; 856559#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 856572#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 856570#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 856541#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 856462#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 856160#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 856414#$Ultimate##0 ~n := #in~n; 857221#L25 assume !(~n <= 0); 856428#L26 call #t~ret0 := fact(~n - 1);< 857217#$Ultimate##0 ~n := #in~n; 856577#L25 assume !(~n <= 0); 856425#L26 call #t~ret0 := fact(~n - 1);< 856544#$Ultimate##0 ~n := #in~n; 856577#L25 assume !(~n <= 0); 856425#L26 call #t~ret0 := fact(~n - 1);< 856544#$Ultimate##0 ~n := #in~n; 856472#L25 assume ~n <= 0;#res := 1; 856471#factFINAL assume true; 856450#factEXIT >#66#return; 856448#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856443#factFINAL assume true; 856415#factEXIT >#66#return; 856434#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856565#factFINAL assume true; 856537#factEXIT >#66#return; 856535#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856461#factFINAL assume true; 856438#factEXIT >#74#return; 856393#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 856409#$Ultimate##0 ~n := #in~n; 856523#L25 assume !(~n <= 0); 856424#L26 call #t~ret0 := fact(~n - 1);< 856459#$Ultimate##0 ~n := #in~n; 856476#L25 assume ~n <= 0;#res := 1; 856521#factFINAL assume true; 856455#factEXIT >#66#return; 856437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856411#factFINAL assume true; 856407#factEXIT >#76#return; 856391#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 856404#$Ultimate##0 ~n := #in~n; 857444#L25 assume !(~n <= 0); 856419#L26 call #t~ret0 := fact(~n - 1);< 856470#$Ultimate##0 ~n := #in~n; 858029#L25 assume !(~n <= 0); 856416#L26 call #t~ret0 := fact(~n - 1);< 856452#$Ultimate##0 ~n := #in~n; 856472#L25 assume ~n <= 0;#res := 1; 856471#factFINAL assume true; 856450#factEXIT >#66#return; 856448#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856443#factFINAL assume true; 856415#factEXIT >#66#return; 856410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856405#factFINAL assume true; 856384#factEXIT >#78#return; 856383#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 856382#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 856380#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 856377#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 856373#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 856366#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 856364#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 856362#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 855156#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 855163#$Ultimate##0 ~n := #in~n; 855213#L25 assume !(~n <= 0); 855174#L26 call #t~ret0 := fact(~n - 1);< 855208#$Ultimate##0 ~n := #in~n; 855226#L25 assume !(~n <= 0); 855173#L26 call #t~ret0 := fact(~n - 1);< 855223#$Ultimate##0 ~n := #in~n; 855222#L25 assume ~n <= 0;#res := 1; 855219#factFINAL assume true; 855215#factEXIT >#66#return; 855214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 855209#factFINAL assume true; 855169#factEXIT >#66#return; 855168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 855165#factFINAL assume true; 855155#factEXIT >#68#return; 855148#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 855152#$Ultimate##0 ~n := #in~n; 855164#L25 assume ~n <= 0;#res := 1; 855154#factFINAL assume true; 855143#factEXIT >#70#return; 855130#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 855141#$Ultimate##0 ~n := #in~n; 855167#L25 assume !(~n <= 0); 854886#L26 call #t~ret0 := fact(~n - 1);< 854901#$Ultimate##0 ~n := #in~n; 854977#L25 assume !(~n <= 0); 854960#L26 call #t~ret0 := fact(~n - 1);< 854961#$Ultimate##0 ~n := #in~n; 854968#L25 assume ~n <= 0;#res := 1; 854967#factFINAL assume true; 854959#factEXIT >#66#return; 854952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854898#factFINAL assume true; 854877#factEXIT >#66#return; 854894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 855142#factFINAL assume true; 855129#factEXIT >#72#return; 855136#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 857376#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 857374#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 857373#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 857327#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 854844#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 854852#$Ultimate##0 ~n := #in~n; 855281#L25 assume !(~n <= 0); 854885#L26 call #t~ret0 := fact(~n - 1);< 854901#$Ultimate##0 ~n := #in~n; 854977#L25 assume !(~n <= 0); 854960#L26 call #t~ret0 := fact(~n - 1);< 854961#$Ultimate##0 ~n := #in~n; 854968#L25 assume ~n <= 0;#res := 1; 854967#factFINAL assume true; 854959#factEXIT >#66#return; 854952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854898#factFINAL assume true; 854877#factEXIT >#66#return; 854893#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 855242#factFINAL assume true; 854833#factEXIT >#68#return; 854851#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 855103#$Ultimate##0 ~n := #in~n; 855119#L25 assume !(~n <= 0); 854861#L26 call #t~ret0 := fact(~n - 1);< 854872#$Ultimate##0 ~n := #in~n; 855275#L25 assume ~n <= 0;#res := 1; 855243#factFINAL assume true; 854856#factEXIT >#66#return; 854867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 855116#factFINAL assume true; 855091#factEXIT >#70#return; 855094#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 855103#$Ultimate##0 ~n := #in~n; 855119#L25 assume !(~n <= 0); 854861#L26 call #t~ret0 := fact(~n - 1);< 854872#$Ultimate##0 ~n := #in~n; 855275#L25 assume ~n <= 0;#res := 1; 855243#factFINAL assume true; 854856#factEXIT >#66#return; 854867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 855116#factFINAL assume true; 855091#factEXIT >#72#return; 855100#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 855692#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 855691#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 855690#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 855689#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 854836#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 854852#$Ultimate##0 ~n := #in~n; 855281#L25 assume !(~n <= 0); 854885#L26 call #t~ret0 := fact(~n - 1);< 854901#$Ultimate##0 ~n := #in~n; 854977#L25 assume !(~n <= 0); 854960#L26 call #t~ret0 := fact(~n - 1);< 854961#$Ultimate##0 ~n := #in~n; 854968#L25 assume ~n <= 0;#res := 1; 854967#factFINAL assume true; 854959#factEXIT >#66#return; 854952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854898#factFINAL assume true; 854877#factEXIT >#66#return; 854893#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 855242#factFINAL assume true; 854833#factEXIT >#68#return; 854827#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 854832#$Ultimate##0 ~n := #in~n; 855239#L25 assume !(~n <= 0); 854773#L26 call #t~ret0 := fact(~n - 1);< 855059#$Ultimate##0 ~n := #in~n; 855117#L25 assume !(~n <= 0); 854879#L26 call #t~ret0 := fact(~n - 1);< 854962#$Ultimate##0 ~n := #in~n; 854968#L25 assume ~n <= 0;#res := 1; 854967#factFINAL assume true; 854959#factEXIT >#66#return; 854952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854898#factFINAL assume true; 854877#factEXIT >#66#return; 854887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 855231#factFINAL assume true; 854825#factEXIT >#70#return; 854815#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 854823#$Ultimate##0 ~n := #in~n; 855127#L25 assume ~n <= 0;#res := 1; 855125#factFINAL assume true; 854811#factEXIT >#72#return; 854819#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 855885#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 855884#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 855883#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 855881#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 854570#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 855393#$Ultimate##0 ~n := #in~n; 855389#L25 assume !(~n <= 0); 854560#L26 call #t~ret0 := fact(~n - 1);< 854568#$Ultimate##0 ~n := #in~n; 854598#L25 assume !(~n <= 0); 854557#L26 call #t~ret0 := fact(~n - 1);< 854591#$Ultimate##0 ~n := #in~n; 854598#L25 assume !(~n <= 0); 854557#L26 call #t~ret0 := fact(~n - 1);< 854591#$Ultimate##0 ~n := #in~n; 854595#L25 assume ~n <= 0;#res := 1; 854594#factFINAL assume true; 854589#factEXIT >#66#return; 854587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854582#factFINAL assume true; 854574#factEXIT >#66#return; 854573#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854569#factFINAL assume true; 854544#factEXIT >#66#return; 854567#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 855659#factFINAL assume true; 855658#factEXIT >#74#return; 854633#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 854684#$Ultimate##0 ~n := #in~n; 854685#L25 assume !(~n <= 0); 854552#L26 call #t~ret0 := fact(~n - 1);< 854600#$Ultimate##0 ~n := #in~n; 854597#L25 assume !(~n <= 0); 854575#L26 call #t~ret0 := fact(~n - 1);< 854581#$Ultimate##0 ~n := #in~n; 854595#L25 assume ~n <= 0;#res := 1; 854594#factFINAL assume true; 854589#factEXIT >#66#return; 854587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854582#factFINAL assume true; 854574#factEXIT >#66#return; 854580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854679#factFINAL assume true; 854680#factEXIT >#76#return; 854612#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 855650#$Ultimate##0 ~n := #in~n; 855648#L25 assume !(~n <= 0); 854954#L26 call #t~ret0 := fact(~n - 1);< 854958#$Ultimate##0 ~n := #in~n; 854601#L25 assume ~n <= 0;#res := 1; 855260#factFINAL assume true; 854953#factEXIT >#66#return; 854956#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 855657#factFINAL assume true; 854602#factEXIT >#78#return; 854615#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 858125#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 858124#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 858123#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 858122#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 858120#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 858119#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 854516#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 854392#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 854397#$Ultimate##0 ~n := #in~n; 854391#L25 assume !(~n <= 0); 853826#L26 call #t~ret0 := fact(~n - 1);< 854456#$Ultimate##0 ~n := #in~n; 854443#L25 assume !(~n <= 0); 854169#L26 call #t~ret0 := fact(~n - 1);< 854172#$Ultimate##0 ~n := #in~n; 854499#L25 assume !(~n <= 0); 854149#L26 call #t~ret0 := fact(~n - 1);< 855104#$Ultimate##0 ~n := #in~n; 855051#L25 assume !(~n <= 0); 854158#L26 call #t~ret0 := fact(~n - 1);< 854198#$Ultimate##0 ~n := #in~n; 854374#L25 assume !(~n <= 0); 854209#L26 call #t~ret0 := fact(~n - 1);< 854210#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854487#factFINAL assume true; 854484#factEXIT >#68#return; 854342#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 854343#$Ultimate##0 ~n := #in~n; 854360#L25 assume ~n <= 0;#res := 1; 854357#factFINAL assume true; 854332#factEXIT >#70#return; 854320#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 854440#$Ultimate##0 ~n := #in~n; 854438#L25 assume !(~n <= 0); 853808#L26 call #t~ret0 := fact(~n - 1);< 854005#$Ultimate##0 ~n := #in~n; 854409#L25 assume !(~n <= 0); 853805#L26 call #t~ret0 := fact(~n - 1);< 854408#$Ultimate##0 ~n := #in~n; 854406#L25 assume !(~n <= 0); 853818#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854480#factFINAL assume true; 854476#factEXIT >#72#return; 854324#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 854504#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 854500#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 854498#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 854496#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 853844#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 853851#$Ultimate##0 ~n := #in~n; 854179#L25 assume !(~n <= 0); 853821#L26 call #t~ret0 := fact(~n - 1);< 854084#$Ultimate##0 ~n := #in~n; 854455#L25 assume !(~n <= 0); 854168#L26 call #t~ret0 := fact(~n - 1);< 854454#$Ultimate##0 ~n := #in~n; 854451#L25 assume !(~n <= 0); 854147#L26 call #t~ret0 := fact(~n - 1);< 854152#$Ultimate##0 ~n := #in~n; 854449#L25 assume !(~n <= 0); 854157#L26 call #t~ret0 := fact(~n - 1);< 854389#$Ultimate##0 ~n := #in~n; 854374#L25 assume !(~n <= 0); 854209#L26 call #t~ret0 := fact(~n - 1);< 854210#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853831#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854013#factFINAL assume true; 853836#factEXIT >#68#return; 853713#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 853834#$Ultimate##0 ~n := #in~n; 853725#L25 assume !(~n <= 0); 853726#L26 call #t~ret0 := fact(~n - 1);< 853962#$Ultimate##0 ~n := #in~n; 853972#L25 assume ~n <= 0;#res := 1; 853964#factFINAL assume true; 853957#factEXIT >#66#return; 853956#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853955#factFINAL assume true; 853940#factEXIT >#70#return; 853951#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 854077#$Ultimate##0 ~n := #in~n; 854466#L25 assume !(~n <= 0); 854167#L26 call #t~ret0 := fact(~n - 1);< 854194#$Ultimate##0 ~n := #in~n; 854497#L25 assume !(~n <= 0); 854146#L26 call #t~ret0 := fact(~n - 1);< 854191#$Ultimate##0 ~n := #in~n; 855051#L25 assume !(~n <= 0); 854158#L26 call #t~ret0 := fact(~n - 1);< 854198#$Ultimate##0 ~n := #in~n; 854374#L25 assume !(~n <= 0); 854209#L26 call #t~ret0 := fact(~n - 1);< 854210#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854085#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854076#factFINAL assume true; 854060#factEXIT >#72#return; 854061#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 854184#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 854183#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 854182#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 854181#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 853839#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 853851#$Ultimate##0 ~n := #in~n; 854179#L25 assume !(~n <= 0); 853821#L26 call #t~ret0 := fact(~n - 1);< 854084#$Ultimate##0 ~n := #in~n; 854455#L25 assume !(~n <= 0); 854168#L26 call #t~ret0 := fact(~n - 1);< 854454#$Ultimate##0 ~n := #in~n; 854451#L25 assume !(~n <= 0); 854147#L26 call #t~ret0 := fact(~n - 1);< 854152#$Ultimate##0 ~n := #in~n; 854449#L25 assume !(~n <= 0); 854157#L26 call #t~ret0 := fact(~n - 1);< 854389#$Ultimate##0 ~n := #in~n; 854374#L25 assume !(~n <= 0); 854209#L26 call #t~ret0 := fact(~n - 1);< 854210#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853831#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854013#factFINAL assume true; 853836#factEXIT >#68#return; 853849#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 854142#$Ultimate##0 ~n := #in~n; 854398#L25 assume !(~n <= 0); 853819#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854052#factFINAL assume true; 854024#factEXIT >#70#return; 854038#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 854141#$Ultimate##0 ~n := #in~n; 854173#L25 assume !(~n <= 0); 854145#L26 call #t~ret0 := fact(~n - 1);< 854152#$Ultimate##0 ~n := #in~n; 854449#L25 assume !(~n <= 0); 854157#L26 call #t~ret0 := fact(~n - 1);< 854389#$Ultimate##0 ~n := #in~n; 854374#L25 assume !(~n <= 0); 854209#L26 call #t~ret0 := fact(~n - 1);< 854210#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854143#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854137#factFINAL assume true; 854123#factEXIT >#72#return; 854126#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 854189#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 854187#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 854186#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 854185#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 853848#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 853851#$Ultimate##0 ~n := #in~n; 854179#L25 assume !(~n <= 0); 853821#L26 call #t~ret0 := fact(~n - 1);< 854084#$Ultimate##0 ~n := #in~n; 854455#L25 assume !(~n <= 0); 854168#L26 call #t~ret0 := fact(~n - 1);< 854454#$Ultimate##0 ~n := #in~n; 854451#L25 assume !(~n <= 0); 854147#L26 call #t~ret0 := fact(~n - 1);< 854152#$Ultimate##0 ~n := #in~n; 854449#L25 assume !(~n <= 0); 854157#L26 call #t~ret0 := fact(~n - 1);< 854389#$Ultimate##0 ~n := #in~n; 854374#L25 assume !(~n <= 0); 854209#L26 call #t~ret0 := fact(~n - 1);< 854210#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853831#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854013#factFINAL assume true; 853836#factEXIT >#68#return; 853728#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 853993#$Ultimate##0 ~n := #in~n; 854468#L25 assume !(~n <= 0); 853803#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854143#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854137#factFINAL assume true; 854123#factEXIT >#70#return; 854026#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 854121#$Ultimate##0 ~n := #in~n; 854445#L25 assume !(~n <= 0); 854159#L26 call #t~ret0 := fact(~n - 1);< 854390#$Ultimate##0 ~n := #in~n; 854388#L25 assume !(~n <= 0); 854160#L26 call #t~ret0 := fact(~n - 1);< 854198#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854052#factFINAL assume true; 854024#factEXIT >#72#return; 854041#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 854180#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 854178#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 854078#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 854075#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 853841#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 853851#$Ultimate##0 ~n := #in~n; 854179#L25 assume !(~n <= 0); 853821#L26 call #t~ret0 := fact(~n - 1);< 854084#$Ultimate##0 ~n := #in~n; 854455#L25 assume !(~n <= 0); 854168#L26 call #t~ret0 := fact(~n - 1);< 854454#$Ultimate##0 ~n := #in~n; 854451#L25 assume !(~n <= 0); 854147#L26 call #t~ret0 := fact(~n - 1);< 854152#$Ultimate##0 ~n := #in~n; 854449#L25 assume !(~n <= 0); 854157#L26 call #t~ret0 := fact(~n - 1);< 854389#$Ultimate##0 ~n := #in~n; 854374#L25 assume !(~n <= 0); 854209#L26 call #t~ret0 := fact(~n - 1);< 854210#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853831#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854013#factFINAL assume true; 853836#factEXIT >#68#return; 853742#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 853993#$Ultimate##0 ~n := #in~n; 854468#L25 assume !(~n <= 0); 853803#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854085#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854076#factFINAL assume true; 854060#factEXIT >#70#return; 853941#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 854058#$Ultimate##0 ~n := #in~n; 854452#L25 assume !(~n <= 0); 853960#L26 call #t~ret0 := fact(~n - 1);< 854387#$Ultimate##0 ~n := #in~n; 853972#L25 assume ~n <= 0;#res := 1; 853964#factFINAL assume true; 853957#factEXIT >#66#return; 853956#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853955#factFINAL assume true; 853940#factEXIT >#72#return; 853948#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 854055#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 854053#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 854051#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 854050#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 853842#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 853851#$Ultimate##0 ~n := #in~n; 854179#L25 assume !(~n <= 0); 853821#L26 call #t~ret0 := fact(~n - 1);< 854084#$Ultimate##0 ~n := #in~n; 854455#L25 assume !(~n <= 0); 854168#L26 call #t~ret0 := fact(~n - 1);< 854454#$Ultimate##0 ~n := #in~n; 854451#L25 assume !(~n <= 0); 854147#L26 call #t~ret0 := fact(~n - 1);< 854152#$Ultimate##0 ~n := #in~n; 854449#L25 assume !(~n <= 0); 854157#L26 call #t~ret0 := fact(~n - 1);< 854389#$Ultimate##0 ~n := #in~n; 854374#L25 assume !(~n <= 0); 854209#L26 call #t~ret0 := fact(~n - 1);< 854210#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853831#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854013#factFINAL assume true; 853836#factEXIT >#68#return; 853751#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 853993#$Ultimate##0 ~n := #in~n; 854468#L25 assume !(~n <= 0); 853803#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853800#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853801#factFINAL assume true; 853727#factEXIT >#70#return; 853703#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 853723#$Ultimate##0 ~n := #in~n; 854453#L25 assume ~n <= 0;#res := 1; 853724#factFINAL assume true; 853677#factEXIT >#72#return; 853722#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 857323#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 857322#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 857321#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 857320#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 855111#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 856965#$Ultimate##0 ~n := #in~n; 857144#L25 assume !(~n <= 0); 856974#L26 call #t~ret0 := fact(~n - 1);< 856985#$Ultimate##0 ~n := #in~n; 857007#L25 assume !(~n <= 0); 856972#L26 call #t~ret0 := fact(~n - 1);< 857004#$Ultimate##0 ~n := #in~n; 857995#L25 assume !(~n <= 0); 856983#L26 call #t~ret0 := fact(~n - 1);< 857005#$Ultimate##0 ~n := #in~n; 857123#L25 assume !(~n <= 0); 856981#L26 call #t~ret0 := fact(~n - 1);< 857017#$Ultimate##0 ~n := #in~n; 857048#L25 assume !(~n <= 0); 856982#L26 call #t~ret0 := fact(~n - 1);< 857046#$Ultimate##0 ~n := #in~n; 857048#L25 assume !(~n <= 0); 856982#L26 call #t~ret0 := fact(~n - 1);< 857046#$Ultimate##0 ~n := #in~n; 857051#L25 assume ~n <= 0;#res := 1; 857050#factFINAL assume true; 857045#factEXIT >#66#return; 857044#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 857043#factFINAL assume true; 857040#factEXIT >#66#return; 857038#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 857037#factFINAL assume true; 857016#factEXIT >#66#return; 857013#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 857011#factFINAL assume true; 857001#factEXIT >#66#return; 857003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 857039#factFINAL assume true; 856999#factEXIT >#66#return; 856998#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856995#factFINAL assume true; 856970#factEXIT >#66#return; 856968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856964#factFINAL assume true; 856932#factEXIT >#74#return; 856940#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 853668#$Ultimate##0 ~n := #in~n; 857036#L25 assume !(~n <= 0); 856971#L26 call #t~ret0 := fact(~n - 1);< 857006#$Ultimate##0 ~n := #in~n; 857048#L25 assume !(~n <= 0); 856982#L26 call #t~ret0 := fact(~n - 1);< 857046#$Ultimate##0 ~n := #in~n; 857048#L25 assume !(~n <= 0); 856982#L26 call #t~ret0 := fact(~n - 1);< 857046#$Ultimate##0 ~n := #in~n; 857048#L25 assume !(~n <= 0); 856982#L26 call #t~ret0 := fact(~n - 1);< 857046#$Ultimate##0 ~n := #in~n; 857048#L25 assume !(~n <= 0); 856982#L26 call #t~ret0 := fact(~n - 1);< 857046#$Ultimate##0 ~n := #in~n; 857051#L25 assume ~n <= 0;#res := 1; 857050#factFINAL assume true; 857045#factEXIT >#66#return; 857044#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 857043#factFINAL assume true; 857040#factEXIT >#66#return; 857038#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 857037#factFINAL assume true; 857016#factEXIT >#66#return; 857013#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 857011#factFINAL assume true; 857001#factEXIT >#66#return; 857003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 857039#factFINAL assume true; 856999#factEXIT >#66#return; 857000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 857311#factFINAL assume true; 857308#factEXIT >#76#return; 853627#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 853674#$Ultimate##0 ~n := #in~n; 857340#L25 assume !(~n <= 0); 853626#L26 call #t~ret0 := fact(~n - 1);< 853630#$Ultimate##0 ~n := #in~n; 853656#L25 assume ~n <= 0;#res := 1; 853658#factFINAL assume true; 858071#factEXIT >#66#return; 858070#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 858069#factFINAL assume true; 858067#factEXIT >#78#return; 858066#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 858311#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 858310#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 858308#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 858306#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 858304#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 858303#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 854358#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 854346#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 854348#$Ultimate##0 ~n := #in~n; 854361#L25 assume !(~n <= 0); 853931#L26 call #t~ret0 := fact(~n - 1);< 854096#$Ultimate##0 ~n := #in~n; 854469#L25 assume !(~n <= 0); 853815#L26 call #t~ret0 := fact(~n - 1);< 854104#$Ultimate##0 ~n := #in~n; 854432#L25 assume !(~n <= 0); 853812#L26 call #t~ret0 := fact(~n - 1);< 854171#$Ultimate##0 ~n := #in~n; 854444#L25 assume !(~n <= 0); 853811#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 854008#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854525#factFINAL assume true; 854524#factEXIT >#68#return; 854339#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 854343#$Ultimate##0 ~n := #in~n; 854360#L25 assume ~n <= 0;#res := 1; 854357#factFINAL assume true; 854332#factEXIT >#70#return; 854097#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 854331#$Ultimate##0 ~n := #in~n; 854441#L25 assume !(~n <= 0); 853926#L26 call #t~ret0 := fact(~n - 1);< 854096#$Ultimate##0 ~n := #in~n; 854469#L25 assume !(~n <= 0); 853815#L26 call #t~ret0 := fact(~n - 1);< 854104#$Ultimate##0 ~n := #in~n; 854432#L25 assume !(~n <= 0); 853812#L26 call #t~ret0 := fact(~n - 1);< 854171#$Ultimate##0 ~n := #in~n; 854444#L25 assume !(~n <= 0); 853811#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 854003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856139#factFINAL assume true; 854319#factEXIT >#72#return; 854327#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 856136#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 856134#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 856132#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 856131#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 853897#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 853996#$Ultimate##0 ~n := #in~n; 854108#L25 assume !(~n <= 0); 853913#L26 call #t~ret0 := fact(~n - 1);< 853914#$Ultimate##0 ~n := #in~n; 854424#L25 assume !(~n <= 0); 853932#L26 call #t~ret0 := fact(~n - 1);< 854087#$Ultimate##0 ~n := #in~n; 854415#L25 assume !(~n <= 0); 853827#L26 call #t~ret0 := fact(~n - 1);< 854005#$Ultimate##0 ~n := #in~n; 854409#L25 assume !(~n <= 0); 853805#L26 call #t~ret0 := fact(~n - 1);< 854408#$Ultimate##0 ~n := #in~n; 854406#L25 assume !(~n <= 0); 853818#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 853877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853912#factFINAL assume true; 853995#factEXIT >#68#return; 853686#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 853834#$Ultimate##0 ~n := #in~n; 853725#L25 assume !(~n <= 0); 853726#L26 call #t~ret0 := fact(~n - 1);< 853962#$Ultimate##0 ~n := #in~n; 853972#L25 assume ~n <= 0;#res := 1; 853964#factFINAL assume true; 853957#factEXIT >#66#return; 853956#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853955#factFINAL assume true; 853940#factEXIT >#70#return; 853796#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 853799#$Ultimate##0 ~n := #in~n; 854301#L25 assume !(~n <= 0); 853806#L26 call #t~ret0 := fact(~n - 1);< 854005#$Ultimate##0 ~n := #in~n; 854409#L25 assume !(~n <= 0); 853805#L26 call #t~ret0 := fact(~n - 1);< 854408#$Ultimate##0 ~n := #in~n; 854406#L25 assume !(~n <= 0); 853818#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 853998#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853992#factFINAL assume true; 853976#factEXIT >#72#return; 853988#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 856066#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 856063#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 856060#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 856054#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 853908#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 853996#$Ultimate##0 ~n := #in~n; 854108#L25 assume !(~n <= 0); 853913#L26 call #t~ret0 := fact(~n - 1);< 853914#$Ultimate##0 ~n := #in~n; 854424#L25 assume !(~n <= 0); 853932#L26 call #t~ret0 := fact(~n - 1);< 854087#$Ultimate##0 ~n := #in~n; 854415#L25 assume !(~n <= 0); 853827#L26 call #t~ret0 := fact(~n - 1);< 854005#$Ultimate##0 ~n := #in~n; 854409#L25 assume !(~n <= 0); 853805#L26 call #t~ret0 := fact(~n - 1);< 854408#$Ultimate##0 ~n := #in~n; 854406#L25 assume !(~n <= 0); 853818#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 853877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853912#factFINAL assume true; 853995#factEXIT >#68#return; 853711#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 853835#$Ultimate##0 ~n := #in~n; 853970#L25 assume !(~n <= 0); 853823#L26 call #t~ret0 := fact(~n - 1);< 853963#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854052#factFINAL assume true; 854024#factEXIT >#70#return; 853749#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 854197#$Ultimate##0 ~n := #in~n; 854196#L25 assume !(~n <= 0); 853824#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854085#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854076#factFINAL assume true; 854060#factEXIT >#72#return; 853792#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 854682#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 854678#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 854533#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 854530#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 853892#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 853996#$Ultimate##0 ~n := #in~n; 854108#L25 assume !(~n <= 0); 853913#L26 call #t~ret0 := fact(~n - 1);< 853914#$Ultimate##0 ~n := #in~n; 854424#L25 assume !(~n <= 0); 853932#L26 call #t~ret0 := fact(~n - 1);< 854087#$Ultimate##0 ~n := #in~n; 854415#L25 assume !(~n <= 0); 853827#L26 call #t~ret0 := fact(~n - 1);< 854005#$Ultimate##0 ~n := #in~n; 854409#L25 assume !(~n <= 0); 853805#L26 call #t~ret0 := fact(~n - 1);< 854408#$Ultimate##0 ~n := #in~n; 854406#L25 assume !(~n <= 0); 853818#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 853877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853912#factFINAL assume true; 853995#factEXIT >#68#return; 853678#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 853835#$Ultimate##0 ~n := #in~n; 853970#L25 assume !(~n <= 0); 853823#L26 call #t~ret0 := fact(~n - 1);< 853963#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854143#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854137#factFINAL assume true; 854123#factEXIT >#70#return; 853768#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 854049#$Ultimate##0 ~n := #in~n; 857309#L25 assume !(~n <= 0); 853809#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854085#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854076#factFINAL assume true; 854060#factEXIT >#72#return; 854066#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 854233#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 854232#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 854231#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 854229#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 853878#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 853996#$Ultimate##0 ~n := #in~n; 854108#L25 assume !(~n <= 0); 853913#L26 call #t~ret0 := fact(~n - 1);< 853914#$Ultimate##0 ~n := #in~n; 854424#L25 assume !(~n <= 0); 853932#L26 call #t~ret0 := fact(~n - 1);< 854087#$Ultimate##0 ~n := #in~n; 854415#L25 assume !(~n <= 0); 853827#L26 call #t~ret0 := fact(~n - 1);< 854005#$Ultimate##0 ~n := #in~n; 854409#L25 assume !(~n <= 0); 853805#L26 call #t~ret0 := fact(~n - 1);< 854408#$Ultimate##0 ~n := #in~n; 854406#L25 assume !(~n <= 0); 853818#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 853877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853912#factFINAL assume true; 853995#factEXIT >#68#return; 853688#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 853835#$Ultimate##0 ~n := #in~n; 853970#L25 assume !(~n <= 0); 853823#L26 call #t~ret0 := fact(~n - 1);< 853963#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854085#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854076#factFINAL assume true; 854060#factEXIT >#70#return; 853762#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 854049#$Ultimate##0 ~n := #in~n; 857309#L25 assume !(~n <= 0); 853809#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854143#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854137#factFINAL assume true; 854123#factEXIT >#72#return; 854134#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 854223#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 854220#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 854219#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 854218#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 853909#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 853996#$Ultimate##0 ~n := #in~n; 854108#L25 assume !(~n <= 0); 853913#L26 call #t~ret0 := fact(~n - 1);< 853914#$Ultimate##0 ~n := #in~n; 854424#L25 assume !(~n <= 0); 853932#L26 call #t~ret0 := fact(~n - 1);< 854087#$Ultimate##0 ~n := #in~n; 854415#L25 assume !(~n <= 0); 853827#L26 call #t~ret0 := fact(~n - 1);< 854005#$Ultimate##0 ~n := #in~n; 854409#L25 assume !(~n <= 0); 853805#L26 call #t~ret0 := fact(~n - 1);< 854408#$Ultimate##0 ~n := #in~n; 854406#L25 assume !(~n <= 0); 853818#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 853877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853912#factFINAL assume true; 853995#factEXIT >#68#return; 853710#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 853835#$Ultimate##0 ~n := #in~n; 853970#L25 assume !(~n <= 0); 853823#L26 call #t~ret0 := fact(~n - 1);< 853963#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853800#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853801#factFINAL assume true; 853727#factEXIT >#70#return; 853746#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 854049#$Ultimate##0 ~n := #in~n; 857309#L25 assume !(~n <= 0); 853809#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854052#factFINAL assume true; 854024#factEXIT >#72#return; 854022#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 854020#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 854018#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 854016#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 854014#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 853893#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 853996#$Ultimate##0 ~n := #in~n; 854108#L25 assume !(~n <= 0); 853913#L26 call #t~ret0 := fact(~n - 1);< 853914#$Ultimate##0 ~n := #in~n; 854424#L25 assume !(~n <= 0); 853932#L26 call #t~ret0 := fact(~n - 1);< 854087#$Ultimate##0 ~n := #in~n; 854415#L25 assume !(~n <= 0); 853827#L26 call #t~ret0 := fact(~n - 1);< 854005#$Ultimate##0 ~n := #in~n; 854409#L25 assume !(~n <= 0); 853805#L26 call #t~ret0 := fact(~n - 1);< 854408#$Ultimate##0 ~n := #in~n; 854406#L25 assume !(~n <= 0); 853818#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 853877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853912#factFINAL assume true; 853995#factEXIT >#68#return; 853689#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 853835#$Ultimate##0 ~n := #in~n; 853970#L25 assume !(~n <= 0); 853823#L26 call #t~ret0 := fact(~n - 1);< 853963#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 853998#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853992#factFINAL assume true; 853976#factEXIT >#70#return; 853767#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 853974#$Ultimate##0 ~n := #in~n; 853971#L25 assume !(~n <= 0); 853823#L26 call #t~ret0 := fact(~n - 1);< 853963#$Ultimate##0 ~n := #in~n; 853972#L25 assume ~n <= 0;#res := 1; 853964#factFINAL assume true; 853957#factEXIT >#66#return; 853956#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853955#factFINAL assume true; 853940#factEXIT >#72#return; 853952#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 854059#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 854057#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 854056#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 854054#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 853910#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 853996#$Ultimate##0 ~n := #in~n; 854108#L25 assume !(~n <= 0); 853913#L26 call #t~ret0 := fact(~n - 1);< 853914#$Ultimate##0 ~n := #in~n; 854424#L25 assume !(~n <= 0); 853932#L26 call #t~ret0 := fact(~n - 1);< 854087#$Ultimate##0 ~n := #in~n; 854415#L25 assume !(~n <= 0); 853827#L26 call #t~ret0 := fact(~n - 1);< 854005#$Ultimate##0 ~n := #in~n; 854409#L25 assume !(~n <= 0); 853805#L26 call #t~ret0 := fact(~n - 1);< 854408#$Ultimate##0 ~n := #in~n; 854406#L25 assume !(~n <= 0); 853818#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 853877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853912#factFINAL assume true; 853995#factEXIT >#68#return; 853977#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 853991#$Ultimate##0 ~n := #in~n; 854099#L25 assume !(~n <= 0); 853929#L26 call #t~ret0 := fact(~n - 1);< 853936#$Ultimate##0 ~n := #in~n; 854396#L25 assume !(~n <= 0); 853927#L26 call #t~ret0 := fact(~n - 1);< 854096#$Ultimate##0 ~n := #in~n; 854469#L25 assume !(~n <= 0); 853815#L26 call #t~ret0 := fact(~n - 1);< 854104#$Ultimate##0 ~n := #in~n; 854432#L25 assume !(~n <= 0); 853812#L26 call #t~ret0 := fact(~n - 1);< 854171#$Ultimate##0 ~n := #in~n; 854444#L25 assume !(~n <= 0); 853811#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 853998#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853992#factFINAL assume true; 853976#factEXIT >#70#return; 853705#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 853835#$Ultimate##0 ~n := #in~n; 853970#L25 assume ~n <= 0;#res := 1; 853724#factFINAL assume true; 853677#factEXIT >#72#return; 853719#L30-3 [2023-02-18 08:58:42,396 INFO L750 eck$LassoCheckResult]: Loop: 853719#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 857169#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 857168#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 857167#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 857162#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 856946#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 853598#$Ultimate##0 ~n := #in~n; 857079#L25 assume !(~n <= 0); 856996#L26 call #t~ret0 := fact(~n - 1);< 857076#$Ultimate##0 ~n := #in~n; 857324#L25 assume !(~n <= 0); 856980#L26 call #t~ret0 := fact(~n - 1);< 856997#$Ultimate##0 ~n := #in~n; 857008#L25 assume !(~n <= 0); 856978#L26 call #t~ret0 := fact(~n - 1);< 857059#$Ultimate##0 ~n := #in~n; 857058#L25 assume !(~n <= 0); 856976#L26 call #t~ret0 := fact(~n - 1);< 857053#$Ultimate##0 ~n := #in~n; 857052#L25 assume !(~n <= 0); 856977#L26 call #t~ret0 := fact(~n - 1);< 857049#$Ultimate##0 ~n := #in~n; 857042#L25 assume !(~n <= 0); 856975#L26 call #t~ret0 := fact(~n - 1);< 857017#$Ultimate##0 ~n := #in~n; 857048#L25 assume !(~n <= 0); 856982#L26 call #t~ret0 := fact(~n - 1);< 857046#$Ultimate##0 ~n := #in~n; 857051#L25 assume ~n <= 0;#res := 1; 857050#factFINAL assume true; 857045#factEXIT >#66#return; 857044#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 857043#factFINAL assume true; 857040#factEXIT >#66#return; 857038#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 857037#factFINAL assume true; 857016#factEXIT >#66#return; 857013#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 857011#factFINAL assume true; 857001#factEXIT >#66#return; 857003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 857039#factFINAL assume true; 856999#factEXIT >#66#return; 856998#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856995#factFINAL assume true; 856970#factEXIT >#66#return; 856984#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 857102#factFINAL assume true; 857075#factEXIT >#66#return; 856962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856949#factFINAL assume true; 856944#factEXIT >#74#return; 856942#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 853668#$Ultimate##0 ~n := #in~n; 857036#L25 assume !(~n <= 0); 856971#L26 call #t~ret0 := fact(~n - 1);< 857006#$Ultimate##0 ~n := #in~n; 857048#L25 assume !(~n <= 0); 856982#L26 call #t~ret0 := fact(~n - 1);< 857046#$Ultimate##0 ~n := #in~n; 857048#L25 assume !(~n <= 0); 856982#L26 call #t~ret0 := fact(~n - 1);< 857046#$Ultimate##0 ~n := #in~n; 857048#L25 assume !(~n <= 0); 856982#L26 call #t~ret0 := fact(~n - 1);< 857046#$Ultimate##0 ~n := #in~n; 857048#L25 assume !(~n <= 0); 856982#L26 call #t~ret0 := fact(~n - 1);< 857046#$Ultimate##0 ~n := #in~n; 857048#L25 assume !(~n <= 0); 856982#L26 call #t~ret0 := fact(~n - 1);< 857046#$Ultimate##0 ~n := #in~n; 857051#L25 assume ~n <= 0;#res := 1; 857050#factFINAL assume true; 857045#factEXIT >#66#return; 857044#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 857043#factFINAL assume true; 857040#factEXIT >#66#return; 857038#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 857037#factFINAL assume true; 857016#factEXIT >#66#return; 857013#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 857011#factFINAL assume true; 857001#factEXIT >#66#return; 857003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 857039#factFINAL assume true; 856999#factEXIT >#66#return; 856998#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856995#factFINAL assume true; 856970#factEXIT >#66#return; 856968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 856964#factFINAL assume true; 856932#factEXIT >#76#return; 853629#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 853674#$Ultimate##0 ~n := #in~n; 857340#L25 assume !(~n <= 0); 853626#L26 call #t~ret0 := fact(~n - 1);< 853630#$Ultimate##0 ~n := #in~n; 853656#L25 assume ~n <= 0;#res := 1; 853658#factFINAL assume true; 858071#factEXIT >#66#return; 858070#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 858069#factFINAL assume true; 858067#factEXIT >#78#return; 858063#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 858062#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 858061#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 858059#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 858056#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 858054#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 858052#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 856140#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 854435#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 854439#$Ultimate##0 ~n := #in~n; 854433#L25 assume !(~n <= 0); 853928#L26 call #t~ret0 := fact(~n - 1);< 853914#$Ultimate##0 ~n := #in~n; 854424#L25 assume !(~n <= 0); 853932#L26 call #t~ret0 := fact(~n - 1);< 854087#$Ultimate##0 ~n := #in~n; 854415#L25 assume !(~n <= 0); 853827#L26 call #t~ret0 := fact(~n - 1);< 854005#$Ultimate##0 ~n := #in~n; 854409#L25 assume !(~n <= 0); 853805#L26 call #t~ret0 := fact(~n - 1);< 854408#$Ultimate##0 ~n := #in~n; 854406#L25 assume !(~n <= 0); 853818#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 854008#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854525#factFINAL assume true; 854524#factEXIT >#68#return; 854341#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 854343#$Ultimate##0 ~n := #in~n; 854360#L25 assume ~n <= 0;#res := 1; 854357#factFINAL assume true; 854332#factEXIT >#70#return; 853935#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 854508#$Ultimate##0 ~n := #in~n; 854509#L25 assume !(~n <= 0); 853924#L26 call #t~ret0 := fact(~n - 1);< 853936#$Ultimate##0 ~n := #in~n; 854396#L25 assume !(~n <= 0); 853927#L26 call #t~ret0 := fact(~n - 1);< 854096#$Ultimate##0 ~n := #in~n; 854469#L25 assume !(~n <= 0); 853815#L26 call #t~ret0 := fact(~n - 1);< 854104#$Ultimate##0 ~n := #in~n; 854432#L25 assume !(~n <= 0); 853812#L26 call #t~ret0 := fact(~n - 1);< 854171#$Ultimate##0 ~n := #in~n; 854444#L25 assume !(~n <= 0); 853811#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 854007#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 855049#factFINAL assume true; 855050#factEXIT >#72#return; 854327#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 856136#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 856134#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 856132#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 856131#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 853897#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 853996#$Ultimate##0 ~n := #in~n; 854108#L25 assume !(~n <= 0); 853913#L26 call #t~ret0 := fact(~n - 1);< 853914#$Ultimate##0 ~n := #in~n; 854424#L25 assume !(~n <= 0); 853932#L26 call #t~ret0 := fact(~n - 1);< 854087#$Ultimate##0 ~n := #in~n; 854415#L25 assume !(~n <= 0); 853827#L26 call #t~ret0 := fact(~n - 1);< 854005#$Ultimate##0 ~n := #in~n; 854409#L25 assume !(~n <= 0); 853805#L26 call #t~ret0 := fact(~n - 1);< 854408#$Ultimate##0 ~n := #in~n; 854406#L25 assume !(~n <= 0); 853818#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 853877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853912#factFINAL assume true; 853995#factEXIT >#68#return; 853686#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 853834#$Ultimate##0 ~n := #in~n; 853725#L25 assume !(~n <= 0); 853726#L26 call #t~ret0 := fact(~n - 1);< 853962#$Ultimate##0 ~n := #in~n; 853972#L25 assume ~n <= 0;#res := 1; 853964#factFINAL assume true; 853957#factEXIT >#66#return; 853956#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853955#factFINAL assume true; 853940#factEXIT >#70#return; 853796#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 853799#$Ultimate##0 ~n := #in~n; 854301#L25 assume !(~n <= 0); 853806#L26 call #t~ret0 := fact(~n - 1);< 854005#$Ultimate##0 ~n := #in~n; 854409#L25 assume !(~n <= 0); 853805#L26 call #t~ret0 := fact(~n - 1);< 854408#$Ultimate##0 ~n := #in~n; 854406#L25 assume !(~n <= 0); 853818#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 853998#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853992#factFINAL assume true; 853976#factEXIT >#72#return; 853988#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 856066#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 856063#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 856060#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 856054#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 853908#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 853996#$Ultimate##0 ~n := #in~n; 854108#L25 assume !(~n <= 0); 853913#L26 call #t~ret0 := fact(~n - 1);< 853914#$Ultimate##0 ~n := #in~n; 854424#L25 assume !(~n <= 0); 853932#L26 call #t~ret0 := fact(~n - 1);< 854087#$Ultimate##0 ~n := #in~n; 854415#L25 assume !(~n <= 0); 853827#L26 call #t~ret0 := fact(~n - 1);< 854005#$Ultimate##0 ~n := #in~n; 854409#L25 assume !(~n <= 0); 853805#L26 call #t~ret0 := fact(~n - 1);< 854408#$Ultimate##0 ~n := #in~n; 854406#L25 assume !(~n <= 0); 853818#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 853877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853912#factFINAL assume true; 853995#factEXIT >#68#return; 853711#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 853835#$Ultimate##0 ~n := #in~n; 853970#L25 assume !(~n <= 0); 853823#L26 call #t~ret0 := fact(~n - 1);< 853963#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854052#factFINAL assume true; 854024#factEXIT >#70#return; 853749#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 854197#$Ultimate##0 ~n := #in~n; 854196#L25 assume !(~n <= 0); 853824#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854085#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854076#factFINAL assume true; 854060#factEXIT >#72#return; 853792#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 854682#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 854678#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 854533#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 854530#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 853892#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 853996#$Ultimate##0 ~n := #in~n; 854108#L25 assume !(~n <= 0); 853913#L26 call #t~ret0 := fact(~n - 1);< 853914#$Ultimate##0 ~n := #in~n; 854424#L25 assume !(~n <= 0); 853932#L26 call #t~ret0 := fact(~n - 1);< 854087#$Ultimate##0 ~n := #in~n; 854415#L25 assume !(~n <= 0); 853827#L26 call #t~ret0 := fact(~n - 1);< 854005#$Ultimate##0 ~n := #in~n; 854409#L25 assume !(~n <= 0); 853805#L26 call #t~ret0 := fact(~n - 1);< 854408#$Ultimate##0 ~n := #in~n; 854406#L25 assume !(~n <= 0); 853818#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 853877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853912#factFINAL assume true; 853995#factEXIT >#68#return; 853678#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 853835#$Ultimate##0 ~n := #in~n; 853970#L25 assume !(~n <= 0); 853823#L26 call #t~ret0 := fact(~n - 1);< 853963#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854143#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854137#factFINAL assume true; 854123#factEXIT >#70#return; 853768#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 854049#$Ultimate##0 ~n := #in~n; 857309#L25 assume !(~n <= 0); 853809#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854085#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854076#factFINAL assume true; 854060#factEXIT >#72#return; 854066#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 854233#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 854232#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 854231#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 854229#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 853878#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 853996#$Ultimate##0 ~n := #in~n; 854108#L25 assume !(~n <= 0); 853913#L26 call #t~ret0 := fact(~n - 1);< 853914#$Ultimate##0 ~n := #in~n; 854424#L25 assume !(~n <= 0); 853932#L26 call #t~ret0 := fact(~n - 1);< 854087#$Ultimate##0 ~n := #in~n; 854415#L25 assume !(~n <= 0); 853827#L26 call #t~ret0 := fact(~n - 1);< 854005#$Ultimate##0 ~n := #in~n; 854409#L25 assume !(~n <= 0); 853805#L26 call #t~ret0 := fact(~n - 1);< 854408#$Ultimate##0 ~n := #in~n; 854406#L25 assume !(~n <= 0); 853818#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 853877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853912#factFINAL assume true; 853995#factEXIT >#68#return; 853688#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 853835#$Ultimate##0 ~n := #in~n; 853970#L25 assume !(~n <= 0); 853823#L26 call #t~ret0 := fact(~n - 1);< 853963#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854085#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854076#factFINAL assume true; 854060#factEXIT >#70#return; 853762#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 854049#$Ultimate##0 ~n := #in~n; 857309#L25 assume !(~n <= 0); 853809#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854143#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854137#factFINAL assume true; 854123#factEXIT >#72#return; 854134#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 854223#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 854220#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 854219#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 854218#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 853909#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 853996#$Ultimate##0 ~n := #in~n; 854108#L25 assume !(~n <= 0); 853913#L26 call #t~ret0 := fact(~n - 1);< 853914#$Ultimate##0 ~n := #in~n; 854424#L25 assume !(~n <= 0); 853932#L26 call #t~ret0 := fact(~n - 1);< 854087#$Ultimate##0 ~n := #in~n; 854415#L25 assume !(~n <= 0); 853827#L26 call #t~ret0 := fact(~n - 1);< 854005#$Ultimate##0 ~n := #in~n; 854409#L25 assume !(~n <= 0); 853805#L26 call #t~ret0 := fact(~n - 1);< 854408#$Ultimate##0 ~n := #in~n; 854406#L25 assume !(~n <= 0); 853818#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 853877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853912#factFINAL assume true; 853995#factEXIT >#68#return; 853710#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 853835#$Ultimate##0 ~n := #in~n; 853970#L25 assume !(~n <= 0); 853823#L26 call #t~ret0 := fact(~n - 1);< 853963#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853800#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853801#factFINAL assume true; 853727#factEXIT >#70#return; 853746#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 854049#$Ultimate##0 ~n := #in~n; 857309#L25 assume !(~n <= 0); 853809#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854052#factFINAL assume true; 854024#factEXIT >#72#return; 854022#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 854020#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 854018#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 854016#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 854014#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 853893#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 853996#$Ultimate##0 ~n := #in~n; 854108#L25 assume !(~n <= 0); 853913#L26 call #t~ret0 := fact(~n - 1);< 853914#$Ultimate##0 ~n := #in~n; 854424#L25 assume !(~n <= 0); 853932#L26 call #t~ret0 := fact(~n - 1);< 854087#$Ultimate##0 ~n := #in~n; 854415#L25 assume !(~n <= 0); 853827#L26 call #t~ret0 := fact(~n - 1);< 854005#$Ultimate##0 ~n := #in~n; 854409#L25 assume !(~n <= 0); 853805#L26 call #t~ret0 := fact(~n - 1);< 854408#$Ultimate##0 ~n := #in~n; 854406#L25 assume !(~n <= 0); 853818#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 853877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853912#factFINAL assume true; 853995#factEXIT >#68#return; 853689#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 853835#$Ultimate##0 ~n := #in~n; 853970#L25 assume !(~n <= 0); 853823#L26 call #t~ret0 := fact(~n - 1);< 853963#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 853998#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853992#factFINAL assume true; 853976#factEXIT >#70#return; 853767#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 853974#$Ultimate##0 ~n := #in~n; 853971#L25 assume !(~n <= 0); 853823#L26 call #t~ret0 := fact(~n - 1);< 853963#$Ultimate##0 ~n := #in~n; 853972#L25 assume ~n <= 0;#res := 1; 853964#factFINAL assume true; 853957#factEXIT >#66#return; 853956#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853955#factFINAL assume true; 853940#factEXIT >#72#return; 853952#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 854059#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 854057#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 854056#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 854054#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 853910#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 853996#$Ultimate##0 ~n := #in~n; 854108#L25 assume !(~n <= 0); 853913#L26 call #t~ret0 := fact(~n - 1);< 853914#$Ultimate##0 ~n := #in~n; 854424#L25 assume !(~n <= 0); 853932#L26 call #t~ret0 := fact(~n - 1);< 854087#$Ultimate##0 ~n := #in~n; 854415#L25 assume !(~n <= 0); 853827#L26 call #t~ret0 := fact(~n - 1);< 854005#$Ultimate##0 ~n := #in~n; 854409#L25 assume !(~n <= 0); 853805#L26 call #t~ret0 := fact(~n - 1);< 854408#$Ultimate##0 ~n := #in~n; 854406#L25 assume !(~n <= 0); 853818#L26 call #t~ret0 := fact(~n - 1);< 853833#$Ultimate##0 ~n := #in~n; 854349#L25 assume !(~n <= 0); 853813#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 853877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853912#factFINAL assume true; 853995#factEXIT >#68#return; 853977#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 853991#$Ultimate##0 ~n := #in~n; 854099#L25 assume !(~n <= 0); 853929#L26 call #t~ret0 := fact(~n - 1);< 853936#$Ultimate##0 ~n := #in~n; 854396#L25 assume !(~n <= 0); 853927#L26 call #t~ret0 := fact(~n - 1);< 854096#$Ultimate##0 ~n := #in~n; 854469#L25 assume !(~n <= 0); 853815#L26 call #t~ret0 := fact(~n - 1);< 854104#$Ultimate##0 ~n := #in~n; 854432#L25 assume !(~n <= 0); 853812#L26 call #t~ret0 := fact(~n - 1);< 854171#$Ultimate##0 ~n := #in~n; 854444#L25 assume !(~n <= 0); 853811#L26 call #t~ret0 := fact(~n - 1);< 854093#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854212#L25 assume !(~n <= 0); 853816#L26 call #t~ret0 := fact(~n - 1);< 854211#$Ultimate##0 ~n := #in~n; 854246#L25 assume ~n <= 0;#res := 1; 854244#factFINAL assume true; 854208#factEXIT >#66#return; 854207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854206#factFINAL assume true; 854155#factEXIT >#66#return; 854161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854190#factFINAL assume true; 854144#factEXIT >#66#return; 854150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854225#factFINAL assume true; 854166#factEXIT >#66#return; 854165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854079#factFINAL assume true; 853802#factEXIT >#66#return; 853828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 854086#factFINAL assume true; 853999#factEXIT >#66#return; 853939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853922#factFINAL assume true; 853933#factEXIT >#66#return; 853998#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 853992#factFINAL assume true; 853976#factEXIT >#70#return; 853705#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 853835#$Ultimate##0 ~n := #in~n; 853970#L25 assume ~n <= 0;#res := 1; 853724#factFINAL assume true; 853677#factEXIT >#72#return; 853719#L30-3 [2023-02-18 08:58:42,397 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:42,397 INFO L85 PathProgramCache]: Analyzing trace with hash -1881838992, now seen corresponding path program 77 times [2023-02-18 08:58:42,397 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:42,397 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1217520383] [2023-02-18 08:58:42,397 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:42,397 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:42,428 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:42,428 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [739340149] [2023-02-18 08:58:42,428 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:58:42,428 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:42,428 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:42,430 INFO L229 MonitoredProcess]: Starting monitored process 279 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:58:42,431 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (279)] Waiting until timeout for monitored process [2023-02-18 08:58:43,220 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 21 check-sat command(s) [2023-02-18 08:58:43,220 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:58:43,224 INFO L263 TraceCheckSpWp]: Trace formula consists of 403 conjuncts, 35 conjunts are in the unsatisfiable core [2023-02-18 08:58:43,233 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:43,357 INFO L134 CoverageAnalysis]: Checked inductivity of 244274 backedges. 122538 proven. 452 refuted. 0 times theorem prover too weak. 121284 trivial. 0 not checked. [2023-02-18 08:58:43,357 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:43,899 INFO L134 CoverageAnalysis]: Checked inductivity of 244274 backedges. 13890 proven. 7959 refuted. 0 times theorem prover too weak. 222425 trivial. 0 not checked. [2023-02-18 08:58:43,899 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:43,899 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1217520383] [2023-02-18 08:58:43,900 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:43,900 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [739340149] [2023-02-18 08:58:43,900 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [739340149] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:43,900 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:43,901 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [21, 34] total 37 [2023-02-18 08:58:43,901 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1253568429] [2023-02-18 08:58:43,901 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:43,902 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:58:43,902 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:43,902 INFO L85 PathProgramCache]: Analyzing trace with hash 1077083635, now seen corresponding path program 77 times [2023-02-18 08:58:43,902 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:43,902 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1073208906] [2023-02-18 08:58:43,902 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:43,902 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:43,922 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:43,922 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [641456331] [2023-02-18 08:58:43,922 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:58:43,922 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:43,922 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:43,924 INFO L229 MonitoredProcess]: Starting monitored process 280 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:58:43,925 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (280)] Waiting until timeout for monitored process [2023-02-18 08:58:44,744 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 51 check-sat command(s) [2023-02-18 08:58:44,744 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:58:44,748 INFO L263 TraceCheckSpWp]: Trace formula consists of 601 conjuncts, 40 conjunts are in the unsatisfiable core [2023-02-18 08:58:44,753 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:44,891 INFO L134 CoverageAnalysis]: Checked inductivity of 63383 backedges. 30415 proven. 1049 refuted. 0 times theorem prover too weak. 31919 trivial. 0 not checked. [2023-02-18 08:58:44,891 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:45,398 INFO L134 CoverageAnalysis]: Checked inductivity of 63383 backedges. 1973 proven. 8078 refuted. 0 times theorem prover too weak. 53332 trivial. 0 not checked. [2023-02-18 08:58:45,398 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:45,398 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1073208906] [2023-02-18 08:58:45,399 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:45,399 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [641456331] [2023-02-18 08:58:45,399 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [641456331] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:45,399 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:45,399 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [24, 37] total 43 [2023-02-18 08:58:45,399 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [648614586] [2023-02-18 08:58:45,399 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:45,399 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:58:45,399 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:58:45,400 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 43 interpolants. [2023-02-18 08:58:45,400 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=225, Invalid=1581, Unknown=0, NotChecked=0, Total=1806 [2023-02-18 08:58:45,400 INFO L87 Difference]: Start difference. First operand 4727 states and 7144 transitions. cyclomatic complexity: 2459 Second operand has 43 states, 39 states have (on average 2.641025641025641) internal successors, (103), 43 states have internal predecessors, (103), 24 states have call successors, (39), 2 states have call predecessors, (39), 17 states have return successors, (50), 20 states have call predecessors, (50), 24 states have call successors, (50) [2023-02-18 08:58:47,846 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:58:47,846 INFO L93 Difference]: Finished difference Result 6236 states and 9953 transitions. [2023-02-18 08:58:47,847 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 6236 states and 9953 transitions. [2023-02-18 08:58:47,876 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 1038 [2023-02-18 08:58:47,914 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 6236 states to 6235 states and 9945 transitions. [2023-02-18 08:58:47,914 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 388 [2023-02-18 08:58:47,914 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 388 [2023-02-18 08:58:47,914 INFO L73 IsDeterministic]: Start isDeterministic. Operand 6235 states and 9945 transitions. [2023-02-18 08:58:47,914 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:58:47,914 INFO L218 hiAutomatonCegarLoop]: Abstraction has 6235 states and 9945 transitions. [2023-02-18 08:58:47,916 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 6235 states and 9945 transitions. [2023-02-18 08:58:47,974 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 6235 to 5113. [2023-02-18 08:58:47,978 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5113 states, 3126 states have (on average 1.0479846449136276) internal successors, (3276), 3118 states have internal predecessors, (3276), 1645 states have call successors, (1667), 480 states have call predecessors, (1667), 342 states have return successors, (2959), 1514 states have call predecessors, (2959), 1645 states have call successors, (2959) [2023-02-18 08:58:47,993 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5113 states to 5113 states and 7902 transitions. [2023-02-18 08:58:47,993 INFO L240 hiAutomatonCegarLoop]: Abstraction has 5113 states and 7902 transitions. [2023-02-18 08:58:47,993 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 50 states. [2023-02-18 08:58:47,993 INFO L428 stractBuchiCegarLoop]: Abstraction has 5113 states and 7902 transitions. [2023-02-18 08:58:47,993 INFO L335 stractBuchiCegarLoop]: ======== Iteration 90 ============ [2023-02-18 08:58:47,993 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 5113 states and 7902 transitions. [2023-02-18 08:58:48,003 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 646 [2023-02-18 08:58:48,003 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:58:48,003 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:58:48,010 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [316, 316, 235, 235, 235, 235, 81, 27, 26, 20, 20, 20, 20, 20, 20, 20, 19, 19, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 4, 4, 1, 1, 1, 1] [2023-02-18 08:58:48,010 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [153, 153, 126, 126, 126, 126, 27, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:58:48,011 INFO L748 eck$LassoCheckResult]: Stem: 882002#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 881950#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; 881951#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 881974#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; 882003#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 886736#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 886735#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 885708#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 885709#$Ultimate##0 ~n := #in~n; 885714#L25 assume ~n <= 0;#res := 1; 885712#factFINAL assume true; 885707#factEXIT >#68#return; 885705#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 885706#$Ultimate##0 ~n := #in~n; 885715#L25 assume ~n <= 0;#res := 1; 885713#factFINAL assume true; 885704#factEXIT >#70#return; 885702#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 885703#$Ultimate##0 ~n := #in~n; 885717#L25 assume ~n <= 0;#res := 1; 885716#factFINAL assume true; 885701#factEXIT >#72#return; 885699#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 885695#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 885693#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 885691#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 885690#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 885688#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 885689#$Ultimate##0 ~n := #in~n; 885700#L25 assume !(~n <= 0); 885697#L26 call #t~ret0 := fact(~n - 1);< 885698#$Ultimate##0 ~n := #in~n; 885719#L25 assume ~n <= 0;#res := 1; 885718#factFINAL assume true; 885696#factEXIT >#66#return; 885694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 885692#factFINAL assume true; 885687#factEXIT >#74#return; 885685#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 885686#$Ultimate##0 ~n := #in~n; 885721#L25 assume ~n <= 0;#res := 1; 885720#factFINAL assume true; 885684#factEXIT >#76#return; 885681#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 885682#$Ultimate##0 ~n := #in~n; 885727#L25 assume !(~n <= 0); 885725#L26 call #t~ret0 := fact(~n - 1);< 885726#$Ultimate##0 ~n := #in~n; 885729#L25 assume ~n <= 0;#res := 1; 885728#factFINAL assume true; 885724#factEXIT >#66#return; 885723#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 885722#factFINAL assume true; 885680#factEXIT >#78#return; 885674#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 885672#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 885671#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 885670#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 885668#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 885663#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 885665#$Ultimate##0 ~n := #in~n; 885683#L25 assume !(~n <= 0); 885677#L26 call #t~ret0 := fact(~n - 1);< 885679#$Ultimate##0 ~n := #in~n; 885737#L25 assume !(~n <= 0); 885676#L26 call #t~ret0 := fact(~n - 1);< 885735#$Ultimate##0 ~n := #in~n; 885744#L25 assume ~n <= 0;#res := 1; 885742#factFINAL assume true; 885741#factEXIT >#66#return; 885740#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 885739#factFINAL assume true; 885732#factEXIT >#66#return; 885733#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 886732#factFINAL assume true; 886731#factEXIT >#74#return; 885664#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 886729#$Ultimate##0 ~n := #in~n; 886734#L25 assume ~n <= 0;#res := 1; 886733#factFINAL assume true; 886728#factEXIT >#76#return; 885545#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 885546#$Ultimate##0 ~n := #in~n; 885738#L25 assume !(~n <= 0); 885678#L26 call #t~ret0 := fact(~n - 1);< 885679#$Ultimate##0 ~n := #in~n; 885737#L25 assume !(~n <= 0); 885676#L26 call #t~ret0 := fact(~n - 1);< 885735#$Ultimate##0 ~n := #in~n; 885744#L25 assume ~n <= 0;#res := 1; 885742#factFINAL assume true; 885741#factEXIT >#66#return; 885740#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 885739#factFINAL assume true; 885732#factEXIT >#66#return; 885734#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 886724#factFINAL assume true; 885544#factEXIT >#78#return; 885543#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 885542#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 885541#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 885540#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 885538#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 885536#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 885537#$Ultimate##0 ~n := #in~n; 885603#L25 assume !(~n <= 0); 885587#L26 call #t~ret0 := fact(~n - 1);< 885589#$Ultimate##0 ~n := #in~n; 885614#L25 assume !(~n <= 0); 885588#L26 call #t~ret0 := fact(~n - 1);< 885613#$Ultimate##0 ~n := #in~n; 885614#L25 assume !(~n <= 0); 885588#L26 call #t~ret0 := fact(~n - 1);< 885613#$Ultimate##0 ~n := #in~n; 885621#L25 assume ~n <= 0;#res := 1; 885619#factFINAL assume true; 885618#factEXIT >#66#return; 885617#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 885616#factFINAL assume true; 885612#factEXIT >#66#return; 885610#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 885609#factFINAL assume true; 885586#factEXIT >#66#return; 885584#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 885582#factFINAL assume true; 885535#factEXIT >#74#return; 885532#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 885533#$Ultimate##0 ~n := #in~n; 885622#L25 assume ~n <= 0;#res := 1; 885620#factFINAL assume true; 885531#factEXIT >#76#return; 881984#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 885530#$Ultimate##0 ~n := #in~n; 885745#L25 assume !(~n <= 0); 881926#L26 call #t~ret0 := fact(~n - 1);< 885630#$Ultimate##0 ~n := #in~n; 885646#L25 assume !(~n <= 0); 881927#L26 call #t~ret0 := fact(~n - 1);< 885640#$Ultimate##0 ~n := #in~n; 885646#L25 assume !(~n <= 0); 881927#L26 call #t~ret0 := fact(~n - 1);< 885640#$Ultimate##0 ~n := #in~n; 885769#L25 assume ~n <= 0;#res := 1; 885768#factFINAL assume true; 885639#factEXIT >#66#return; 885637#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 885636#factFINAL assume true; 885634#factEXIT >#66#return; 885633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 885629#factFINAL assume true; 885626#factEXIT >#66#return; 881930#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 881985#factFINAL assume true; 885529#factEXIT >#78#return; 885502#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 885501#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 885500#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 885498#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 885497#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 885496#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 885495#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 884074#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 884021#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 884025#$Ultimate##0 ~n := #in~n; 884073#L25 assume !(~n <= 0); 884041#L26 call #t~ret0 := fact(~n - 1);< 884072#$Ultimate##0 ~n := #in~n; 884666#L25 assume ~n <= 0;#res := 1; 884541#factFINAL assume true; 884522#factEXIT >#66#return; 884530#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 884725#factFINAL assume true; 884723#factEXIT >#68#return; 884601#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 884016#$Ultimate##0 ~n := #in~n; 884726#L25 assume ~n <= 0;#res := 1; 884721#factFINAL assume true; 884600#factEXIT >#70#return; 884542#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 884787#$Ultimate##0 ~n := #in~n; 884786#L25 assume !(~n <= 0); 884045#L26 call #t~ret0 := fact(~n - 1);< 884396#$Ultimate##0 ~n := #in~n; 884666#L25 assume ~n <= 0;#res := 1; 884541#factFINAL assume true; 884522#factEXIT >#66#return; 884531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 884806#factFINAL assume true; 884804#factEXIT >#72#return; 884802#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 884800#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 884796#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 884792#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 884791#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 884544#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 884553#$Ultimate##0 ~n := #in~n; 884551#L25 assume !(~n <= 0); 884047#L26 call #t~ret0 := fact(~n - 1);< 884396#$Ultimate##0 ~n := #in~n; 884666#L25 assume ~n <= 0;#res := 1; 884541#factFINAL assume true; 884522#factEXIT >#66#return; 884529#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 884620#factFINAL assume true; 884619#factEXIT >#68#return; 884500#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 884517#$Ultimate##0 ~n := #in~n; 884793#L25 assume !(~n <= 0); 884523#L26 call #t~ret0 := fact(~n - 1);< 884533#$Ultimate##0 ~n := #in~n; 884666#L25 assume ~n <= 0;#res := 1; 884541#factFINAL assume true; 884522#factEXIT >#66#return; 884527#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 884617#factFINAL assume true; 884497#factEXIT >#70#return; 884484#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 884495#$Ultimate##0 ~n := #in~n; 884612#L25 assume ~n <= 0;#res := 1; 884610#factFINAL assume true; 884481#factEXIT >#72#return; 884479#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 884477#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 884474#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 884473#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 884472#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 884424#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 884425#$Ultimate##0 ~n := #in~n; 884462#L25 assume !(~n <= 0); 884059#L26 call #t~ret0 := fact(~n - 1);< 884459#$Ultimate##0 ~n := #in~n; 884761#L25 assume !(~n <= 0); 884060#L26 call #t~ret0 := fact(~n - 1);< 884755#$Ultimate##0 ~n := #in~n; 884114#L25 assume ~n <= 0;#res := 1; 884113#factFINAL assume true; 884095#factEXIT >#66#return; 884094#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 884082#factFINAL assume true; 884033#factEXIT >#66#return; 884071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 884471#factFINAL assume true; 884423#factEXIT >#74#return; 884327#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 884402#$Ultimate##0 ~n := #in~n; 884535#L25 assume !(~n <= 0); 884039#L26 call #t~ret0 := fact(~n - 1);< 884072#$Ultimate##0 ~n := #in~n; 884666#L25 assume ~n <= 0;#res := 1; 884541#factFINAL assume true; 884522#factEXIT >#66#return; 884520#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 884426#factFINAL assume true; 884397#factEXIT >#76#return; 884336#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 884421#$Ultimate##0 ~n := #in~n; 884668#L25 assume !(~n <= 0); 884525#L26 call #t~ret0 := fact(~n - 1);< 884533#$Ultimate##0 ~n := #in~n; 884666#L25 assume ~n <= 0;#res := 1; 884541#factFINAL assume true; 884522#factEXIT >#66#return; 884520#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 884426#factFINAL assume true; 884397#factEXIT >#78#return; 884385#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 884381#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 884379#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 884378#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 884269#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 884215#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 884248#$Ultimate##0 ~n := #in~n; 884614#L25 assume !(~n <= 0); 884265#L26 call #t~ret0 := fact(~n - 1);< 884613#$Ultimate##0 ~n := #in~n; 884611#L25 assume !(~n <= 0); 884363#L26 call #t~ret0 := fact(~n - 1);< 884439#$Ultimate##0 ~n := #in~n; 884611#L25 assume !(~n <= 0); 884363#L26 call #t~ret0 := fact(~n - 1);< 884439#$Ultimate##0 ~n := #in~n; 884443#L25 assume ~n <= 0;#res := 1; 884440#factFINAL assume true; 884436#factEXIT >#66#return; 884431#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 884419#factFINAL assume true; 884411#factEXIT >#66#return; 884409#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 884405#factFINAL assume true; 884354#factEXIT >#66#return; 884271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 884249#factFINAL assume true; 884243#factEXIT >#74#return; 884198#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 884242#$Ultimate##0 ~n := #in~n; 884395#L25 assume !(~n <= 0); 884263#L26 call #t~ret0 := fact(~n - 1);< 884384#$Ultimate##0 ~n := #in~n; 884386#L25 assume ~n <= 0;#res := 1; 884279#factFINAL assume true; 884258#factEXIT >#66#return; 884247#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 884241#factFINAL assume true; 884238#factEXIT >#76#return; 884187#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 884251#$Ultimate##0 ~n := #in~n; 884410#L25 assume !(~n <= 0); 884262#L26 call #t~ret0 := fact(~n - 1);< 884408#$Ultimate##0 ~n := #in~n; 884407#L25 assume !(~n <= 0); 884365#L26 call #t~ret0 := fact(~n - 1);< 884406#$Ultimate##0 ~n := #in~n; 884443#L25 assume ~n <= 0;#res := 1; 884440#factFINAL assume true; 884436#factEXIT >#66#return; 884431#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 884419#factFINAL assume true; 884411#factEXIT >#66#return; 884413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 884232#factFINAL assume true; 884183#factEXIT >#78#return; 884181#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 884179#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 884178#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 884177#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 884172#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 884170#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 884168#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 884166#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 884023#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 884025#$Ultimate##0 ~n := #in~n; 884073#L25 assume !(~n <= 0); 884041#L26 call #t~ret0 := fact(~n - 1);< 884072#$Ultimate##0 ~n := #in~n; 886767#L25 assume !(~n <= 0); 884049#L26 call #t~ret0 := fact(~n - 1);< 884098#$Ultimate##0 ~n := #in~n; 884114#L25 assume ~n <= 0;#res := 1; 884113#factFINAL assume true; 884095#factEXIT >#66#return; 884094#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 884082#factFINAL assume true; 884033#factEXIT >#66#return; 884032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 884028#factFINAL assume true; 884017#factEXIT >#68#return; 884007#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 884013#$Ultimate##0 ~n := #in~n; 884110#L25 assume ~n <= 0;#res := 1; 884104#factFINAL assume true; 884006#factEXIT >#70#return; 883995#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 884005#$Ultimate##0 ~n := #in~n; 884112#L25 assume !(~n <= 0); 883837#L26 call #t~ret0 := fact(~n - 1);< 883848#$Ultimate##0 ~n := #in~n; 886966#L25 assume !(~n <= 0); 883920#L26 call #t~ret0 := fact(~n - 1);< 883921#$Ultimate##0 ~n := #in~n; 883983#L25 assume ~n <= 0;#res := 1; 883982#factFINAL assume true; 883919#factEXIT >#66#return; 883918#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883873#factFINAL assume true; 883826#factEXIT >#66#return; 883846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 884100#factFINAL assume true; 883993#factEXIT >#72#return; 884003#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 884160#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 884159#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 884157#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 884155#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 883945#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 883956#$Ultimate##0 ~n := #in~n; 884080#L25 assume !(~n <= 0); 883838#L26 call #t~ret0 := fact(~n - 1);< 883848#$Ultimate##0 ~n := #in~n; 886966#L25 assume !(~n <= 0); 883920#L26 call #t~ret0 := fact(~n - 1);< 883921#$Ultimate##0 ~n := #in~n; 883983#L25 assume ~n <= 0;#res := 1; 883982#factFINAL assume true; 883919#factEXIT >#66#return; 883918#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883873#factFINAL assume true; 883826#factEXIT >#66#return; 883847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883960#factFINAL assume true; 883938#factEXIT >#68#return; 883953#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 883977#$Ultimate##0 ~n := #in~n; 885526#L25 assume !(~n <= 0); 883855#L26 call #t~ret0 := fact(~n - 1);< 883865#$Ultimate##0 ~n := #in~n; 883915#L25 assume ~n <= 0;#res := 1; 883905#factFINAL assume true; 883852#factEXIT >#66#return; 883861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883986#factFINAL assume true; 883965#factEXIT >#70#return; 883969#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 883977#$Ultimate##0 ~n := #in~n; 885526#L25 assume !(~n <= 0); 883855#L26 call #t~ret0 := fact(~n - 1);< 883865#$Ultimate##0 ~n := #in~n; 883915#L25 assume ~n <= 0;#res := 1; 883905#factFINAL assume true; 883852#factEXIT >#66#return; 883861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883986#factFINAL assume true; 883965#factEXIT >#72#return; 883975#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 884152#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 884151#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 884149#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 884147#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 883944#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 883956#$Ultimate##0 ~n := #in~n; 884080#L25 assume !(~n <= 0); 883838#L26 call #t~ret0 := fact(~n - 1);< 883848#$Ultimate##0 ~n := #in~n; 886966#L25 assume !(~n <= 0); 883920#L26 call #t~ret0 := fact(~n - 1);< 883921#$Ultimate##0 ~n := #in~n; 883983#L25 assume ~n <= 0;#res := 1; 883982#factFINAL assume true; 883919#factEXIT >#66#return; 883918#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883873#factFINAL assume true; 883826#factEXIT >#66#return; 883847#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883960#factFINAL assume true; 883938#factEXIT >#68#return; 883901#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 883902#$Ultimate##0 ~n := #in~n; 883914#L25 assume !(~n <= 0); 883801#L26 call #t~ret0 := fact(~n - 1);< 883849#$Ultimate##0 ~n := #in~n; 884030#L25 assume !(~n <= 0); 883833#L26 call #t~ret0 := fact(~n - 1);< 883922#$Ultimate##0 ~n := #in~n; 883983#L25 assume ~n <= 0;#res := 1; 883982#factFINAL assume true; 883919#factEXIT >#66#return; 883918#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883873#factFINAL assume true; 883826#factEXIT >#66#return; 883845#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883912#factFINAL assume true; 883895#factEXIT >#70#return; 883882#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 883893#$Ultimate##0 ~n := #in~n; 883981#L25 assume ~n <= 0;#res := 1; 883917#factFINAL assume true; 883881#factEXIT >#72#return; 883890#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 884143#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 884142#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 884139#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 884135#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 883646#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 883649#$Ultimate##0 ~n := #in~n; 883668#L25 assume !(~n <= 0); 883589#L26 call #t~ret0 := fact(~n - 1);< 883600#$Ultimate##0 ~n := #in~n; 883621#L25 assume !(~n <= 0); 883591#L26 call #t~ret0 := fact(~n - 1);< 883617#$Ultimate##0 ~n := #in~n; 883621#L25 assume !(~n <= 0); 883591#L26 call #t~ret0 := fact(~n - 1);< 883617#$Ultimate##0 ~n := #in~n; 883623#L25 assume ~n <= 0;#res := 1; 883619#factFINAL assume true; 883614#factEXIT >#66#return; 883610#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883613#factFINAL assume true; 883683#factEXIT >#66#return; 883681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883602#factFINAL assume true; 883606#factEXIT >#66#return; 883654#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883651#factFINAL assume true; 883645#factEXIT >#74#return; 883561#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 883562#$Ultimate##0 ~n := #in~n; 883641#L25 assume !(~n <= 0); 883604#L26 call #t~ret0 := fact(~n - 1);< 883625#$Ultimate##0 ~n := #in~n; 883620#L25 assume !(~n <= 0); 883612#L26 call #t~ret0 := fact(~n - 1);< 883616#$Ultimate##0 ~n := #in~n; 883623#L25 assume ~n <= 0;#res := 1; 883619#factFINAL assume true; 883614#factEXIT >#66#return; 883610#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883613#factFINAL assume true; 883683#factEXIT >#66#return; 883684#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883984#factFINAL assume true; 883978#factEXIT >#76#return; 883544#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 883964#$Ultimate##0 ~n := #in~n; 883962#L25 assume !(~n <= 0); 883578#L26 call #t~ret0 := fact(~n - 1);< 883580#$Ultimate##0 ~n := #in~n; 883609#L25 assume ~n <= 0;#res := 1; 883601#factFINAL assume true; 883569#factEXIT >#66#return; 883566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883560#factFINAL assume true; 883543#factEXIT >#78#return; 883542#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 887000#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 886999#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 886998#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 886997#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 886996#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 886995#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 886994#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 883437#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 881947#$Ultimate##0 ~n := #in~n; 883436#L25 assume !(~n <= 0); 882579#L26 call #t~ret0 := fact(~n - 1);< 886992#$Ultimate##0 ~n := #in~n; 886991#L25 assume !(~n <= 0); 882283#L26 call #t~ret0 := fact(~n - 1);< 886989#$Ultimate##0 ~n := #in~n; 886990#L25 assume !(~n <= 0); 882314#L26 call #t~ret0 := fact(~n - 1);< 887010#$Ultimate##0 ~n := #in~n; 887009#L25 assume !(~n <= 0); 882328#L26 call #t~ret0 := fact(~n - 1);< 882355#$Ultimate##0 ~n := #in~n; 886987#L25 assume !(~n <= 0); 882352#L26 call #t~ret0 := fact(~n - 1);< 882354#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883510#factFINAL assume true; 883509#factEXIT >#68#return; 882889#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882897#$Ultimate##0 ~n := #in~n; 883330#L25 assume ~n <= 0;#res := 1; 882900#factFINAL assume true; 882882#factEXIT >#70#return; 882591#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882598#$Ultimate##0 ~n := #in~n; 882596#L25 assume !(~n <= 0); 882247#L26 call #t~ret0 := fact(~n - 1);< 882370#$Ultimate##0 ~n := #in~n; 882369#L25 assume !(~n <= 0); 882246#L26 call #t~ret0 := fact(~n - 1);< 882367#$Ultimate##0 ~n := #in~n; 882365#L25 assume !(~n <= 0); 882242#L26 call #t~ret0 := fact(~n - 1);< 882322#$Ultimate##0 ~n := #in~n; 882360#L25 assume !(~n <= 0); 882259#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882584#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883521#factFINAL assume true; 883520#factEXIT >#72#return; 882873#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 883516#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 883514#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 883515#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 883424#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882665#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882667#$Ultimate##0 ~n := #in~n; 883334#L25 assume !(~n <= 0); 882301#L26 call #t~ret0 := fact(~n - 1);< 882277#$Ultimate##0 ~n := #in~n; 886985#L25 assume !(~n <= 0); 882279#L26 call #t~ret0 := fact(~n - 1);< 882300#$Ultimate##0 ~n := #in~n; 886988#L25 assume !(~n <= 0); 881989#L26 call #t~ret0 := fact(~n - 1);< 881996#$Ultimate##0 ~n := #in~n; 881988#L25 assume !(~n <= 0); 881990#L26 call #t~ret0 := fact(~n - 1);< 882331#$Ultimate##0 ~n := #in~n; 886987#L25 assume !(~n <= 0); 882352#L26 call #t~ret0 := fact(~n - 1);< 882354#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883321#factFINAL assume true; 882654#factEXIT >#68#return; 882605#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882625#$Ultimate##0 ~n := #in~n; 883449#L25 assume !(~n <= 0); 883206#L26 call #t~ret0 := fact(~n - 1);< 883209#$Ultimate##0 ~n := #in~n; 883224#L25 assume ~n <= 0;#res := 1; 883210#factFINAL assume true; 883205#factEXIT >#66#return; 883208#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882626#factFINAL assume true; 882604#factEXIT >#70#return; 882620#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882723#$Ultimate##0 ~n := #in~n; 883380#L25 assume !(~n <= 0); 882286#L26 call #t~ret0 := fact(~n - 1);< 887013#$Ultimate##0 ~n := #in~n; 887012#L25 assume !(~n <= 0); 882315#L26 call #t~ret0 := fact(~n - 1);< 887011#$Ultimate##0 ~n := #in~n; 887009#L25 assume !(~n <= 0); 882328#L26 call #t~ret0 := fact(~n - 1);< 882355#$Ultimate##0 ~n := #in~n; 886987#L25 assume !(~n <= 0); 882352#L26 call #t~ret0 := fact(~n - 1);< 882354#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882292#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883324#factFINAL assume true; 882701#factEXIT >#72#return; 882699#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 882700#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 882694#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 882695#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 882690#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882664#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882667#$Ultimate##0 ~n := #in~n; 883334#L25 assume !(~n <= 0); 882301#L26 call #t~ret0 := fact(~n - 1);< 882277#$Ultimate##0 ~n := #in~n; 886985#L25 assume !(~n <= 0); 882279#L26 call #t~ret0 := fact(~n - 1);< 882300#$Ultimate##0 ~n := #in~n; 886988#L25 assume !(~n <= 0); 881989#L26 call #t~ret0 := fact(~n - 1);< 881996#$Ultimate##0 ~n := #in~n; 881988#L25 assume !(~n <= 0); 881990#L26 call #t~ret0 := fact(~n - 1);< 882331#$Ultimate##0 ~n := #in~n; 886987#L25 assume !(~n <= 0); 882352#L26 call #t~ret0 := fact(~n - 1);< 882354#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883321#factFINAL assume true; 882654#factEXIT >#68#return; 882364#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882401#$Ultimate##0 ~n := #in~n; 882362#L25 assume !(~n <= 0); 882255#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882330#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883322#factFINAL assume true; 882668#factEXIT >#70#return; 882320#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882651#$Ultimate##0 ~n := #in~n; 883326#L25 assume !(~n <= 0); 881991#L26 call #t~ret0 := fact(~n - 1);< 881996#$Ultimate##0 ~n := #in~n; 881988#L25 assume !(~n <= 0); 881990#L26 call #t~ret0 := fact(~n - 1);< 882331#$Ultimate##0 ~n := #in~n; 886987#L25 assume !(~n <= 0); 882352#L26 call #t~ret0 := fact(~n - 1);< 882354#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882317#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882649#factFINAL assume true; 882629#factEXIT >#72#return; 882641#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 882741#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 882739#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 882738#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 882737#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882658#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882667#$Ultimate##0 ~n := #in~n; 883334#L25 assume !(~n <= 0); 882301#L26 call #t~ret0 := fact(~n - 1);< 882277#$Ultimate##0 ~n := #in~n; 886985#L25 assume !(~n <= 0); 882279#L26 call #t~ret0 := fact(~n - 1);< 882300#$Ultimate##0 ~n := #in~n; 886988#L25 assume !(~n <= 0); 881989#L26 call #t~ret0 := fact(~n - 1);< 881996#$Ultimate##0 ~n := #in~n; 881988#L25 assume !(~n <= 0); 881990#L26 call #t~ret0 := fact(~n - 1);< 882331#$Ultimate##0 ~n := #in~n; 886987#L25 assume !(~n <= 0); 882352#L26 call #t~ret0 := fact(~n - 1);< 882354#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883321#factFINAL assume true; 882654#factEXIT >#68#return; 882144#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882648#$Ultimate##0 ~n := #in~n; 883329#L25 assume !(~n <= 0); 882248#L26 call #t~ret0 := fact(~n - 1);< 882322#$Ultimate##0 ~n := #in~n; 882360#L25 assume !(~n <= 0); 882259#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882317#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882649#factFINAL assume true; 882629#factEXIT >#70#return; 882343#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882393#$Ultimate##0 ~n := #in~n; 882394#L25 assume !(~n <= 0); 882327#L26 call #t~ret0 := fact(~n - 1);< 882345#$Ultimate##0 ~n := #in~n; 887007#L25 assume !(~n <= 0); 882326#L26 call #t~ret0 := fact(~n - 1);< 882355#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882330#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883322#factFINAL assume true; 882668#factEXIT >#72#return; 882671#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 882736#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 882735#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 882734#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 882733#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882662#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882667#$Ultimate##0 ~n := #in~n; 883334#L25 assume !(~n <= 0); 882301#L26 call #t~ret0 := fact(~n - 1);< 882277#$Ultimate##0 ~n := #in~n; 886985#L25 assume !(~n <= 0); 882279#L26 call #t~ret0 := fact(~n - 1);< 882300#$Ultimate##0 ~n := #in~n; 886988#L25 assume !(~n <= 0); 881989#L26 call #t~ret0 := fact(~n - 1);< 881996#$Ultimate##0 ~n := #in~n; 881988#L25 assume !(~n <= 0); 881990#L26 call #t~ret0 := fact(~n - 1);< 882331#$Ultimate##0 ~n := #in~n; 886987#L25 assume !(~n <= 0); 882352#L26 call #t~ret0 := fact(~n - 1);< 882354#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883321#factFINAL assume true; 882654#factEXIT >#68#return; 882188#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882648#$Ultimate##0 ~n := #in~n; 883329#L25 assume !(~n <= 0); 882248#L26 call #t~ret0 := fact(~n - 1);< 882322#$Ultimate##0 ~n := #in~n; 882360#L25 assume !(~n <= 0); 882259#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882292#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883324#factFINAL assume true; 882701#factEXIT >#70#return; 882606#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882732#$Ultimate##0 ~n := #in~n; 883446#L25 assume !(~n <= 0); 882076#L26 call #t~ret0 := fact(~n - 1);< 883211#$Ultimate##0 ~n := #in~n; 883224#L25 assume ~n <= 0;#res := 1; 883210#factFINAL assume true; 883205#factEXIT >#66#return; 883208#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882626#factFINAL assume true; 882604#factEXIT >#72#return; 882613#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 882731#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 882730#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 882729#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 882728#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882657#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882667#$Ultimate##0 ~n := #in~n; 883334#L25 assume !(~n <= 0); 882301#L26 call #t~ret0 := fact(~n - 1);< 882277#$Ultimate##0 ~n := #in~n; 886985#L25 assume !(~n <= 0); 882279#L26 call #t~ret0 := fact(~n - 1);< 882300#$Ultimate##0 ~n := #in~n; 886988#L25 assume !(~n <= 0); 881989#L26 call #t~ret0 := fact(~n - 1);< 881996#$Ultimate##0 ~n := #in~n; 881988#L25 assume !(~n <= 0); 881990#L26 call #t~ret0 := fact(~n - 1);< 882331#$Ultimate##0 ~n := #in~n; 886987#L25 assume !(~n <= 0); 882352#L26 call #t~ret0 := fact(~n - 1);< 882354#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883321#factFINAL assume true; 882654#factEXIT >#68#return; 882120#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882648#$Ultimate##0 ~n := #in~n; 883329#L25 assume !(~n <= 0); 882248#L26 call #t~ret0 := fact(~n - 1);< 882322#$Ultimate##0 ~n := #in~n; 882360#L25 assume !(~n <= 0); 882259#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882727#factFINAL assume true; 882078#factEXIT >#70#return; 882041#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882077#$Ultimate##0 ~n := #in~n; 882075#L25 assume ~n <= 0;#res := 1; 882074#factFINAL assume true; 882007#factEXIT >#72#return; 882072#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 883113#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 883111#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 883109#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 883108#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 881957#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 881913#$Ultimate##0 ~n := #in~n; 881987#L25 assume !(~n <= 0); 881956#L26 call #t~ret0 := fact(~n - 1);< 881961#$Ultimate##0 ~n := #in~n; 883078#L25 assume !(~n <= 0); 883071#L26 call #t~ret0 := fact(~n - 1);< 883075#$Ultimate##0 ~n := #in~n; 883072#L25 assume !(~n <= 0); 883035#L26 call #t~ret0 := fact(~n - 1);< 883070#$Ultimate##0 ~n := #in~n; 883048#L25 assume !(~n <= 0); 882998#L26 call #t~ret0 := fact(~n - 1);< 883004#$Ultimate##0 ~n := #in~n; 883015#L25 assume !(~n <= 0); 882999#L26 call #t~ret0 := fact(~n - 1);< 883012#$Ultimate##0 ~n := #in~n; 883015#L25 assume !(~n <= 0); 882999#L26 call #t~ret0 := fact(~n - 1);< 883012#$Ultimate##0 ~n := #in~n; 883016#L25 assume ~n <= 0;#res := 1; 883013#factFINAL assume true; 883011#factEXIT >#66#return; 883009#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882996#factFINAL assume true; 883002#factEXIT >#66#return; 883031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883100#factFINAL assume true; 883099#factEXIT >#66#return; 883098#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883097#factFINAL assume true; 883095#factEXIT >#66#return; 883093#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883091#factFINAL assume true; 883087#factEXIT >#66#return; 883088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883106#factFINAL assume true; 883103#factEXIT >#66#return; 883102#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883101#factFINAL assume true; 883069#factEXIT >#74#return; 883025#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 883030#$Ultimate##0 ~n := #in~n; 883028#L25 assume !(~n <= 0); 883001#L26 call #t~ret0 := fact(~n - 1);< 883018#$Ultimate##0 ~n := #in~n; 883015#L25 assume !(~n <= 0); 882999#L26 call #t~ret0 := fact(~n - 1);< 883012#$Ultimate##0 ~n := #in~n; 883015#L25 assume !(~n <= 0); 882999#L26 call #t~ret0 := fact(~n - 1);< 883012#$Ultimate##0 ~n := #in~n; 883015#L25 assume !(~n <= 0); 882999#L26 call #t~ret0 := fact(~n - 1);< 883012#$Ultimate##0 ~n := #in~n; 883015#L25 assume !(~n <= 0); 882999#L26 call #t~ret0 := fact(~n - 1);< 883012#$Ultimate##0 ~n := #in~n; 883016#L25 assume ~n <= 0;#res := 1; 883013#factFINAL assume true; 883011#factEXIT >#66#return; 883009#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882996#factFINAL assume true; 883002#factEXIT >#66#return; 883031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883100#factFINAL assume true; 883099#factEXIT >#66#return; 883098#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883097#factFINAL assume true; 883095#factEXIT >#66#return; 883093#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883091#factFINAL assume true; 883087#factEXIT >#66#return; 883084#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883067#factFINAL assume true; 883054#factEXIT >#76#return; 882936#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 883034#$Ultimate##0 ~n := #in~n; 883049#L25 assume !(~n <= 0); 882990#L26 call #t~ret0 := fact(~n - 1);< 883010#$Ultimate##0 ~n := #in~n; 883007#L25 assume ~n <= 0;#res := 1; 883008#factFINAL assume true; 882988#factEXIT >#66#return; 882991#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883068#factFINAL assume true; 882934#factEXIT >#78#return; 882932#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 882930#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 882928#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 882926#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 882924#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 882922#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 882920#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 882918#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882904#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882916#$Ultimate##0 ~n := #in~n; 882912#L25 assume !(~n <= 0); 882233#L26 call #t~ret0 := fact(~n - 1);< 882531#$Ultimate##0 ~n := #in~n; 882577#L25 assume !(~n <= 0); 882241#L26 call #t~ret0 := fact(~n - 1);< 882545#$Ultimate##0 ~n := #in~n; 882535#L25 assume !(~n <= 0); 882239#L26 call #t~ret0 := fact(~n - 1);< 882530#$Ultimate##0 ~n := #in~n; 883320#L25 assume !(~n <= 0); 882238#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882272#factFINAL assume true; 882232#factEXIT >#66#return; 882264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882910#factFINAL assume true; 882902#factEXIT >#68#return; 882886#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882897#$Ultimate##0 ~n := #in~n; 883330#L25 assume ~n <= 0;#res := 1; 882900#factFINAL assume true; 882882#factEXIT >#70#return; 882547#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882880#$Ultimate##0 ~n := #in~n; 883318#L25 assume !(~n <= 0); 882253#L26 call #t~ret0 := fact(~n - 1);< 882531#$Ultimate##0 ~n := #in~n; 882577#L25 assume !(~n <= 0); 882241#L26 call #t~ret0 := fact(~n - 1);< 882545#$Ultimate##0 ~n := #in~n; 882535#L25 assume !(~n <= 0); 882239#L26 call #t~ret0 := fact(~n - 1);< 882530#$Ultimate##0 ~n := #in~n; 883320#L25 assume !(~n <= 0); 882238#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882954#factFINAL assume true; 882871#factEXIT >#72#return; 882869#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 882867#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 882863#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 882859#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 882855#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882500#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882537#$Ultimate##0 ~n := #in~n; 882532#L25 assume !(~n <= 0); 882244#L26 call #t~ret0 := fact(~n - 1);< 882389#$Ultimate##0 ~n := #in~n; 882387#L25 assume !(~n <= 0); 882256#L26 call #t~ret0 := fact(~n - 1);< 882378#$Ultimate##0 ~n := #in~n; 882376#L25 assume !(~n <= 0); 882250#L26 call #t~ret0 := fact(~n - 1);< 882370#$Ultimate##0 ~n := #in~n; 882369#L25 assume !(~n <= 0); 882246#L26 call #t~ret0 := fact(~n - 1);< 882367#$Ultimate##0 ~n := #in~n; 882365#L25 assume !(~n <= 0); 882242#L26 call #t~ret0 := fact(~n - 1);< 882322#$Ultimate##0 ~n := #in~n; 882360#L25 assume !(~n <= 0); 882259#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882272#factFINAL assume true; 882232#factEXIT >#66#return; 882268#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882870#factFINAL assume true; 882745#factEXIT >#68#return; 882017#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882627#$Ultimate##0 ~n := #in~n; 887008#L25 assume !(~n <= 0); 883206#L26 call #t~ret0 := fact(~n - 1);< 883209#$Ultimate##0 ~n := #in~n; 883224#L25 assume ~n <= 0;#res := 1; 883210#factFINAL assume true; 883205#factEXIT >#66#return; 883208#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882626#factFINAL assume true; 882604#factEXIT >#70#return; 882222#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882379#$Ultimate##0 ~n := #in~n; 882377#L25 assume !(~n <= 0); 882251#L26 call #t~ret0 := fact(~n - 1);< 882370#$Ultimate##0 ~n := #in~n; 882369#L25 assume !(~n <= 0); 882246#L26 call #t~ret0 := fact(~n - 1);< 882367#$Ultimate##0 ~n := #in~n; 882365#L25 assume !(~n <= 0); 882242#L26 call #t~ret0 := fact(~n - 1);< 882322#$Ultimate##0 ~n := #in~n; 882360#L25 assume !(~n <= 0); 882259#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882269#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883297#factFINAL assume true; 882412#factEXIT >#72#return; 882440#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 882853#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 882849#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 882845#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 882844#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882471#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882537#$Ultimate##0 ~n := #in~n; 882532#L25 assume !(~n <= 0); 882244#L26 call #t~ret0 := fact(~n - 1);< 882389#$Ultimate##0 ~n := #in~n; 882387#L25 assume !(~n <= 0); 882256#L26 call #t~ret0 := fact(~n - 1);< 882378#$Ultimate##0 ~n := #in~n; 882376#L25 assume !(~n <= 0); 882250#L26 call #t~ret0 := fact(~n - 1);< 882370#$Ultimate##0 ~n := #in~n; 882369#L25 assume !(~n <= 0); 882246#L26 call #t~ret0 := fact(~n - 1);< 882367#$Ultimate##0 ~n := #in~n; 882365#L25 assume !(~n <= 0); 882242#L26 call #t~ret0 := fact(~n - 1);< 882322#$Ultimate##0 ~n := #in~n; 882360#L25 assume !(~n <= 0); 882259#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882272#factFINAL assume true; 882232#factEXIT >#66#return; 882268#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882870#factFINAL assume true; 882745#factEXIT >#68#return; 882062#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882073#$Ultimate##0 ~n := #in~n; 882653#L25 assume !(~n <= 0); 882254#L26 call #t~ret0 := fact(~n - 1);< 883212#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882330#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883322#factFINAL assume true; 882668#factEXIT >#70#return; 882128#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882368#$Ultimate##0 ~n := #in~n; 882366#L25 assume !(~n <= 0); 882257#L26 call #t~ret0 := fact(~n - 1);< 882322#$Ultimate##0 ~n := #in~n; 882360#L25 assume !(~n <= 0); 882259#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882292#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883324#factFINAL assume true; 882701#factEXIT >#72#return; 882217#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 882793#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 882789#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 882785#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 882782#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882509#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882537#$Ultimate##0 ~n := #in~n; 882532#L25 assume !(~n <= 0); 882244#L26 call #t~ret0 := fact(~n - 1);< 882389#$Ultimate##0 ~n := #in~n; 882387#L25 assume !(~n <= 0); 882256#L26 call #t~ret0 := fact(~n - 1);< 882378#$Ultimate##0 ~n := #in~n; 882376#L25 assume !(~n <= 0); 882250#L26 call #t~ret0 := fact(~n - 1);< 882370#$Ultimate##0 ~n := #in~n; 882369#L25 assume !(~n <= 0); 882246#L26 call #t~ret0 := fact(~n - 1);< 882367#$Ultimate##0 ~n := #in~n; 882365#L25 assume !(~n <= 0); 882242#L26 call #t~ret0 := fact(~n - 1);< 882322#$Ultimate##0 ~n := #in~n; 882360#L25 assume !(~n <= 0); 882259#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882272#factFINAL assume true; 882232#factEXIT >#66#return; 882268#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882870#factFINAL assume true; 882745#factEXIT >#68#return; 882008#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882073#$Ultimate##0 ~n := #in~n; 882653#L25 assume !(~n <= 0); 882254#L26 call #t~ret0 := fact(~n - 1);< 883212#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882317#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882649#factFINAL assume true; 882629#factEXIT >#70#return; 882189#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882650#$Ultimate##0 ~n := #in~n; 883225#L25 assume !(~n <= 0); 882260#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882292#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883324#factFINAL assume true; 882701#factEXIT >#72#return; 882717#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 882781#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 882780#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 882779#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 882778#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882469#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882537#$Ultimate##0 ~n := #in~n; 882532#L25 assume !(~n <= 0); 882244#L26 call #t~ret0 := fact(~n - 1);< 882389#$Ultimate##0 ~n := #in~n; 882387#L25 assume !(~n <= 0); 882256#L26 call #t~ret0 := fact(~n - 1);< 882378#$Ultimate##0 ~n := #in~n; 882376#L25 assume !(~n <= 0); 882250#L26 call #t~ret0 := fact(~n - 1);< 882370#$Ultimate##0 ~n := #in~n; 882369#L25 assume !(~n <= 0); 882246#L26 call #t~ret0 := fact(~n - 1);< 882367#$Ultimate##0 ~n := #in~n; 882365#L25 assume !(~n <= 0); 882242#L26 call #t~ret0 := fact(~n - 1);< 882322#$Ultimate##0 ~n := #in~n; 882360#L25 assume !(~n <= 0); 882259#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882272#factFINAL assume true; 882232#factEXIT >#66#return; 882268#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882870#factFINAL assume true; 882745#factEXIT >#68#return; 882022#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882073#$Ultimate##0 ~n := #in~n; 882653#L25 assume !(~n <= 0); 882254#L26 call #t~ret0 := fact(~n - 1);< 883212#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882292#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883324#factFINAL assume true; 882701#factEXIT >#70#return; 882174#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882650#$Ultimate##0 ~n := #in~n; 883225#L25 assume !(~n <= 0); 882260#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882317#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882649#factFINAL assume true; 882629#factEXIT >#72#return; 882635#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 883249#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 883250#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 883232#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 883233#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882504#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882537#$Ultimate##0 ~n := #in~n; 882532#L25 assume !(~n <= 0); 882244#L26 call #t~ret0 := fact(~n - 1);< 882389#$Ultimate##0 ~n := #in~n; 882387#L25 assume !(~n <= 0); 882256#L26 call #t~ret0 := fact(~n - 1);< 882378#$Ultimate##0 ~n := #in~n; 882376#L25 assume !(~n <= 0); 882250#L26 call #t~ret0 := fact(~n - 1);< 882370#$Ultimate##0 ~n := #in~n; 882369#L25 assume !(~n <= 0); 882246#L26 call #t~ret0 := fact(~n - 1);< 882367#$Ultimate##0 ~n := #in~n; 882365#L25 assume !(~n <= 0); 882242#L26 call #t~ret0 := fact(~n - 1);< 882322#$Ultimate##0 ~n := #in~n; 882360#L25 assume !(~n <= 0); 882259#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882272#factFINAL assume true; 882232#factEXIT >#66#return; 882268#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882870#factFINAL assume true; 882745#factEXIT >#68#return; 882063#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882073#$Ultimate##0 ~n := #in~n; 882653#L25 assume !(~n <= 0); 882254#L26 call #t~ret0 := fact(~n - 1);< 883212#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882727#factFINAL assume true; 882078#factEXIT >#70#return; 882133#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882650#$Ultimate##0 ~n := #in~n; 883225#L25 assume !(~n <= 0); 882260#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882330#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883322#factFINAL assume true; 882668#factEXIT >#72#return; 882669#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 883344#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 883341#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 883338#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 883327#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882489#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882537#$Ultimate##0 ~n := #in~n; 882532#L25 assume !(~n <= 0); 882244#L26 call #t~ret0 := fact(~n - 1);< 882389#$Ultimate##0 ~n := #in~n; 882387#L25 assume !(~n <= 0); 882256#L26 call #t~ret0 := fact(~n - 1);< 882378#$Ultimate##0 ~n := #in~n; 882376#L25 assume !(~n <= 0); 882250#L26 call #t~ret0 := fact(~n - 1);< 882370#$Ultimate##0 ~n := #in~n; 882369#L25 assume !(~n <= 0); 882246#L26 call #t~ret0 := fact(~n - 1);< 882367#$Ultimate##0 ~n := #in~n; 882365#L25 assume !(~n <= 0); 882242#L26 call #t~ret0 := fact(~n - 1);< 882322#$Ultimate##0 ~n := #in~n; 882360#L25 assume !(~n <= 0); 882259#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882272#factFINAL assume true; 882232#factEXIT >#66#return; 882268#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882870#factFINAL assume true; 882745#factEXIT >#68#return; 882039#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882073#$Ultimate##0 ~n := #in~n; 882653#L25 assume !(~n <= 0); 882254#L26 call #t~ret0 := fact(~n - 1);< 883212#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882269#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883297#factFINAL assume true; 882412#factEXIT >#70#return; 882116#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882229#$Ultimate##0 ~n := #in~n; 882652#L25 assume !(~n <= 0); 882254#L26 call #t~ret0 := fact(~n - 1);< 883212#$Ultimate##0 ~n := #in~n; 883224#L25 assume ~n <= 0;#res := 1; 883210#factFINAL assume true; 883205#factEXIT >#66#return; 883208#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882626#factFINAL assume true; 882604#factEXIT >#72#return; 882616#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 882749#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 882748#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 882747#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 882746#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882448#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882537#$Ultimate##0 ~n := #in~n; 882532#L25 assume !(~n <= 0); 882244#L26 call #t~ret0 := fact(~n - 1);< 882389#$Ultimate##0 ~n := #in~n; 882387#L25 assume !(~n <= 0); 882256#L26 call #t~ret0 := fact(~n - 1);< 882378#$Ultimate##0 ~n := #in~n; 882376#L25 assume !(~n <= 0); 882250#L26 call #t~ret0 := fact(~n - 1);< 882370#$Ultimate##0 ~n := #in~n; 882369#L25 assume !(~n <= 0); 882246#L26 call #t~ret0 := fact(~n - 1);< 882367#$Ultimate##0 ~n := #in~n; 882365#L25 assume !(~n <= 0); 882242#L26 call #t~ret0 := fact(~n - 1);< 882322#$Ultimate##0 ~n := #in~n; 882360#L25 assume !(~n <= 0); 882259#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882519#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882516#factFINAL assume true; 882444#factEXIT >#68#return; 882219#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882220#$Ultimate##0 ~n := #in~n; 882536#L25 assume !(~n <= 0); 882249#L26 call #t~ret0 := fact(~n - 1);< 882529#$Ultimate##0 ~n := #in~n; 882689#L25 assume !(~n <= 0); 882258#L26 call #t~ret0 := fact(~n - 1);< 882531#$Ultimate##0 ~n := #in~n; 882577#L25 assume !(~n <= 0); 882241#L26 call #t~ret0 := fact(~n - 1);< 882545#$Ultimate##0 ~n := #in~n; 882535#L25 assume !(~n <= 0); 882239#L26 call #t~ret0 := fact(~n - 1);< 882530#$Ultimate##0 ~n := #in~n; 883320#L25 assume !(~n <= 0); 882238#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882269#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883297#factFINAL assume true; 882412#factEXIT >#70#return; 882045#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882073#$Ultimate##0 ~n := #in~n; 882653#L25 assume ~n <= 0;#res := 1; 882074#factFINAL assume true; 882007#factEXIT >#72#return; 881968#L30-3 [2023-02-18 08:58:48,011 INFO L750 eck$LassoCheckResult]: Loop: 881968#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 881969#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 881981#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 883477#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 883475#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 883041#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 883066#$Ultimate##0 ~n := #in~n; 883065#L25 assume !(~n <= 0); 883060#L26 call #t~ret0 := fact(~n - 1);< 883063#$Ultimate##0 ~n := #in~n; 883061#L25 assume !(~n <= 0); 883055#L26 call #t~ret0 := fact(~n - 1);< 883059#$Ultimate##0 ~n := #in~n; 883057#L25 assume !(~n <= 0); 883051#L26 call #t~ret0 := fact(~n - 1);< 883053#$Ultimate##0 ~n := #in~n; 883052#L25 assume !(~n <= 0); 883019#L26 call #t~ret0 := fact(~n - 1);< 883050#$Ultimate##0 ~n := #in~n; 883020#L25 assume !(~n <= 0); 883003#L26 call #t~ret0 := fact(~n - 1);< 883017#$Ultimate##0 ~n := #in~n; 883014#L25 assume !(~n <= 0); 882997#L26 call #t~ret0 := fact(~n - 1);< 883004#$Ultimate##0 ~n := #in~n; 883015#L25 assume !(~n <= 0); 882999#L26 call #t~ret0 := fact(~n - 1);< 883012#$Ultimate##0 ~n := #in~n; 883016#L25 assume ~n <= 0;#res := 1; 883013#factFINAL assume true; 883011#factEXIT >#66#return; 883009#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882996#factFINAL assume true; 883002#factEXIT >#66#return; 883031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883100#factFINAL assume true; 883099#factEXIT >#66#return; 883098#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883097#factFINAL assume true; 883095#factEXIT >#66#return; 883093#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883091#factFINAL assume true; 883087#factEXIT >#66#return; 883088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883106#factFINAL assume true; 883103#factEXIT >#66#return; 883104#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883459#factFINAL assume true; 883266#factEXIT >#66#return; 883265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883260#factFINAL assume true; 883036#factEXIT >#74#return; 883022#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 883030#$Ultimate##0 ~n := #in~n; 883028#L25 assume !(~n <= 0); 883001#L26 call #t~ret0 := fact(~n - 1);< 883018#$Ultimate##0 ~n := #in~n; 883015#L25 assume !(~n <= 0); 882999#L26 call #t~ret0 := fact(~n - 1);< 883012#$Ultimate##0 ~n := #in~n; 883015#L25 assume !(~n <= 0); 882999#L26 call #t~ret0 := fact(~n - 1);< 883012#$Ultimate##0 ~n := #in~n; 883015#L25 assume !(~n <= 0); 882999#L26 call #t~ret0 := fact(~n - 1);< 883012#$Ultimate##0 ~n := #in~n; 883015#L25 assume !(~n <= 0); 882999#L26 call #t~ret0 := fact(~n - 1);< 883012#$Ultimate##0 ~n := #in~n; 883015#L25 assume !(~n <= 0); 882999#L26 call #t~ret0 := fact(~n - 1);< 883012#$Ultimate##0 ~n := #in~n; 883016#L25 assume ~n <= 0;#res := 1; 883013#factFINAL assume true; 883011#factEXIT >#66#return; 883009#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882996#factFINAL assume true; 883002#factEXIT >#66#return; 883031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883100#factFINAL assume true; 883099#factEXIT >#66#return; 883098#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883097#factFINAL assume true; 883095#factEXIT >#66#return; 883093#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883091#factFINAL assume true; 883087#factEXIT >#66#return; 883088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883106#factFINAL assume true; 883103#factEXIT >#66#return; 883102#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883101#factFINAL assume true; 883069#factEXIT >#76#return; 882937#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 883034#$Ultimate##0 ~n := #in~n; 883049#L25 assume !(~n <= 0); 882990#L26 call #t~ret0 := fact(~n - 1);< 883010#$Ultimate##0 ~n := #in~n; 883007#L25 assume ~n <= 0;#res := 1; 883008#factFINAL assume true; 882988#factEXIT >#66#return; 882991#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883068#factFINAL assume true; 882934#factEXIT >#78#return; 882938#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 883454#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 882981#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 882952#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 882949#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 882947#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 882945#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 882943#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882903#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882917#$Ultimate##0 ~n := #in~n; 882913#L25 assume !(~n <= 0); 882234#L26 call #t~ret0 := fact(~n - 1);< 882389#$Ultimate##0 ~n := #in~n; 882387#L25 assume !(~n <= 0); 882256#L26 call #t~ret0 := fact(~n - 1);< 882378#$Ultimate##0 ~n := #in~n; 882376#L25 assume !(~n <= 0); 882250#L26 call #t~ret0 := fact(~n - 1);< 882370#$Ultimate##0 ~n := #in~n; 882369#L25 assume !(~n <= 0); 882246#L26 call #t~ret0 := fact(~n - 1);< 882367#$Ultimate##0 ~n := #in~n; 882365#L25 assume !(~n <= 0); 882242#L26 call #t~ret0 := fact(~n - 1);< 882322#$Ultimate##0 ~n := #in~n; 882360#L25 assume !(~n <= 0); 882259#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882955#factFINAL assume true; 882953#factEXIT >#68#return; 882891#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882897#$Ultimate##0 ~n := #in~n; 883330#L25 assume ~n <= 0;#res := 1; 882900#factFINAL assume true; 882882#factEXIT >#70#return; 882525#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882915#$Ultimate##0 ~n := #in~n; 882911#L25 assume !(~n <= 0); 882236#L26 call #t~ret0 := fact(~n - 1);< 882529#$Ultimate##0 ~n := #in~n; 882689#L25 assume !(~n <= 0); 882258#L26 call #t~ret0 := fact(~n - 1);< 882531#$Ultimate##0 ~n := #in~n; 882577#L25 assume !(~n <= 0); 882241#L26 call #t~ret0 := fact(~n - 1);< 882545#$Ultimate##0 ~n := #in~n; 882535#L25 assume !(~n <= 0); 882239#L26 call #t~ret0 := fact(~n - 1);< 882530#$Ultimate##0 ~n := #in~n; 883320#L25 assume !(~n <= 0); 882238#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882266#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882984#factFINAL assume true; 882950#factEXIT >#72#return; 882877#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 883501#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 883500#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 883499#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 883389#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882496#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882515#$Ultimate##0 ~n := #in~n; 882533#L25 assume !(~n <= 0); 882521#L26 call #t~ret0 := fact(~n - 1);< 882523#$Ultimate##0 ~n := #in~n; 882574#L25 assume !(~n <= 0); 882296#L26 call #t~ret0 := fact(~n - 1);< 882544#$Ultimate##0 ~n := #in~n; 883378#L25 assume !(~n <= 0); 882294#L26 call #t~ret0 := fact(~n - 1);< 882277#$Ultimate##0 ~n := #in~n; 886985#L25 assume !(~n <= 0); 882279#L26 call #t~ret0 := fact(~n - 1);< 882300#$Ultimate##0 ~n := #in~n; 886988#L25 assume !(~n <= 0); 881989#L26 call #t~ret0 := fact(~n - 1);< 881996#$Ultimate##0 ~n := #in~n; 881988#L25 assume !(~n <= 0); 881990#L26 call #t~ret0 := fact(~n - 1);< 882331#$Ultimate##0 ~n := #in~n; 886987#L25 assume !(~n <= 0); 882352#L26 call #t~ret0 := fact(~n - 1);< 882354#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882519#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882516#factFINAL assume true; 882444#factEXIT >#68#return; 882514#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882625#$Ultimate##0 ~n := #in~n; 883449#L25 assume !(~n <= 0); 883206#L26 call #t~ret0 := fact(~n - 1);< 883209#$Ultimate##0 ~n := #in~n; 883224#L25 assume ~n <= 0;#res := 1; 883210#factFINAL assume true; 883205#factEXIT >#66#return; 883208#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882626#factFINAL assume true; 882604#factEXIT >#70#return; 882227#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882600#$Ultimate##0 ~n := #in~n; 882599#L25 assume !(~n <= 0); 882270#L26 call #t~ret0 := fact(~n - 1);< 882271#$Ultimate##0 ~n := #in~n; 883375#L25 assume !(~n <= 0); 882287#L26 call #t~ret0 := fact(~n - 1);< 882299#$Ultimate##0 ~n := #in~n; 883328#L25 assume !(~n <= 0); 882280#L26 call #t~ret0 := fact(~n - 1);< 882318#$Ultimate##0 ~n := #in~n; 882361#L25 assume !(~n <= 0); 882312#L26 call #t~ret0 := fact(~n - 1);< 882332#$Ultimate##0 ~n := #in~n; 882402#L25 assume !(~n <= 0); 882325#L26 call #t~ret0 := fact(~n - 1);< 882355#$Ultimate##0 ~n := #in~n; 886987#L25 assume !(~n <= 0); 882352#L26 call #t~ret0 := fact(~n - 1);< 882354#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882231#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882221#factFINAL assume true; 882228#factEXIT >#72#return; 882443#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 883494#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 883492#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 883490#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 883488#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882470#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882515#$Ultimate##0 ~n := #in~n; 882533#L25 assume !(~n <= 0); 882521#L26 call #t~ret0 := fact(~n - 1);< 882523#$Ultimate##0 ~n := #in~n; 882574#L25 assume !(~n <= 0); 882296#L26 call #t~ret0 := fact(~n - 1);< 882544#$Ultimate##0 ~n := #in~n; 883378#L25 assume !(~n <= 0); 882294#L26 call #t~ret0 := fact(~n - 1);< 882277#$Ultimate##0 ~n := #in~n; 886985#L25 assume !(~n <= 0); 882279#L26 call #t~ret0 := fact(~n - 1);< 882300#$Ultimate##0 ~n := #in~n; 886988#L25 assume !(~n <= 0); 881989#L26 call #t~ret0 := fact(~n - 1);< 881996#$Ultimate##0 ~n := #in~n; 881988#L25 assume !(~n <= 0); 881990#L26 call #t~ret0 := fact(~n - 1);< 882331#$Ultimate##0 ~n := #in~n; 886987#L25 assume !(~n <= 0); 882352#L26 call #t~ret0 := fact(~n - 1);< 882354#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882519#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882516#factFINAL assume true; 882444#factEXIT >#68#return; 882119#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882229#$Ultimate##0 ~n := #in~n; 882652#L25 assume !(~n <= 0); 882254#L26 call #t~ret0 := fact(~n - 1);< 883212#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882330#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883322#factFINAL assume true; 882668#factEXIT >#70#return; 882121#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882230#$Ultimate##0 ~n := #in~n; 883348#L25 assume !(~n <= 0); 882289#L26 call #t~ret0 := fact(~n - 1);< 882305#$Ultimate##0 ~n := #in~n; 882398#L25 assume !(~n <= 0); 882290#L26 call #t~ret0 := fact(~n - 1);< 882350#$Ultimate##0 ~n := #in~n; 882346#L25 assume !(~n <= 0); 882288#L26 call #t~ret0 := fact(~n - 1);< 882333#$Ultimate##0 ~n := #in~n; 882348#L25 assume !(~n <= 0); 882313#L26 call #t~ret0 := fact(~n - 1);< 882356#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882292#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883324#factFINAL assume true; 882701#factEXIT >#72#return; 882215#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 883486#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 883484#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 883471#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 883416#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882505#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882515#$Ultimate##0 ~n := #in~n; 882533#L25 assume !(~n <= 0); 882521#L26 call #t~ret0 := fact(~n - 1);< 882523#$Ultimate##0 ~n := #in~n; 882574#L25 assume !(~n <= 0); 882296#L26 call #t~ret0 := fact(~n - 1);< 882544#$Ultimate##0 ~n := #in~n; 883378#L25 assume !(~n <= 0); 882294#L26 call #t~ret0 := fact(~n - 1);< 882277#$Ultimate##0 ~n := #in~n; 886985#L25 assume !(~n <= 0); 882279#L26 call #t~ret0 := fact(~n - 1);< 882300#$Ultimate##0 ~n := #in~n; 886988#L25 assume !(~n <= 0); 881989#L26 call #t~ret0 := fact(~n - 1);< 881996#$Ultimate##0 ~n := #in~n; 881988#L25 assume !(~n <= 0); 881990#L26 call #t~ret0 := fact(~n - 1);< 882331#$Ultimate##0 ~n := #in~n; 886987#L25 assume !(~n <= 0); 882352#L26 call #t~ret0 := fact(~n - 1);< 882354#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882519#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882516#factFINAL assume true; 882444#factEXIT >#68#return; 882138#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882229#$Ultimate##0 ~n := #in~n; 882652#L25 assume !(~n <= 0); 882254#L26 call #t~ret0 := fact(~n - 1);< 883212#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882317#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882649#factFINAL assume true; 882629#factEXIT >#70#return; 882183#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882411#$Ultimate##0 ~n := #in~n; 882408#L25 assume !(~n <= 0); 882284#L26 call #t~ret0 := fact(~n - 1);< 882399#$Ultimate##0 ~n := #in~n; 882397#L25 assume !(~n <= 0); 882281#L26 call #t~ret0 := fact(~n - 1);< 882395#$Ultimate##0 ~n := #in~n; 882346#L25 assume !(~n <= 0); 882288#L26 call #t~ret0 := fact(~n - 1);< 882333#$Ultimate##0 ~n := #in~n; 882348#L25 assume !(~n <= 0); 882313#L26 call #t~ret0 := fact(~n - 1);< 882356#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882292#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883324#factFINAL assume true; 882701#factEXIT >#72#return; 882716#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 883410#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 883405#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 883403#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 883401#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882465#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882515#$Ultimate##0 ~n := #in~n; 882533#L25 assume !(~n <= 0); 882521#L26 call #t~ret0 := fact(~n - 1);< 882523#$Ultimate##0 ~n := #in~n; 882574#L25 assume !(~n <= 0); 882296#L26 call #t~ret0 := fact(~n - 1);< 882544#$Ultimate##0 ~n := #in~n; 883378#L25 assume !(~n <= 0); 882294#L26 call #t~ret0 := fact(~n - 1);< 882277#$Ultimate##0 ~n := #in~n; 886985#L25 assume !(~n <= 0); 882279#L26 call #t~ret0 := fact(~n - 1);< 882300#$Ultimate##0 ~n := #in~n; 886988#L25 assume !(~n <= 0); 881989#L26 call #t~ret0 := fact(~n - 1);< 881996#$Ultimate##0 ~n := #in~n; 881988#L25 assume !(~n <= 0); 881990#L26 call #t~ret0 := fact(~n - 1);< 882331#$Ultimate##0 ~n := #in~n; 886987#L25 assume !(~n <= 0); 882352#L26 call #t~ret0 := fact(~n - 1);< 882354#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882519#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882516#factFINAL assume true; 882444#factEXIT >#68#return; 882142#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882229#$Ultimate##0 ~n := #in~n; 882652#L25 assume !(~n <= 0); 882254#L26 call #t~ret0 := fact(~n - 1);< 883212#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882292#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883324#factFINAL assume true; 882701#factEXIT >#70#return; 882156#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882411#$Ultimate##0 ~n := #in~n; 882408#L25 assume !(~n <= 0); 882284#L26 call #t~ret0 := fact(~n - 1);< 882399#$Ultimate##0 ~n := #in~n; 882397#L25 assume !(~n <= 0); 882281#L26 call #t~ret0 := fact(~n - 1);< 882395#$Ultimate##0 ~n := #in~n; 882346#L25 assume !(~n <= 0); 882288#L26 call #t~ret0 := fact(~n - 1);< 882333#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882317#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882649#factFINAL assume true; 882629#factEXIT >#72#return; 882634#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 883448#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 883444#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 883442#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 883441#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882502#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882515#$Ultimate##0 ~n := #in~n; 882533#L25 assume !(~n <= 0); 882521#L26 call #t~ret0 := fact(~n - 1);< 882523#$Ultimate##0 ~n := #in~n; 882574#L25 assume !(~n <= 0); 882296#L26 call #t~ret0 := fact(~n - 1);< 882544#$Ultimate##0 ~n := #in~n; 883378#L25 assume !(~n <= 0); 882294#L26 call #t~ret0 := fact(~n - 1);< 882277#$Ultimate##0 ~n := #in~n; 886985#L25 assume !(~n <= 0); 882279#L26 call #t~ret0 := fact(~n - 1);< 882300#$Ultimate##0 ~n := #in~n; 886988#L25 assume !(~n <= 0); 881989#L26 call #t~ret0 := fact(~n - 1);< 881996#$Ultimate##0 ~n := #in~n; 881988#L25 assume !(~n <= 0); 881990#L26 call #t~ret0 := fact(~n - 1);< 882331#$Ultimate##0 ~n := #in~n; 886987#L25 assume !(~n <= 0); 882352#L26 call #t~ret0 := fact(~n - 1);< 882354#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882519#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882516#factFINAL assume true; 882444#factEXIT >#68#return; 882125#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882229#$Ultimate##0 ~n := #in~n; 882652#L25 assume !(~n <= 0); 882254#L26 call #t~ret0 := fact(~n - 1);< 883212#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882727#factFINAL assume true; 882078#factEXIT >#70#return; 882134#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882411#$Ultimate##0 ~n := #in~n; 882408#L25 assume !(~n <= 0); 882284#L26 call #t~ret0 := fact(~n - 1);< 882399#$Ultimate##0 ~n := #in~n; 882397#L25 assume !(~n <= 0); 882281#L26 call #t~ret0 := fact(~n - 1);< 882395#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882330#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883322#factFINAL assume true; 882668#factEXIT >#72#return; 882670#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 883430#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 883428#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 883427#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 883323#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882488#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882515#$Ultimate##0 ~n := #in~n; 882533#L25 assume !(~n <= 0); 882521#L26 call #t~ret0 := fact(~n - 1);< 882523#$Ultimate##0 ~n := #in~n; 882574#L25 assume !(~n <= 0); 882296#L26 call #t~ret0 := fact(~n - 1);< 882544#$Ultimate##0 ~n := #in~n; 883378#L25 assume !(~n <= 0); 882294#L26 call #t~ret0 := fact(~n - 1);< 882277#$Ultimate##0 ~n := #in~n; 886985#L25 assume !(~n <= 0); 882279#L26 call #t~ret0 := fact(~n - 1);< 882300#$Ultimate##0 ~n := #in~n; 886988#L25 assume !(~n <= 0); 881989#L26 call #t~ret0 := fact(~n - 1);< 881996#$Ultimate##0 ~n := #in~n; 881988#L25 assume !(~n <= 0); 881990#L26 call #t~ret0 := fact(~n - 1);< 882331#$Ultimate##0 ~n := #in~n; 886987#L25 assume !(~n <= 0); 882352#L26 call #t~ret0 := fact(~n - 1);< 882354#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882519#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882516#factFINAL assume true; 882444#factEXIT >#68#return; 882100#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882229#$Ultimate##0 ~n := #in~n; 882652#L25 assume !(~n <= 0); 882254#L26 call #t~ret0 := fact(~n - 1);< 883212#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882269#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883297#factFINAL assume true; 882412#factEXIT >#70#return; 882403#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882409#$Ultimate##0 ~n := #in~n; 882406#L25 assume !(~n <= 0); 882285#L26 call #t~ret0 := fact(~n - 1);< 882405#$Ultimate##0 ~n := #in~n; 883224#L25 assume ~n <= 0;#res := 1; 883210#factFINAL assume true; 883205#factEXIT >#66#return; 883208#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882626#factFINAL assume true; 882604#factEXIT >#72#return; 882615#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 882696#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 882693#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 882687#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 882518#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 882462#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 882515#$Ultimate##0 ~n := #in~n; 882533#L25 assume !(~n <= 0); 882521#L26 call #t~ret0 := fact(~n - 1);< 882523#$Ultimate##0 ~n := #in~n; 882574#L25 assume !(~n <= 0); 882296#L26 call #t~ret0 := fact(~n - 1);< 882544#$Ultimate##0 ~n := #in~n; 883378#L25 assume !(~n <= 0); 882294#L26 call #t~ret0 := fact(~n - 1);< 882277#$Ultimate##0 ~n := #in~n; 886985#L25 assume !(~n <= 0); 882279#L26 call #t~ret0 := fact(~n - 1);< 882300#$Ultimate##0 ~n := #in~n; 886988#L25 assume !(~n <= 0); 881989#L26 call #t~ret0 := fact(~n - 1);< 881996#$Ultimate##0 ~n := #in~n; 881988#L25 assume !(~n <= 0); 881990#L26 call #t~ret0 := fact(~n - 1);< 882331#$Ultimate##0 ~n := #in~n; 886987#L25 assume !(~n <= 0); 882352#L26 call #t~ret0 := fact(~n - 1);< 882354#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882519#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882516#factFINAL assume true; 882444#factEXIT >#68#return; 882429#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 882220#$Ultimate##0 ~n := #in~n; 882536#L25 assume !(~n <= 0); 882249#L26 call #t~ret0 := fact(~n - 1);< 882529#$Ultimate##0 ~n := #in~n; 882689#L25 assume !(~n <= 0); 882258#L26 call #t~ret0 := fact(~n - 1);< 882531#$Ultimate##0 ~n := #in~n; 882577#L25 assume !(~n <= 0); 882241#L26 call #t~ret0 := fact(~n - 1);< 882545#$Ultimate##0 ~n := #in~n; 882535#L25 assume !(~n <= 0); 882239#L26 call #t~ret0 := fact(~n - 1);< 882530#$Ultimate##0 ~n := #in~n; 883320#L25 assume !(~n <= 0); 882238#L26 call #t~ret0 := fact(~n - 1);< 882308#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882396#L25 assume !(~n <= 0); 882261#L26 call #t~ret0 := fact(~n - 1);< 882353#$Ultimate##0 ~n := #in~n; 882359#L25 assume ~n <= 0;#res := 1; 882358#factFINAL assume true; 882351#factEXIT >#66#return; 882347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882334#factFINAL assume true; 882324#factEXIT >#66#return; 882323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882319#factFINAL assume true; 882310#factEXIT >#66#return; 882309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882302#factFINAL assume true; 882278#factEXIT >#66#return; 882291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882585#factFINAL assume true; 882578#factEXIT >#66#return; 882575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882546#factFINAL assume true; 882538#factEXIT >#66#return; 882534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 882524#factFINAL assume true; 882520#factEXIT >#66#return; 882269#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 883297#factFINAL assume true; 882412#factEXIT >#70#return; 882043#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 882410#$Ultimate##0 ~n := #in~n; 882407#L25 assume ~n <= 0;#res := 1; 882074#factFINAL assume true; 882007#factEXIT >#72#return; 881968#L30-3 [2023-02-18 08:58:48,011 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:48,012 INFO L85 PathProgramCache]: Analyzing trace with hash 1119145016, now seen corresponding path program 78 times [2023-02-18 08:58:48,012 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:48,012 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1341411401] [2023-02-18 08:58:48,012 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:48,012 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:48,044 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:48,044 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1665214377] [2023-02-18 08:58:48,044 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:58:48,044 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:48,044 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:48,048 INFO L229 MonitoredProcess]: Starting monitored process 281 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:58:48,048 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (281)] Waiting until timeout for monitored process [2023-02-18 08:58:49,134 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 27 check-sat command(s) [2023-02-18 08:58:49,134 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:58:49,141 INFO L263 TraceCheckSpWp]: Trace formula consists of 1247 conjuncts, 34 conjunts are in the unsatisfiable core [2023-02-18 08:58:49,151 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:49,364 INFO L134 CoverageAnalysis]: Checked inductivity of 256244 backedges. 15844 proven. 3874 refuted. 0 times theorem prover too weak. 236526 trivial. 0 not checked. [2023-02-18 08:58:49,364 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:49,789 INFO L134 CoverageAnalysis]: Checked inductivity of 256244 backedges. 14584 proven. 3974 refuted. 0 times theorem prover too weak. 237686 trivial. 0 not checked. [2023-02-18 08:58:49,790 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:49,790 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1341411401] [2023-02-18 08:58:49,790 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:49,790 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1665214377] [2023-02-18 08:58:49,790 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1665214377] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:49,791 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:49,791 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [21, 32] total 35 [2023-02-18 08:58:49,791 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [554850315] [2023-02-18 08:58:49,791 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:49,791 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:58:49,792 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:49,792 INFO L85 PathProgramCache]: Analyzing trace with hash -1725642005, now seen corresponding path program 78 times [2023-02-18 08:58:49,792 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:49,792 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1138051481] [2023-02-18 08:58:49,792 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:49,792 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:49,813 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:49,813 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [909177419] [2023-02-18 08:58:49,813 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:58:49,813 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:49,813 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:49,816 INFO L229 MonitoredProcess]: Starting monitored process 282 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:58:49,816 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (282)] Waiting until timeout for monitored process [2023-02-18 08:58:50,795 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 29 check-sat command(s) [2023-02-18 08:58:50,795 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:58:50,800 INFO L263 TraceCheckSpWp]: Trace formula consists of 1087 conjuncts, 37 conjunts are in the unsatisfiable core [2023-02-18 08:58:50,805 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:50,940 INFO L134 CoverageAnalysis]: Checked inductivity of 62519 backedges. 9719 proven. 680 refuted. 0 times theorem prover too weak. 52120 trivial. 0 not checked. [2023-02-18 08:58:50,940 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:51,428 INFO L134 CoverageAnalysis]: Checked inductivity of 62519 backedges. 9111 proven. 810 refuted. 0 times theorem prover too weak. 52598 trivial. 0 not checked. [2023-02-18 08:58:51,428 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:51,428 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1138051481] [2023-02-18 08:58:51,428 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:51,429 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [909177419] [2023-02-18 08:58:51,429 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [909177419] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:51,429 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:51,429 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [23, 36] total 39 [2023-02-18 08:58:51,429 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1185484861] [2023-02-18 08:58:51,429 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:51,429 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:58:51,429 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:58:51,430 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 39 interpolants. [2023-02-18 08:58:51,430 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=207, Invalid=1275, Unknown=0, NotChecked=0, Total=1482 [2023-02-18 08:58:51,430 INFO L87 Difference]: Start difference. First operand 5113 states and 7902 transitions. cyclomatic complexity: 2831 Second operand has 39 states, 36 states have (on average 2.5277777777777777) internal successors, (91), 39 states have internal predecessors, (91), 22 states have call successors, (32), 2 states have call predecessors, (32), 17 states have return successors, (43), 20 states have call predecessors, (43), 22 states have call successors, (43) [2023-02-18 08:58:53,003 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:58:53,003 INFO L93 Difference]: Finished difference Result 5801 states and 9652 transitions. [2023-02-18 08:58:53,003 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 5801 states and 9652 transitions. [2023-02-18 08:58:53,034 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 956 [2023-02-18 08:58:53,077 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 5801 states to 5800 states and 9645 transitions. [2023-02-18 08:58:53,077 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 331 [2023-02-18 08:58:53,077 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 331 [2023-02-18 08:58:53,077 INFO L73 IsDeterministic]: Start isDeterministic. Operand 5800 states and 9645 transitions. [2023-02-18 08:58:53,078 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:58:53,078 INFO L218 hiAutomatonCegarLoop]: Abstraction has 5800 states and 9645 transitions. [2023-02-18 08:58:53,080 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 5800 states and 9645 transitions. [2023-02-18 08:58:53,146 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 5800 to 5294. [2023-02-18 08:58:53,150 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5294 states, 3232 states have (on average 1.046410891089109) internal successors, (3382), 3224 states have internal predecessors, (3382), 1719 states have call successors, (1741), 482 states have call predecessors, (1741), 343 states have return successors, (3180), 1587 states have call predecessors, (3180), 1719 states have call successors, (3180) [2023-02-18 08:58:53,167 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5294 states to 5294 states and 8303 transitions. [2023-02-18 08:58:53,167 INFO L240 hiAutomatonCegarLoop]: Abstraction has 5294 states and 8303 transitions. [2023-02-18 08:58:53,167 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 29 states. [2023-02-18 08:58:53,167 INFO L428 stractBuchiCegarLoop]: Abstraction has 5294 states and 8303 transitions. [2023-02-18 08:58:53,168 INFO L335 stractBuchiCegarLoop]: ======== Iteration 91 ============ [2023-02-18 08:58:53,168 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 5294 states and 8303 transitions. [2023-02-18 08:58:53,180 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 818 [2023-02-18 08:58:53,180 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:58:53,180 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:58:53,187 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [314, 314, 233, 233, 233, 233, 81, 27, 26, 20, 20, 20, 20, 20, 20, 20, 19, 19, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 4, 4, 1, 1, 1, 1] [2023-02-18 08:58:53,187 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [157, 157, 130, 130, 130, 130, 27, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:58:53,187 INFO L748 eck$LassoCheckResult]: Stem: 910454#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 910395#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; 910396#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 910417#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; 910406#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 910407#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 914643#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 914640#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 914641#$Ultimate##0 ~n := #in~n; 914649#L25 assume ~n <= 0;#res := 1; 914648#factFINAL assume true; 914639#factEXIT >#68#return; 914624#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 914625#$Ultimate##0 ~n := #in~n; 914628#L25 assume ~n <= 0;#res := 1; 914627#factFINAL assume true; 914623#factEXIT >#70#return; 914621#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 914622#$Ultimate##0 ~n := #in~n; 914673#L25 assume ~n <= 0;#res := 1; 914626#factFINAL assume true; 914620#factEXIT >#72#return; 914618#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 914616#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 914614#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 914536#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 914535#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 914475#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 914476#$Ultimate##0 ~n := #in~n; 914483#L25 assume !(~n <= 0); 914481#L26 call #t~ret0 := fact(~n - 1);< 914482#$Ultimate##0 ~n := #in~n; 914485#L25 assume ~n <= 0;#res := 1; 914484#factFINAL assume true; 914480#factEXIT >#66#return; 914479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914478#factFINAL assume true; 914474#factEXIT >#74#return; 914471#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 914472#$Ultimate##0 ~n := #in~n; 914490#L25 assume ~n <= 0;#res := 1; 914488#factFINAL assume true; 914470#factEXIT >#76#return; 914467#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 914468#$Ultimate##0 ~n := #in~n; 914517#L25 assume !(~n <= 0); 914513#L26 call #t~ret0 := fact(~n - 1);< 914514#$Ultimate##0 ~n := #in~n; 914523#L25 assume ~n <= 0;#res := 1; 914516#factFINAL assume true; 914512#factEXIT >#66#return; 914511#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914492#factFINAL assume true; 914466#factEXIT >#78#return; 914464#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 914463#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 914462#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 914461#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 914460#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 914182#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 914237#$Ultimate##0 ~n := #in~n; 914235#L25 assume !(~n <= 0); 914171#L26 call #t~ret0 := fact(~n - 1);< 914176#$Ultimate##0 ~n := #in~n; 914197#L25 assume !(~n <= 0); 914173#L26 call #t~ret0 := fact(~n - 1);< 914192#$Ultimate##0 ~n := #in~n; 914442#L25 assume ~n <= 0;#res := 1; 914440#factFINAL assume true; 914191#factEXIT >#66#return; 914185#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914181#factFINAL assume true; 914170#factEXIT >#66#return; 914174#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914747#factFINAL assume true; 914459#factEXIT >#74#return; 914158#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 914159#$Ultimate##0 ~n := #in~n; 914167#L25 assume ~n <= 0;#res := 1; 914165#factFINAL assume true; 914157#factEXIT >#76#return; 914155#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 914156#$Ultimate##0 ~n := #in~n; 914177#L25 assume !(~n <= 0); 914172#L26 call #t~ret0 := fact(~n - 1);< 914176#$Ultimate##0 ~n := #in~n; 914197#L25 assume !(~n <= 0); 914173#L26 call #t~ret0 := fact(~n - 1);< 914192#$Ultimate##0 ~n := #in~n; 914442#L25 assume ~n <= 0;#res := 1; 914440#factFINAL assume true; 914191#factEXIT >#66#return; 914185#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914181#factFINAL assume true; 914170#factEXIT >#66#return; 914169#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914168#factFINAL assume true; 914154#factEXIT >#78#return; 914152#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 914151#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 914149#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 914147#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 914144#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 913767#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 913768#$Ultimate##0 ~n := #in~n; 914123#L25 assume !(~n <= 0); 914119#L26 call #t~ret0 := fact(~n - 1);< 914121#$Ultimate##0 ~n := #in~n; 914339#L25 assume !(~n <= 0); 914120#L26 call #t~ret0 := fact(~n - 1);< 914336#$Ultimate##0 ~n := #in~n; 914339#L25 assume !(~n <= 0); 914120#L26 call #t~ret0 := fact(~n - 1);< 914336#$Ultimate##0 ~n := #in~n; 914428#L25 assume ~n <= 0;#res := 1; 914427#factFINAL assume true; 914365#factEXIT >#66#return; 914364#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914363#factFINAL assume true; 914335#factEXIT >#66#return; 914334#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914333#factFINAL assume true; 914118#factEXIT >#66#return; 914117#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914116#factFINAL assume true; 913766#factEXIT >#74#return; 913763#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 913764#$Ultimate##0 ~n := #in~n; 914115#L25 assume ~n <= 0;#res := 1; 914114#factFINAL assume true; 913762#factEXIT >#76#return; 910426#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 913356#$Ultimate##0 ~n := #in~n; 914613#L25 assume !(~n <= 0); 913910#L26 call #t~ret0 := fact(~n - 1);< 913914#$Ultimate##0 ~n := #in~n; 914249#L25 assume !(~n <= 0); 913911#L26 call #t~ret0 := fact(~n - 1);< 914246#$Ultimate##0 ~n := #in~n; 914249#L25 assume !(~n <= 0); 913911#L26 call #t~ret0 := fact(~n - 1);< 914246#$Ultimate##0 ~n := #in~n; 914327#L25 assume ~n <= 0;#res := 1; 914326#factFINAL assume true; 914245#factEXIT >#66#return; 914244#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914243#factFINAL assume true; 914241#factEXIT >#66#return; 914240#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914238#factFINAL assume true; 913907#factEXIT >#66#return; 910425#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910427#factFINAL assume true; 913460#factEXIT >#78#return; 913346#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 913343#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 913342#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 913341#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 913339#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 913338#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 913337#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 913335#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 913240#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 913246#$Ultimate##0 ~n := #in~n; 913330#L25 assume !(~n <= 0); 913316#L26 call #t~ret0 := fact(~n - 1);< 913329#$Ultimate##0 ~n := #in~n; 913390#L25 assume ~n <= 0;#res := 1; 914058#factFINAL assume true; 914046#factEXIT >#66#return; 914055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914329#factFINAL assume true; 914215#factEXIT >#68#return; 914208#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 913066#$Ultimate##0 ~n := #in~n; 914332#L25 assume ~n <= 0;#res := 1; 914331#factFINAL assume true; 914207#factEXIT >#70#return; 913892#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 914199#$Ultimate##0 ~n := #in~n; 914198#L25 assume !(~n <= 0); 913306#L26 call #t~ret0 := fact(~n - 1);< 913893#$Ultimate##0 ~n := #in~n; 913390#L25 assume ~n <= 0;#res := 1; 914058#factFINAL assume true; 914046#factEXIT >#66#return; 914054#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914269#factFINAL assume true; 914267#factEXIT >#72#return; 914266#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 914264#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 914263#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 914262#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 914254#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 914001#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 914037#$Ultimate##0 ~n := #in~n; 914265#L25 assume !(~n <= 0); 913315#L26 call #t~ret0 := fact(~n - 1);< 913893#$Ultimate##0 ~n := #in~n; 913390#L25 assume ~n <= 0;#res := 1; 914058#factFINAL assume true; 914046#factEXIT >#66#return; 914044#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914043#factFINAL assume true; 914041#factEXIT >#68#return; 914027#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 914035#$Ultimate##0 ~n := #in~n; 914524#L25 assume !(~n <= 0); 914050#L26 call #t~ret0 := fact(~n - 1);< 914059#$Ultimate##0 ~n := #in~n; 913390#L25 assume ~n <= 0;#res := 1; 914058#factFINAL assume true; 914046#factEXIT >#66#return; 914056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914045#factFINAL assume true; 914022#factEXIT >#70#return; 913963#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 913971#$Ultimate##0 ~n := #in~n; 914242#L25 assume ~n <= 0;#res := 1; 914239#factFINAL assume true; 913957#factEXIT >#72#return; 913969#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 914036#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 914021#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 914019#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 914017#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 913944#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 914014#$Ultimate##0 ~n := #in~n; 914012#L25 assume !(~n <= 0); 913319#L26 call #t~ret0 := fact(~n - 1);< 913990#$Ultimate##0 ~n := #in~n; 913905#L25 assume !(~n <= 0); 913320#L26 call #t~ret0 := fact(~n - 1);< 913349#$Ultimate##0 ~n := #in~n; 913372#L25 assume ~n <= 0;#res := 1; 913371#factFINAL assume true; 913347#factEXIT >#66#return; 913344#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 913331#factFINAL assume true; 913290#factEXIT >#66#return; 913328#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914322#factFINAL assume true; 914321#factEXIT >#74#return; 913655#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 913679#$Ultimate##0 ~n := #in~n; 914285#L25 assume !(~n <= 0); 913317#L26 call #t~ret0 := fact(~n - 1);< 913329#$Ultimate##0 ~n := #in~n; 913390#L25 assume ~n <= 0;#res := 1; 914058#factFINAL assume true; 914046#factEXIT >#66#return; 914052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914629#factFINAL assume true; 913673#factEXIT >#76#return; 913663#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 913940#$Ultimate##0 ~n := #in~n; 914688#L25 assume !(~n <= 0); 914048#L26 call #t~ret0 := fact(~n - 1);< 914059#$Ultimate##0 ~n := #in~n; 913390#L25 assume ~n <= 0;#res := 1; 914058#factFINAL assume true; 914046#factEXIT >#66#return; 914052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914629#factFINAL assume true; 913673#factEXIT >#78#return; 913678#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 914072#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 913703#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 913700#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 913699#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 913260#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 913618#$Ultimate##0 ~n := #in~n; 914429#L25 assume !(~n <= 0); 913681#L26 call #t~ret0 := fact(~n - 1);< 914362#$Ultimate##0 ~n := #in~n; 914361#L25 assume !(~n <= 0); 913689#L26 call #t~ret0 := fact(~n - 1);< 914066#$Ultimate##0 ~n := #in~n; 914361#L25 assume !(~n <= 0); 913689#L26 call #t~ret0 := fact(~n - 1);< 914066#$Ultimate##0 ~n := #in~n; 914289#L25 assume ~n <= 0;#res := 1; 914287#factFINAL assume true; 914064#factEXIT >#66#return; 914062#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 913753#factFINAL assume true; 913742#factEXIT >#66#return; 913734#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 913729#factFINAL assume true; 913710#factEXIT >#66#return; 913708#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 913704#factFINAL assume true; 913615#factEXIT >#74#return; 913441#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 913616#$Ultimate##0 ~n := #in~n; 913723#L25 assume !(~n <= 0); 913715#L26 call #t~ret0 := fact(~n - 1);< 914206#$Ultimate##0 ~n := #in~n; 914295#L25 assume ~n <= 0;#res := 1; 914337#factFINAL assume true; 914201#factEXIT >#66#return; 914200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 913901#factFINAL assume true; 913438#factEXIT >#76#return; 913451#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 913588#$Ultimate##0 ~n := #in~n; 914296#L25 assume !(~n <= 0); 913686#L26 call #t~ret0 := fact(~n - 1);< 914294#$Ultimate##0 ~n := #in~n; 914293#L25 assume !(~n <= 0); 913711#L26 call #t~ret0 := fact(~n - 1);< 914291#$Ultimate##0 ~n := #in~n; 914289#L25 assume ~n <= 0;#res := 1; 914287#factFINAL assume true; 914064#factEXIT >#66#return; 914062#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 913753#factFINAL assume true; 913742#factEXIT >#66#return; 913745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 913586#factFINAL assume true; 913575#factEXIT >#78#return; 913582#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 914617#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 914615#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 914612#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 910416#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 910408#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 910409#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 914708#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 913239#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 913246#$Ultimate##0 ~n := #in~n; 913330#L25 assume !(~n <= 0); 913316#L26 call #t~ret0 := fact(~n - 1);< 913329#$Ultimate##0 ~n := #in~n; 913380#L25 assume !(~n <= 0); 913292#L26 call #t~ret0 := fact(~n - 1);< 913373#$Ultimate##0 ~n := #in~n; 913372#L25 assume ~n <= 0;#res := 1; 913371#factFINAL assume true; 913347#factEXIT >#66#return; 913344#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 913331#factFINAL assume true; 913290#factEXIT >#66#return; 913289#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 913287#factFINAL assume true; 913238#factEXIT >#68#return; 913061#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 913067#$Ultimate##0 ~n := #in~n; 913572#L25 assume ~n <= 0;#res := 1; 913570#factFINAL assume true; 913059#factEXIT >#70#return; 913045#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 913055#$Ultimate##0 ~n := #in~n; 914660#L25 assume !(~n <= 0); 912065#L26 call #t~ret0 := fact(~n - 1);< 912625#$Ultimate##0 ~n := #in~n; 912758#L25 assume !(~n <= 0); 912090#L26 call #t~ret0 := fact(~n - 1);< 912091#$Ultimate##0 ~n := #in~n; 912720#L25 assume ~n <= 0;#res := 1; 912719#factFINAL assume true; 912089#factEXIT >#66#return; 912087#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912080#factFINAL assume true; 912058#factEXIT >#66#return; 912073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914637#factFINAL assume true; 913043#factEXIT >#72#return; 913050#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 914728#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 914726#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 914724#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 914722#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 912565#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 912583#$Ultimate##0 ~n := #in~n; 913364#L25 assume !(~n <= 0); 912066#L26 call #t~ret0 := fact(~n - 1);< 912625#$Ultimate##0 ~n := #in~n; 912758#L25 assume !(~n <= 0); 912090#L26 call #t~ret0 := fact(~n - 1);< 912091#$Ultimate##0 ~n := #in~n; 912720#L25 assume ~n <= 0;#res := 1; 912719#factFINAL assume true; 912089#factEXIT >#66#return; 912087#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912080#factFINAL assume true; 912058#factEXIT >#66#return; 912074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 913359#factFINAL assume true; 912564#factEXIT >#68#return; 912577#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 912606#$Ultimate##0 ~n := #in~n; 912641#L25 assume !(~n <= 0); 912443#L26 call #t~ret0 := fact(~n - 1);< 912454#$Ultimate##0 ~n := #in~n; 913100#L25 assume ~n <= 0;#res := 1; 913097#factFINAL assume true; 912442#factEXIT >#66#return; 912450#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912607#factFINAL assume true; 912594#factEXIT >#70#return; 912599#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 912606#$Ultimate##0 ~n := #in~n; 912641#L25 assume !(~n <= 0); 912443#L26 call #t~ret0 := fact(~n - 1);< 912454#$Ultimate##0 ~n := #in~n; 913100#L25 assume ~n <= 0;#res := 1; 913097#factFINAL assume true; 912442#factEXIT >#66#return; 912450#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912607#factFINAL assume true; 912594#factEXIT >#72#return; 912604#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 914720#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 914719#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 914717#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 914716#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 912570#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 912583#$Ultimate##0 ~n := #in~n; 913364#L25 assume !(~n <= 0); 912066#L26 call #t~ret0 := fact(~n - 1);< 912625#$Ultimate##0 ~n := #in~n; 912758#L25 assume !(~n <= 0); 912090#L26 call #t~ret0 := fact(~n - 1);< 912091#$Ultimate##0 ~n := #in~n; 912720#L25 assume ~n <= 0;#res := 1; 912719#factFINAL assume true; 912089#factEXIT >#66#return; 912087#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912080#factFINAL assume true; 912058#factEXIT >#66#return; 912074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 913359#factFINAL assume true; 912564#factEXIT >#68#return; 912557#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 912563#$Ultimate##0 ~n := #in~n; 912651#L25 assume !(~n <= 0); 911984#L26 call #t~ret0 := fact(~n - 1);< 912083#$Ultimate##0 ~n := #in~n; 912778#L25 assume !(~n <= 0); 912067#L26 call #t~ret0 := fact(~n - 1);< 912094#$Ultimate##0 ~n := #in~n; 912720#L25 assume ~n <= 0;#res := 1; 912719#factFINAL assume true; 912089#factEXIT >#66#return; 912087#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912080#factFINAL assume true; 912058#factEXIT >#66#return; 912075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912593#factFINAL assume true; 912556#factEXIT >#70#return; 912545#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 912555#$Ultimate##0 ~n := #in~n; 913340#L25 assume ~n <= 0;#res := 1; 913334#factFINAL assume true; 912543#factEXIT >#72#return; 912551#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 914715#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 914714#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 914713#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 914712#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 911709#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 911779#$Ultimate##0 ~n := #in~n; 915500#L25 assume !(~n <= 0); 911635#L26 call #t~ret0 := fact(~n - 1);< 911656#$Ultimate##0 ~n := #in~n; 911729#L25 assume !(~n <= 0); 911633#L26 call #t~ret0 := fact(~n - 1);< 911706#$Ultimate##0 ~n := #in~n; 911729#L25 assume !(~n <= 0); 911633#L26 call #t~ret0 := fact(~n - 1);< 911706#$Ultimate##0 ~n := #in~n; 911758#L25 assume ~n <= 0;#res := 1; 912275#factFINAL assume true; 911674#factEXIT >#66#return; 911672#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911669#factFINAL assume true; 911662#factEXIT >#66#return; 911666#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911705#factFINAL assume true; 911632#factEXIT >#66#return; 911653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912439#factFINAL assume true; 911778#factEXIT >#74#return; 911710#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 911777#$Ultimate##0 ~n := #in~n; 915499#L25 assume !(~n <= 0); 911636#L26 call #t~ret0 := fact(~n - 1);< 911713#$Ultimate##0 ~n := #in~n; 912296#L25 assume !(~n <= 0); 911663#L26 call #t~ret0 := fact(~n - 1);< 911670#$Ultimate##0 ~n := #in~n; 911758#L25 assume ~n <= 0;#res := 1; 912275#factFINAL assume true; 911674#factEXIT >#66#return; 911672#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911669#factFINAL assume true; 911662#factEXIT >#66#return; 911667#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912524#factFINAL assume true; 911776#factEXIT >#76#return; 911582#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 911773#$Ultimate##0 ~n := #in~n; 911772#L25 assume !(~n <= 0); 911678#L26 call #t~ret0 := fact(~n - 1);< 911682#$Ultimate##0 ~n := #in~n; 911704#L25 assume ~n <= 0;#res := 1; 911700#factFINAL assume true; 911677#factEXIT >#66#return; 911681#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911781#factFINAL assume true; 911578#factEXIT >#78#return; 911573#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 911568#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 911563#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 911558#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 911554#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 911550#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 911545#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 911543#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 911515#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 911518#$Ultimate##0 ~n := #in~n; 911517#L25 assume !(~n <= 0); 910982#L26 call #t~ret0 := fact(~n - 1);< 911514#$Ultimate##0 ~n := #in~n; 911512#L25 assume !(~n <= 0); 911057#L26 call #t~ret0 := fact(~n - 1);< 911510#$Ultimate##0 ~n := #in~n; 911507#L25 assume !(~n <= 0); 911141#L26 call #t~ret0 := fact(~n - 1);< 911504#$Ultimate##0 ~n := #in~n; 911501#L25 assume !(~n <= 0); 911066#L26 call #t~ret0 := fact(~n - 1);< 911153#$Ultimate##0 ~n := #in~n; 911499#L25 assume !(~n <= 0); 911151#L26 call #t~ret0 := fact(~n - 1);< 911154#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910991#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911544#factFINAL assume true; 911539#factEXIT >#68#return; 911273#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 911282#$Ultimate##0 ~n := #in~n; 911398#L25 assume ~n <= 0;#res := 1; 911396#factFINAL assume true; 911263#factEXIT >#70#return; 911131#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 911536#$Ultimate##0 ~n := #in~n; 912793#L25 assume !(~n <= 0); 910862#L26 call #t~ret0 := fact(~n - 1);< 911133#$Ultimate##0 ~n := #in~n; 911476#L25 assume !(~n <= 0); 910863#L26 call #t~ret0 := fact(~n - 1);< 911474#$Ultimate##0 ~n := #in~n; 911473#L25 assume !(~n <= 0); 910859#L26 call #t~ret0 := fact(~n - 1);< 911116#$Ultimate##0 ~n := #in~n; 911419#L25 assume !(~n <= 0); 910855#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910990#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911542#factFINAL assume true; 911535#factEXIT >#72#return; 911256#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 911532#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 911529#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 911527#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 911526#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 910943#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 910957#$Ultimate##0 ~n := #in~n; 910994#L25 assume !(~n <= 0); 910983#L26 call #t~ret0 := fact(~n - 1);< 910993#$Ultimate##0 ~n := #in~n; 912460#L25 assume !(~n <= 0); 911058#L26 call #t~ret0 := fact(~n - 1);< 911064#$Ultimate##0 ~n := #in~n; 915384#L25 assume !(~n <= 0); 911120#L26 call #t~ret0 := fact(~n - 1);< 911144#$Ultimate##0 ~n := #in~n; 912801#L25 assume !(~n <= 0); 911070#L26 call #t~ret0 := fact(~n - 1);< 911121#$Ultimate##0 ~n := #in~n; 911499#L25 assume !(~n <= 0); 911151#L26 call #t~ret0 := fact(~n - 1);< 911154#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910976#factFINAL assume true; 910942#factEXIT >#68#return; 910905#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 910928#$Ultimate##0 ~n := #in~n; 911521#L25 assume !(~n <= 0); 910528#L26 call #t~ret0 := fact(~n - 1);< 910939#$Ultimate##0 ~n := #in~n; 910973#L25 assume ~n <= 0;#res := 1; 910967#factFINAL assume true; 910934#factEXIT >#66#return; 910932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910927#factFINAL assume true; 910897#factEXIT >#70#return; 910925#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 911137#$Ultimate##0 ~n := #in~n; 911513#L25 assume !(~n <= 0); 911056#L26 call #t~ret0 := fact(~n - 1);< 911511#$Ultimate##0 ~n := #in~n; 911508#L25 assume !(~n <= 0); 911142#L26 call #t~ret0 := fact(~n - 1);< 911505#$Ultimate##0 ~n := #in~n; 911501#L25 assume !(~n <= 0); 911066#L26 call #t~ret0 := fact(~n - 1);< 911153#$Ultimate##0 ~n := #in~n; 911499#L25 assume !(~n <= 0); 911151#L26 call #t~ret0 := fact(~n - 1);< 911154#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911135#factFINAL assume true; 911078#factEXIT >#72#return; 911092#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 911220#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 911219#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 911218#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 911217#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 910949#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 910957#$Ultimate##0 ~n := #in~n; 910994#L25 assume !(~n <= 0); 910983#L26 call #t~ret0 := fact(~n - 1);< 910993#$Ultimate##0 ~n := #in~n; 912460#L25 assume !(~n <= 0); 911058#L26 call #t~ret0 := fact(~n - 1);< 911064#$Ultimate##0 ~n := #in~n; 915384#L25 assume !(~n <= 0); 911120#L26 call #t~ret0 := fact(~n - 1);< 911144#$Ultimate##0 ~n := #in~n; 912801#L25 assume !(~n <= 0); 911070#L26 call #t~ret0 := fact(~n - 1);< 911121#$Ultimate##0 ~n := #in~n; 911499#L25 assume !(~n <= 0); 911151#L26 call #t~ret0 := fact(~n - 1);< 911154#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910976#factFINAL assume true; 910942#factEXIT >#68#return; 910956#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 911212#$Ultimate##0 ~n := #in~n; 912438#L25 assume !(~n <= 0); 910876#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911045#factFINAL assume true; 911009#factEXIT >#70#return; 911031#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 911201#$Ultimate##0 ~n := #in~n; 911200#L25 assume !(~n <= 0); 911119#L26 call #t~ret0 := fact(~n - 1);< 911144#$Ultimate##0 ~n := #in~n; 912801#L25 assume !(~n <= 0); 911070#L26 call #t~ret0 := fact(~n - 1);< 911121#$Ultimate##0 ~n := #in~n; 911499#L25 assume !(~n <= 0); 911151#L26 call #t~ret0 := fact(~n - 1);< 911154#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911143#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911193#factFINAL assume true; 911171#factEXIT >#72#return; 911178#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 911210#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 911209#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 911207#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 911206#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 910951#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 910957#$Ultimate##0 ~n := #in~n; 910994#L25 assume !(~n <= 0); 910983#L26 call #t~ret0 := fact(~n - 1);< 910993#$Ultimate##0 ~n := #in~n; 912460#L25 assume !(~n <= 0); 911058#L26 call #t~ret0 := fact(~n - 1);< 911064#$Ultimate##0 ~n := #in~n; 915384#L25 assume !(~n <= 0); 911120#L26 call #t~ret0 := fact(~n - 1);< 911144#$Ultimate##0 ~n := #in~n; 912801#L25 assume !(~n <= 0); 911070#L26 call #t~ret0 := fact(~n - 1);< 911121#$Ultimate##0 ~n := #in~n; 911499#L25 assume !(~n <= 0); 911151#L26 call #t~ret0 := fact(~n - 1);< 911154#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910976#factFINAL assume true; 910942#factEXIT >#68#return; 910813#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 910700#$Ultimate##0 ~n := #in~n; 911842#L25 assume !(~n <= 0); 910871#L26 call #t~ret0 := fact(~n - 1);< 911116#$Ultimate##0 ~n := #in~n; 911419#L25 assume !(~n <= 0); 910855#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911143#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911193#factFINAL assume true; 911171#factEXIT >#70#return; 911019#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 911202#$Ultimate##0 ~n := #in~n; 911509#L25 assume !(~n <= 0); 911072#L26 call #t~ret0 := fact(~n - 1);< 911506#$Ultimate##0 ~n := #in~n; 911493#L25 assume !(~n <= 0); 911073#L26 call #t~ret0 := fact(~n - 1);< 911153#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911045#factFINAL assume true; 911009#factEXIT >#72#return; 911041#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 911199#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 911198#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 911197#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 911195#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 910944#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 910957#$Ultimate##0 ~n := #in~n; 910994#L25 assume !(~n <= 0); 910983#L26 call #t~ret0 := fact(~n - 1);< 910993#$Ultimate##0 ~n := #in~n; 912460#L25 assume !(~n <= 0); 911058#L26 call #t~ret0 := fact(~n - 1);< 911064#$Ultimate##0 ~n := #in~n; 915384#L25 assume !(~n <= 0); 911120#L26 call #t~ret0 := fact(~n - 1);< 911144#$Ultimate##0 ~n := #in~n; 912801#L25 assume !(~n <= 0); 911070#L26 call #t~ret0 := fact(~n - 1);< 911121#$Ultimate##0 ~n := #in~n; 911499#L25 assume !(~n <= 0); 911151#L26 call #t~ret0 := fact(~n - 1);< 911154#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910976#factFINAL assume true; 910942#factEXIT >#68#return; 910811#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 910700#$Ultimate##0 ~n := #in~n; 911842#L25 assume !(~n <= 0); 910871#L26 call #t~ret0 := fact(~n - 1);< 911116#$Ultimate##0 ~n := #in~n; 911419#L25 assume !(~n <= 0); 910855#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911135#factFINAL assume true; 911078#factEXIT >#70#return; 910909#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 911105#$Ultimate##0 ~n := #in~n; 911503#L25 assume !(~n <= 0); 910936#L26 call #t~ret0 := fact(~n - 1);< 911500#$Ultimate##0 ~n := #in~n; 910973#L25 assume ~n <= 0;#res := 1; 910967#factFINAL assume true; 910934#factEXIT >#66#return; 910932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910927#factFINAL assume true; 910897#factEXIT >#72#return; 910924#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 911008#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 911006#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 911004#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 911002#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 910952#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 910957#$Ultimate##0 ~n := #in~n; 910994#L25 assume !(~n <= 0); 910983#L26 call #t~ret0 := fact(~n - 1);< 910993#$Ultimate##0 ~n := #in~n; 912460#L25 assume !(~n <= 0); 911058#L26 call #t~ret0 := fact(~n - 1);< 911064#$Ultimate##0 ~n := #in~n; 915384#L25 assume !(~n <= 0); 911120#L26 call #t~ret0 := fact(~n - 1);< 911144#$Ultimate##0 ~n := #in~n; 912801#L25 assume !(~n <= 0); 911070#L26 call #t~ret0 := fact(~n - 1);< 911121#$Ultimate##0 ~n := #in~n; 911499#L25 assume !(~n <= 0); 911151#L26 call #t~ret0 := fact(~n - 1);< 911154#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910976#factFINAL assume true; 910942#factEXIT >#68#return; 910699#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 910700#$Ultimate##0 ~n := #in~n; 911842#L25 assume !(~n <= 0); 910871#L26 call #t~ret0 := fact(~n - 1);< 911116#$Ultimate##0 ~n := #in~n; 911419#L25 assume !(~n <= 0); 910855#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910989#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910808#factFINAL assume true; 910814#factEXIT >#70#return; 910471#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 910525#$Ultimate##0 ~n := #in~n; 911502#L25 assume ~n <= 0;#res := 1; 910526#factFINAL assume true; 910459#factEXIT >#72#return; 910523#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 911441#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 911438#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 911435#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 911432#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 910752#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 910758#$Ultimate##0 ~n := #in~n; 910756#L25 assume !(~n <= 0); 910378#L26 call #t~ret0 := fact(~n - 1);< 910748#$Ultimate##0 ~n := #in~n; 910747#L25 assume !(~n <= 0); 910376#L26 call #t~ret0 := fact(~n - 1);< 910746#$Ultimate##0 ~n := #in~n; 910745#L25 assume !(~n <= 0); 910377#L26 call #t~ret0 := fact(~n - 1);< 910744#$Ultimate##0 ~n := #in~n; 910743#L25 assume !(~n <= 0); 910388#L26 call #t~ret0 := fact(~n - 1);< 910709#$Ultimate##0 ~n := #in~n; 910706#L25 assume !(~n <= 0); 910383#L26 call #t~ret0 := fact(~n - 1);< 910704#$Ultimate##0 ~n := #in~n; 910706#L25 assume !(~n <= 0); 910383#L26 call #t~ret0 := fact(~n - 1);< 910704#$Ultimate##0 ~n := #in~n; 910705#L25 assume ~n <= 0;#res := 1; 911395#factFINAL assume true; 911355#factEXIT >#66#return; 911354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911353#factFINAL assume true; 911347#factEXIT >#66#return; 911345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911344#factFINAL assume true; 911337#factEXIT >#66#return; 911336#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911334#factFINAL assume true; 911331#factEXIT >#66#return; 911330#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911328#factFINAL assume true; 911324#factEXIT >#66#return; 911325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911394#factFINAL assume true; 911364#factEXIT >#66#return; 911362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911360#factFINAL assume true; 911356#factEXIT >#74#return; 910715#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 910450#$Ultimate##0 ~n := #in~n; 910742#L25 assume !(~n <= 0); 910389#L26 call #t~ret0 := fact(~n - 1);< 910707#$Ultimate##0 ~n := #in~n; 910706#L25 assume !(~n <= 0); 910383#L26 call #t~ret0 := fact(~n - 1);< 910704#$Ultimate##0 ~n := #in~n; 910706#L25 assume !(~n <= 0); 910383#L26 call #t~ret0 := fact(~n - 1);< 910704#$Ultimate##0 ~n := #in~n; 910706#L25 assume !(~n <= 0); 910383#L26 call #t~ret0 := fact(~n - 1);< 910704#$Ultimate##0 ~n := #in~n; 910706#L25 assume !(~n <= 0); 910383#L26 call #t~ret0 := fact(~n - 1);< 910704#$Ultimate##0 ~n := #in~n; 910705#L25 assume ~n <= 0;#res := 1; 911395#factFINAL assume true; 911355#factEXIT >#66#return; 911354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911353#factFINAL assume true; 911347#factEXIT >#66#return; 911345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911344#factFINAL assume true; 911337#factEXIT >#66#return; 911336#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911334#factFINAL assume true; 911331#factEXIT >#66#return; 911330#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911328#factFINAL assume true; 911324#factEXIT >#66#return; 911322#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911311#factFINAL assume true; 911306#factEXIT >#76#return; 910712#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 910740#$Ultimate##0 ~n := #in~n; 910738#L25 assume !(~n <= 0); 910431#L26 call #t~ret0 := fact(~n - 1);< 910703#$Ultimate##0 ~n := #in~n; 910430#L25 assume ~n <= 0;#res := 1; 910432#factFINAL assume true; 911427#factEXIT >#66#return; 911426#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911425#factFINAL assume true; 911424#factEXIT >#78#return; 911420#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 911417#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 911415#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 911412#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 911410#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 911407#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 911404#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 911401#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 911285#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 911287#$Ultimate##0 ~n := #in~n; 911406#L25 assume !(~n <= 0); 910881#L26 call #t~ret0 := fact(~n - 1);< 911403#$Ultimate##0 ~n := #in~n; 911492#L25 assume !(~n <= 0); 910883#L26 call #t~ret0 := fact(~n - 1);< 911321#$Ultimate##0 ~n := #in~n; 912608#L25 assume !(~n <= 0); 910878#L26 call #t~ret0 := fact(~n - 1);< 911128#$Ultimate##0 ~n := #in~n; 912332#L25 assume !(~n <= 0); 910867#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912992#factFINAL assume true; 912280#factEXIT >#66#return; 912134#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912301#factFINAL assume true; 912128#factEXIT >#66#return; 912135#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 913138#factFINAL assume true; 913128#factEXIT >#68#return; 911271#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 911282#$Ultimate##0 ~n := #in~n; 911398#L25 assume ~n <= 0;#res := 1; 911396#factFINAL assume true; 911263#factEXIT >#70#return; 911249#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 911261#$Ultimate##0 ~n := #in~n; 913085#L25 assume !(~n <= 0); 910872#L26 call #t~ret0 := fact(~n - 1);< 911403#$Ultimate##0 ~n := #in~n; 911492#L25 assume !(~n <= 0); 910883#L26 call #t~ret0 := fact(~n - 1);< 911321#$Ultimate##0 ~n := #in~n; 912608#L25 assume !(~n <= 0); 910878#L26 call #t~ret0 := fact(~n - 1);< 911128#$Ultimate##0 ~n := #in~n; 912332#L25 assume !(~n <= 0); 910867#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914161#factFINAL assume true; 911245#factEXIT >#72#return; 911257#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 913124#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 913123#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 913121#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 913119#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 912207#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 912340#$Ultimate##0 ~n := #in~n; 915382#L25 assume !(~n <= 0); 911486#L26 call #t~ret0 := fact(~n - 1);< 911489#$Ultimate##0 ~n := #in~n; 911488#L25 assume !(~n <= 0); 910858#L26 call #t~ret0 := fact(~n - 1);< 911472#$Ultimate##0 ~n := #in~n; 911482#L25 assume !(~n <= 0); 910874#L26 call #t~ret0 := fact(~n - 1);< 911133#$Ultimate##0 ~n := #in~n; 911476#L25 assume !(~n <= 0); 910863#L26 call #t~ret0 := fact(~n - 1);< 911474#$Ultimate##0 ~n := #in~n; 911473#L25 assume !(~n <= 0); 910859#L26 call #t~ret0 := fact(~n - 1);< 911116#$Ultimate##0 ~n := #in~n; 911419#L25 assume !(~n <= 0); 910855#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912992#factFINAL assume true; 912280#factEXIT >#66#return; 912134#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912301#factFINAL assume true; 912128#factEXIT >#66#return; 912139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912470#factFINAL assume true; 912436#factEXIT >#68#return; 910481#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 910529#$Ultimate##0 ~n := #in~n; 910527#L25 assume !(~n <= 0); 910528#L26 call #t~ret0 := fact(~n - 1);< 910939#$Ultimate##0 ~n := #in~n; 910973#L25 assume ~n <= 0;#res := 1; 910967#factFINAL assume true; 910934#factEXIT >#66#return; 910932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910927#factFINAL assume true; 910897#factEXIT >#70#return; 910655#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 910817#$Ultimate##0 ~n := #in~n; 911481#L25 assume !(~n <= 0); 910877#L26 call #t~ret0 := fact(~n - 1);< 911133#$Ultimate##0 ~n := #in~n; 911476#L25 assume !(~n <= 0); 910863#L26 call #t~ret0 := fact(~n - 1);< 911474#$Ultimate##0 ~n := #in~n; 911473#L25 assume !(~n <= 0); 910859#L26 call #t~ret0 := fact(~n - 1);< 911116#$Ultimate##0 ~n := #in~n; 911419#L25 assume !(~n <= 0); 910855#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910933#factFINAL assume true; 910531#factEXIT >#72#return; 910694#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 913094#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 913093#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 913092#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 913091#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 912227#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 912340#$Ultimate##0 ~n := #in~n; 915382#L25 assume !(~n <= 0); 911486#L26 call #t~ret0 := fact(~n - 1);< 911489#$Ultimate##0 ~n := #in~n; 911488#L25 assume !(~n <= 0); 910858#L26 call #t~ret0 := fact(~n - 1);< 911472#$Ultimate##0 ~n := #in~n; 911482#L25 assume !(~n <= 0); 910874#L26 call #t~ret0 := fact(~n - 1);< 911133#$Ultimate##0 ~n := #in~n; 911476#L25 assume !(~n <= 0); 910863#L26 call #t~ret0 := fact(~n - 1);< 911474#$Ultimate##0 ~n := #in~n; 911473#L25 assume !(~n <= 0); 910859#L26 call #t~ret0 := fact(~n - 1);< 911116#$Ultimate##0 ~n := #in~n; 911419#L25 assume !(~n <= 0); 910855#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912992#factFINAL assume true; 912280#factEXIT >#66#return; 912134#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912301#factFINAL assume true; 912128#factEXIT >#66#return; 912139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912470#factFINAL assume true; 912436#factEXIT >#68#return; 910482#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 910530#$Ultimate##0 ~n := #in~n; 910964#L25 assume !(~n <= 0); 910873#L26 call #t~ret0 := fact(~n - 1);< 910961#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911045#factFINAL assume true; 911009#factEXIT >#70#return; 910654#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 910940#$Ultimate##0 ~n := #in~n; 915380#L25 assume !(~n <= 0); 910887#L26 call #t~ret0 := fact(~n - 1);< 911116#$Ultimate##0 ~n := #in~n; 911419#L25 assume !(~n <= 0); 910855#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911135#factFINAL assume true; 911078#factEXIT >#72#return; 910693#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 913810#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 913808#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 913806#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 913805#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 912177#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 912340#$Ultimate##0 ~n := #in~n; 915382#L25 assume !(~n <= 0); 911486#L26 call #t~ret0 := fact(~n - 1);< 911489#$Ultimate##0 ~n := #in~n; 911488#L25 assume !(~n <= 0); 910858#L26 call #t~ret0 := fact(~n - 1);< 911472#$Ultimate##0 ~n := #in~n; 911482#L25 assume !(~n <= 0); 910874#L26 call #t~ret0 := fact(~n - 1);< 911133#$Ultimate##0 ~n := #in~n; 911476#L25 assume !(~n <= 0); 910863#L26 call #t~ret0 := fact(~n - 1);< 911474#$Ultimate##0 ~n := #in~n; 911473#L25 assume !(~n <= 0); 910859#L26 call #t~ret0 := fact(~n - 1);< 911116#$Ultimate##0 ~n := #in~n; 911419#L25 assume !(~n <= 0); 910855#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912992#factFINAL assume true; 912280#factEXIT >#66#return; 912134#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912301#factFINAL assume true; 912128#factEXIT >#66#return; 912139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912470#factFINAL assume true; 912436#factEXIT >#68#return; 910514#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 910530#$Ultimate##0 ~n := #in~n; 910964#L25 assume !(~n <= 0); 910873#L26 call #t~ret0 := fact(~n - 1);< 910961#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911143#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911193#factFINAL assume true; 911171#factEXIT >#70#return; 910634#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 911046#$Ultimate##0 ~n := #in~n; 911418#L25 assume !(~n <= 0); 910879#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911135#factFINAL assume true; 911078#factEXIT >#72#return; 911091#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 913812#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 913811#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 913809#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 913807#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 912168#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 912340#$Ultimate##0 ~n := #in~n; 915382#L25 assume !(~n <= 0); 911486#L26 call #t~ret0 := fact(~n - 1);< 911489#$Ultimate##0 ~n := #in~n; 911488#L25 assume !(~n <= 0); 910858#L26 call #t~ret0 := fact(~n - 1);< 911472#$Ultimate##0 ~n := #in~n; 911482#L25 assume !(~n <= 0); 910874#L26 call #t~ret0 := fact(~n - 1);< 911133#$Ultimate##0 ~n := #in~n; 911476#L25 assume !(~n <= 0); 910863#L26 call #t~ret0 := fact(~n - 1);< 911474#$Ultimate##0 ~n := #in~n; 911473#L25 assume !(~n <= 0); 910859#L26 call #t~ret0 := fact(~n - 1);< 911116#$Ultimate##0 ~n := #in~n; 911419#L25 assume !(~n <= 0); 910855#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912992#factFINAL assume true; 912280#factEXIT >#66#return; 912134#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912301#factFINAL assume true; 912128#factEXIT >#66#return; 912139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912470#factFINAL assume true; 912436#factEXIT >#68#return; 910500#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 910530#$Ultimate##0 ~n := #in~n; 910964#L25 assume !(~n <= 0); 910873#L26 call #t~ret0 := fact(~n - 1);< 910961#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911135#factFINAL assume true; 911078#factEXIT >#70#return; 910660#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 911046#$Ultimate##0 ~n := #in~n; 911418#L25 assume !(~n <= 0); 910879#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911143#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911193#factFINAL assume true; 911171#factEXIT >#72#return; 911188#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 913819#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 913817#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 913815#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 913813#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 912218#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 912340#$Ultimate##0 ~n := #in~n; 915382#L25 assume !(~n <= 0); 911486#L26 call #t~ret0 := fact(~n - 1);< 911489#$Ultimate##0 ~n := #in~n; 911488#L25 assume !(~n <= 0); 910858#L26 call #t~ret0 := fact(~n - 1);< 911472#$Ultimate##0 ~n := #in~n; 911482#L25 assume !(~n <= 0); 910874#L26 call #t~ret0 := fact(~n - 1);< 911133#$Ultimate##0 ~n := #in~n; 911476#L25 assume !(~n <= 0); 910863#L26 call #t~ret0 := fact(~n - 1);< 911474#$Ultimate##0 ~n := #in~n; 911473#L25 assume !(~n <= 0); 910859#L26 call #t~ret0 := fact(~n - 1);< 911116#$Ultimate##0 ~n := #in~n; 911419#L25 assume !(~n <= 0); 910855#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912992#factFINAL assume true; 912280#factEXIT >#66#return; 912134#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912301#factFINAL assume true; 912128#factEXIT >#66#return; 912139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912470#factFINAL assume true; 912436#factEXIT >#68#return; 910467#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 910530#$Ultimate##0 ~n := #in~n; 910964#L25 assume !(~n <= 0); 910873#L26 call #t~ret0 := fact(~n - 1);< 910961#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910989#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910808#factFINAL assume true; 910814#factEXIT >#70#return; 910591#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 911046#$Ultimate##0 ~n := #in~n; 911418#L25 assume !(~n <= 0); 910879#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911045#factFINAL assume true; 911009#factEXIT >#72#return; 911030#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 913780#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 913778#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 913776#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 913774#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 912240#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 912340#$Ultimate##0 ~n := #in~n; 915382#L25 assume !(~n <= 0); 911486#L26 call #t~ret0 := fact(~n - 1);< 911489#$Ultimate##0 ~n := #in~n; 911488#L25 assume !(~n <= 0); 910858#L26 call #t~ret0 := fact(~n - 1);< 911472#$Ultimate##0 ~n := #in~n; 911482#L25 assume !(~n <= 0); 910874#L26 call #t~ret0 := fact(~n - 1);< 911133#$Ultimate##0 ~n := #in~n; 911476#L25 assume !(~n <= 0); 910863#L26 call #t~ret0 := fact(~n - 1);< 911474#$Ultimate##0 ~n := #in~n; 911473#L25 assume !(~n <= 0); 910859#L26 call #t~ret0 := fact(~n - 1);< 911116#$Ultimate##0 ~n := #in~n; 911419#L25 assume !(~n <= 0); 910855#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912992#factFINAL assume true; 912280#factEXIT >#66#return; 912278#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912276#factFINAL assume true; 912167#factEXIT >#68#return; 910475#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 910530#$Ultimate##0 ~n := #in~n; 910964#L25 assume !(~n <= 0); 910873#L26 call #t~ret0 := fact(~n - 1);< 910961#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910933#factFINAL assume true; 910531#factEXIT >#70#return; 910631#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 910816#$Ultimate##0 ~n := #in~n; 910963#L25 assume !(~n <= 0); 910873#L26 call #t~ret0 := fact(~n - 1);< 910961#$Ultimate##0 ~n := #in~n; 910973#L25 assume ~n <= 0;#res := 1; 910967#factFINAL assume true; 910934#factEXIT >#66#return; 910932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910927#factFINAL assume true; 910897#factEXIT >#72#return; 910923#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 915449#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 915448#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 915447#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 915446#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 912233#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 912255#$Ultimate##0 ~n := #in~n; 915383#L25 assume !(~n <= 0); 911126#L26 call #t~ret0 := fact(~n - 1);< 912282#$Ultimate##0 ~n := #in~n; 912721#L25 assume !(~n <= 0); 910860#L26 call #t~ret0 := fact(~n - 1);< 911127#$Ultimate##0 ~n := #in~n; 912462#L25 assume !(~n <= 0); 910984#L26 call #t~ret0 := fact(~n - 1);< 910993#$Ultimate##0 ~n := #in~n; 912460#L25 assume !(~n <= 0); 911058#L26 call #t~ret0 := fact(~n - 1);< 911064#$Ultimate##0 ~n := #in~n; 915384#L25 assume !(~n <= 0); 911120#L26 call #t~ret0 := fact(~n - 1);< 911144#$Ultimate##0 ~n := #in~n; 912801#L25 assume !(~n <= 0); 911070#L26 call #t~ret0 := fact(~n - 1);< 911121#$Ultimate##0 ~n := #in~n; 911499#L25 assume !(~n <= 0); 911151#L26 call #t~ret0 := fact(~n - 1);< 911154#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912992#factFINAL assume true; 912280#factEXIT >#66#return; 912278#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912276#factFINAL assume true; 912167#factEXIT >#68#return; 910772#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 912435#$Ultimate##0 ~n := #in~n; 912434#L25 assume !(~n <= 0); 912133#L26 call #t~ret0 := fact(~n - 1);< 912302#$Ultimate##0 ~n := #in~n; 912410#L25 assume !(~n <= 0); 910857#L26 call #t~ret0 := fact(~n - 1);< 911403#$Ultimate##0 ~n := #in~n; 911492#L25 assume !(~n <= 0); 910883#L26 call #t~ret0 := fact(~n - 1);< 911321#$Ultimate##0 ~n := #in~n; 912608#L25 assume !(~n <= 0); 910878#L26 call #t~ret0 := fact(~n - 1);< 911128#$Ultimate##0 ~n := #in~n; 912332#L25 assume !(~n <= 0); 910867#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912992#factFINAL assume true; 912280#factEXIT >#66#return; 912134#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912301#factFINAL assume true; 912128#factEXIT >#66#return; 912137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912467#factFINAL assume true; 912437#factEXIT >#70#return; 910505#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 910770#$Ultimate##0 ~n := #in~n; 911160#L25 assume ~n <= 0;#res := 1; 910526#factFINAL assume true; 910459#factEXIT >#72#return; 910519#L30-3 [2023-02-18 08:58:53,188 INFO L750 eck$LassoCheckResult]: Loop: 910519#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 910769#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 910768#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 910767#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 910764#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 910402#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 910763#$Ultimate##0 ~n := #in~n; 910762#L25 assume !(~n <= 0); 910387#L26 call #t~ret0 := fact(~n - 1);< 910404#$Ultimate##0 ~n := #in~n; 910761#L25 assume !(~n <= 0); 910385#L26 call #t~ret0 := fact(~n - 1);< 910759#$Ultimate##0 ~n := #in~n; 910757#L25 assume !(~n <= 0); 910384#L26 call #t~ret0 := fact(~n - 1);< 910749#$Ultimate##0 ~n := #in~n; 910750#L25 assume !(~n <= 0); 910381#L26 call #t~ret0 := fact(~n - 1);< 911333#$Ultimate##0 ~n := #in~n; 911340#L25 assume !(~n <= 0); 910382#L26 call #t~ret0 := fact(~n - 1);< 911338#$Ultimate##0 ~n := #in~n; 911352#L25 assume !(~n <= 0); 910380#L26 call #t~ret0 := fact(~n - 1);< 910709#$Ultimate##0 ~n := #in~n; 910706#L25 assume !(~n <= 0); 910383#L26 call #t~ret0 := fact(~n - 1);< 910704#$Ultimate##0 ~n := #in~n; 910705#L25 assume ~n <= 0;#res := 1; 911395#factFINAL assume true; 911355#factEXIT >#66#return; 911354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911353#factFINAL assume true; 911347#factEXIT >#66#return; 911345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911344#factFINAL assume true; 911337#factEXIT >#66#return; 911336#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911334#factFINAL assume true; 911331#factEXIT >#66#return; 911330#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911328#factFINAL assume true; 911324#factEXIT >#66#return; 911325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911394#factFINAL assume true; 911364#factEXIT >#66#return; 911365#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910375#factFINAL assume true; 910391#factEXIT >#66#return; 911496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911479#factFINAL assume true; 911413#factEXIT >#74#return; 910716#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 910450#$Ultimate##0 ~n := #in~n; 910742#L25 assume !(~n <= 0); 910389#L26 call #t~ret0 := fact(~n - 1);< 910707#$Ultimate##0 ~n := #in~n; 910706#L25 assume !(~n <= 0); 910383#L26 call #t~ret0 := fact(~n - 1);< 910704#$Ultimate##0 ~n := #in~n; 910706#L25 assume !(~n <= 0); 910383#L26 call #t~ret0 := fact(~n - 1);< 910704#$Ultimate##0 ~n := #in~n; 910706#L25 assume !(~n <= 0); 910383#L26 call #t~ret0 := fact(~n - 1);< 910704#$Ultimate##0 ~n := #in~n; 910706#L25 assume !(~n <= 0); 910383#L26 call #t~ret0 := fact(~n - 1);< 910704#$Ultimate##0 ~n := #in~n; 910706#L25 assume !(~n <= 0); 910383#L26 call #t~ret0 := fact(~n - 1);< 910704#$Ultimate##0 ~n := #in~n; 910705#L25 assume ~n <= 0;#res := 1; 911395#factFINAL assume true; 911355#factEXIT >#66#return; 911354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911353#factFINAL assume true; 911347#factEXIT >#66#return; 911345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911344#factFINAL assume true; 911337#factEXIT >#66#return; 911336#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911334#factFINAL assume true; 911331#factEXIT >#66#return; 911330#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911328#factFINAL assume true; 911324#factEXIT >#66#return; 911325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911394#factFINAL assume true; 911364#factEXIT >#66#return; 911362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911360#factFINAL assume true; 911356#factEXIT >#76#return; 910710#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 910740#$Ultimate##0 ~n := #in~n; 910738#L25 assume !(~n <= 0); 910431#L26 call #t~ret0 := fact(~n - 1);< 910703#$Ultimate##0 ~n := #in~n; 910430#L25 assume ~n <= 0;#res := 1; 910432#factFINAL assume true; 911427#factEXIT >#66#return; 911426#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911425#factFINAL assume true; 911424#factEXIT >#78#return; 911422#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 913141#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 913140#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 913139#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 913137#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 913136#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 913135#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 913133#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 913129#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 910372#$Ultimate##0 ~n := #in~n; 913142#L25 assume !(~n <= 0); 911485#L26 call #t~ret0 := fact(~n - 1);< 911489#$Ultimate##0 ~n := #in~n; 911488#L25 assume !(~n <= 0); 910858#L26 call #t~ret0 := fact(~n - 1);< 911472#$Ultimate##0 ~n := #in~n; 911482#L25 assume !(~n <= 0); 910874#L26 call #t~ret0 := fact(~n - 1);< 911133#$Ultimate##0 ~n := #in~n; 911476#L25 assume !(~n <= 0); 910863#L26 call #t~ret0 := fact(~n - 1);< 911474#$Ultimate##0 ~n := #in~n; 911473#L25 assume !(~n <= 0); 910859#L26 call #t~ret0 := fact(~n - 1);< 911116#$Ultimate##0 ~n := #in~n; 911419#L25 assume !(~n <= 0); 910855#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912992#factFINAL assume true; 912280#factEXIT >#66#return; 912134#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912301#factFINAL assume true; 912128#factEXIT >#66#return; 912135#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 913138#factFINAL assume true; 913128#factEXIT >#68#return; 911276#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 911282#$Ultimate##0 ~n := #in~n; 911398#L25 assume ~n <= 0;#res := 1; 911396#factFINAL assume true; 911263#factEXIT >#70#return; 911281#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 912474#$Ultimate##0 ~n := #in~n; 912472#L25 assume !(~n <= 0); 912130#L26 call #t~ret0 := fact(~n - 1);< 912302#$Ultimate##0 ~n := #in~n; 912410#L25 assume !(~n <= 0); 910857#L26 call #t~ret0 := fact(~n - 1);< 911403#$Ultimate##0 ~n := #in~n; 911492#L25 assume !(~n <= 0); 910883#L26 call #t~ret0 := fact(~n - 1);< 911321#$Ultimate##0 ~n := #in~n; 912608#L25 assume !(~n <= 0); 910878#L26 call #t~ret0 := fact(~n - 1);< 911128#$Ultimate##0 ~n := #in~n; 912332#L25 assume !(~n <= 0); 910867#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912992#factFINAL assume true; 912280#factEXIT >#66#return; 912136#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 913751#factFINAL assume true; 913125#factEXIT >#72#return; 911257#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 913124#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 913123#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 913121#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 913119#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 912207#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 912340#$Ultimate##0 ~n := #in~n; 915382#L25 assume !(~n <= 0); 911486#L26 call #t~ret0 := fact(~n - 1);< 911489#$Ultimate##0 ~n := #in~n; 911488#L25 assume !(~n <= 0); 910858#L26 call #t~ret0 := fact(~n - 1);< 911472#$Ultimate##0 ~n := #in~n; 911482#L25 assume !(~n <= 0); 910874#L26 call #t~ret0 := fact(~n - 1);< 911133#$Ultimate##0 ~n := #in~n; 911476#L25 assume !(~n <= 0); 910863#L26 call #t~ret0 := fact(~n - 1);< 911474#$Ultimate##0 ~n := #in~n; 911473#L25 assume !(~n <= 0); 910859#L26 call #t~ret0 := fact(~n - 1);< 911116#$Ultimate##0 ~n := #in~n; 911419#L25 assume !(~n <= 0); 910855#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912992#factFINAL assume true; 912280#factEXIT >#66#return; 912278#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912276#factFINAL assume true; 912167#factEXIT >#68#return; 910472#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 910529#$Ultimate##0 ~n := #in~n; 910527#L25 assume !(~n <= 0); 910528#L26 call #t~ret0 := fact(~n - 1);< 910939#$Ultimate##0 ~n := #in~n; 910973#L25 assume ~n <= 0;#res := 1; 910967#factFINAL assume true; 910934#factEXIT >#66#return; 910932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910927#factFINAL assume true; 910897#factEXIT >#70#return; 910662#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 910817#$Ultimate##0 ~n := #in~n; 911481#L25 assume !(~n <= 0); 910877#L26 call #t~ret0 := fact(~n - 1);< 911133#$Ultimate##0 ~n := #in~n; 911476#L25 assume !(~n <= 0); 910863#L26 call #t~ret0 := fact(~n - 1);< 911474#$Ultimate##0 ~n := #in~n; 911473#L25 assume !(~n <= 0); 910859#L26 call #t~ret0 := fact(~n - 1);< 911116#$Ultimate##0 ~n := #in~n; 911419#L25 assume !(~n <= 0); 910855#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912992#factFINAL assume true; 912280#factEXIT >#66#return; 912134#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912301#factFINAL assume true; 912128#factEXIT >#66#return; 912137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912467#factFINAL assume true; 912437#factEXIT >#72#return; 910697#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 912284#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 912270#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 912268#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 912269#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 912232#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 912255#$Ultimate##0 ~n := #in~n; 915383#L25 assume !(~n <= 0); 911126#L26 call #t~ret0 := fact(~n - 1);< 912282#$Ultimate##0 ~n := #in~n; 912721#L25 assume !(~n <= 0); 910860#L26 call #t~ret0 := fact(~n - 1);< 911127#$Ultimate##0 ~n := #in~n; 912462#L25 assume !(~n <= 0); 910984#L26 call #t~ret0 := fact(~n - 1);< 910993#$Ultimate##0 ~n := #in~n; 912460#L25 assume !(~n <= 0); 911058#L26 call #t~ret0 := fact(~n - 1);< 911064#$Ultimate##0 ~n := #in~n; 915384#L25 assume !(~n <= 0); 911120#L26 call #t~ret0 := fact(~n - 1);< 911144#$Ultimate##0 ~n := #in~n; 912801#L25 assume !(~n <= 0); 911070#L26 call #t~ret0 := fact(~n - 1);< 911121#$Ultimate##0 ~n := #in~n; 911499#L25 assume !(~n <= 0); 911151#L26 call #t~ret0 := fact(~n - 1);< 911154#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912992#factFINAL assume true; 912280#factEXIT >#66#return; 912278#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912276#factFINAL assume true; 912167#factEXIT >#68#return; 910612#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 910816#$Ultimate##0 ~n := #in~n; 910963#L25 assume !(~n <= 0); 910873#L26 call #t~ret0 := fact(~n - 1);< 910961#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911045#factFINAL assume true; 911009#factEXIT >#70#return; 910653#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 911136#$Ultimate##0 ~n := #in~n; 911205#L25 assume !(~n <= 0); 910888#L26 call #t~ret0 := fact(~n - 1);< 911204#$Ultimate##0 ~n := #in~n; 911203#L25 assume !(~n <= 0); 910987#L26 call #t~ret0 := fact(~n - 1);< 911146#$Ultimate##0 ~n := #in~n; 911162#L25 assume !(~n <= 0); 911060#L26 call #t~ret0 := fact(~n - 1);< 911124#$Ultimate##0 ~n := #in~n; 911312#L25 assume !(~n <= 0); 911071#L26 call #t~ret0 := fact(~n - 1);< 911152#$Ultimate##0 ~n := #in~n; 911313#L25 assume !(~n <= 0); 911067#L26 call #t~ret0 := fact(~n - 1);< 911153#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910989#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910808#factFINAL assume true; 910814#factEXIT >#72#return; 910692#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 912335#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 912334#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 912333#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 912331#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 912174#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 912255#$Ultimate##0 ~n := #in~n; 915383#L25 assume !(~n <= 0); 911126#L26 call #t~ret0 := fact(~n - 1);< 912282#$Ultimate##0 ~n := #in~n; 912721#L25 assume !(~n <= 0); 910860#L26 call #t~ret0 := fact(~n - 1);< 911127#$Ultimate##0 ~n := #in~n; 912462#L25 assume !(~n <= 0); 910984#L26 call #t~ret0 := fact(~n - 1);< 910993#$Ultimate##0 ~n := #in~n; 912460#L25 assume !(~n <= 0); 911058#L26 call #t~ret0 := fact(~n - 1);< 911064#$Ultimate##0 ~n := #in~n; 915384#L25 assume !(~n <= 0); 911120#L26 call #t~ret0 := fact(~n - 1);< 911144#$Ultimate##0 ~n := #in~n; 912801#L25 assume !(~n <= 0); 911070#L26 call #t~ret0 := fact(~n - 1);< 911121#$Ultimate##0 ~n := #in~n; 911499#L25 assume !(~n <= 0); 911151#L26 call #t~ret0 := fact(~n - 1);< 911154#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912992#factFINAL assume true; 912280#factEXIT >#66#return; 912278#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912276#factFINAL assume true; 912167#factEXIT >#68#return; 910611#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 910816#$Ultimate##0 ~n := #in~n; 910963#L25 assume !(~n <= 0); 910873#L26 call #t~ret0 := fact(~n - 1);< 910961#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911143#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911193#factFINAL assume true; 911171#factEXIT >#70#return; 910635#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 911161#$Ultimate##0 ~n := #in~n; 911158#L25 assume !(~n <= 0); 910861#L26 call #t~ret0 := fact(~n - 1);< 911156#$Ultimate##0 ~n := #in~n; 911149#L25 assume !(~n <= 0); 910981#L26 call #t~ret0 := fact(~n - 1);< 911118#$Ultimate##0 ~n := #in~n; 911162#L25 assume !(~n <= 0); 911060#L26 call #t~ret0 := fact(~n - 1);< 911124#$Ultimate##0 ~n := #in~n; 911312#L25 assume !(~n <= 0); 911071#L26 call #t~ret0 := fact(~n - 1);< 911152#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911135#factFINAL assume true; 911078#factEXIT >#72#return; 911090#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 914579#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 914577#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 914575#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 914573#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 912173#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 912255#$Ultimate##0 ~n := #in~n; 915383#L25 assume !(~n <= 0); 911126#L26 call #t~ret0 := fact(~n - 1);< 912282#$Ultimate##0 ~n := #in~n; 912721#L25 assume !(~n <= 0); 910860#L26 call #t~ret0 := fact(~n - 1);< 911127#$Ultimate##0 ~n := #in~n; 912462#L25 assume !(~n <= 0); 910984#L26 call #t~ret0 := fact(~n - 1);< 910993#$Ultimate##0 ~n := #in~n; 912460#L25 assume !(~n <= 0); 911058#L26 call #t~ret0 := fact(~n - 1);< 911064#$Ultimate##0 ~n := #in~n; 915384#L25 assume !(~n <= 0); 911120#L26 call #t~ret0 := fact(~n - 1);< 911144#$Ultimate##0 ~n := #in~n; 912801#L25 assume !(~n <= 0); 911070#L26 call #t~ret0 := fact(~n - 1);< 911121#$Ultimate##0 ~n := #in~n; 911499#L25 assume !(~n <= 0); 911151#L26 call #t~ret0 := fact(~n - 1);< 911154#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912992#factFINAL assume true; 912280#factEXIT >#66#return; 912278#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912276#factFINAL assume true; 912167#factEXIT >#68#return; 910651#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 910816#$Ultimate##0 ~n := #in~n; 910963#L25 assume !(~n <= 0); 910873#L26 call #t~ret0 := fact(~n - 1);< 910961#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911135#factFINAL assume true; 911078#factEXIT >#70#return; 910665#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 911161#$Ultimate##0 ~n := #in~n; 911158#L25 assume !(~n <= 0); 910861#L26 call #t~ret0 := fact(~n - 1);< 911156#$Ultimate##0 ~n := #in~n; 911149#L25 assume !(~n <= 0); 910981#L26 call #t~ret0 := fact(~n - 1);< 911118#$Ultimate##0 ~n := #in~n; 911162#L25 assume !(~n <= 0); 911060#L26 call #t~ret0 := fact(~n - 1);< 911124#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911143#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911193#factFINAL assume true; 911171#factEXIT >#72#return; 911191#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 914602#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 914599#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 914597#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 914596#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 912223#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 912255#$Ultimate##0 ~n := #in~n; 915383#L25 assume !(~n <= 0); 911126#L26 call #t~ret0 := fact(~n - 1);< 912282#$Ultimate##0 ~n := #in~n; 912721#L25 assume !(~n <= 0); 910860#L26 call #t~ret0 := fact(~n - 1);< 911127#$Ultimate##0 ~n := #in~n; 912462#L25 assume !(~n <= 0); 910984#L26 call #t~ret0 := fact(~n - 1);< 910993#$Ultimate##0 ~n := #in~n; 912460#L25 assume !(~n <= 0); 911058#L26 call #t~ret0 := fact(~n - 1);< 911064#$Ultimate##0 ~n := #in~n; 915384#L25 assume !(~n <= 0); 911120#L26 call #t~ret0 := fact(~n - 1);< 911144#$Ultimate##0 ~n := #in~n; 912801#L25 assume !(~n <= 0); 911070#L26 call #t~ret0 := fact(~n - 1);< 911121#$Ultimate##0 ~n := #in~n; 911499#L25 assume !(~n <= 0); 911151#L26 call #t~ret0 := fact(~n - 1);< 911154#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912992#factFINAL assume true; 912280#factEXIT >#66#return; 912278#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912276#factFINAL assume true; 912167#factEXIT >#68#return; 910579#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 910816#$Ultimate##0 ~n := #in~n; 910963#L25 assume !(~n <= 0); 910873#L26 call #t~ret0 := fact(~n - 1);< 910961#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910989#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910808#factFINAL assume true; 910814#factEXIT >#70#return; 910589#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 911161#$Ultimate##0 ~n := #in~n; 911158#L25 assume !(~n <= 0); 910861#L26 call #t~ret0 := fact(~n - 1);< 911156#$Ultimate##0 ~n := #in~n; 911149#L25 assume !(~n <= 0); 910981#L26 call #t~ret0 := fact(~n - 1);< 911118#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911045#factFINAL assume true; 911009#factEXIT >#72#return; 911029#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 914591#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 914590#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 914589#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 914588#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 912210#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 912255#$Ultimate##0 ~n := #in~n; 915383#L25 assume !(~n <= 0); 911126#L26 call #t~ret0 := fact(~n - 1);< 912282#$Ultimate##0 ~n := #in~n; 912721#L25 assume !(~n <= 0); 910860#L26 call #t~ret0 := fact(~n - 1);< 911127#$Ultimate##0 ~n := #in~n; 912462#L25 assume !(~n <= 0); 910984#L26 call #t~ret0 := fact(~n - 1);< 910993#$Ultimate##0 ~n := #in~n; 912460#L25 assume !(~n <= 0); 911058#L26 call #t~ret0 := fact(~n - 1);< 911064#$Ultimate##0 ~n := #in~n; 915384#L25 assume !(~n <= 0); 911120#L26 call #t~ret0 := fact(~n - 1);< 911144#$Ultimate##0 ~n := #in~n; 912801#L25 assume !(~n <= 0); 911070#L26 call #t~ret0 := fact(~n - 1);< 911121#$Ultimate##0 ~n := #in~n; 911499#L25 assume !(~n <= 0); 911151#L26 call #t~ret0 := fact(~n - 1);< 911154#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912992#factFINAL assume true; 912280#factEXIT >#66#return; 912278#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912276#factFINAL assume true; 912167#factEXIT >#68#return; 910619#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 910816#$Ultimate##0 ~n := #in~n; 910963#L25 assume !(~n <= 0); 910873#L26 call #t~ret0 := fact(~n - 1);< 910961#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910933#factFINAL assume true; 910531#factEXIT >#70#return; 910670#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 910929#$Ultimate##0 ~n := #in~n; 911159#L25 assume !(~n <= 0); 910885#L26 call #t~ret0 := fact(~n - 1);< 911157#$Ultimate##0 ~n := #in~n; 910973#L25 assume ~n <= 0;#res := 1; 910967#factFINAL assume true; 910934#factEXIT >#66#return; 910932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910927#factFINAL assume true; 910897#factEXIT >#72#return; 910923#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 915449#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 915448#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 915447#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 915446#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 912233#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 912255#$Ultimate##0 ~n := #in~n; 915383#L25 assume !(~n <= 0); 911126#L26 call #t~ret0 := fact(~n - 1);< 912282#$Ultimate##0 ~n := #in~n; 912721#L25 assume !(~n <= 0); 910860#L26 call #t~ret0 := fact(~n - 1);< 911127#$Ultimate##0 ~n := #in~n; 912462#L25 assume !(~n <= 0); 910984#L26 call #t~ret0 := fact(~n - 1);< 910993#$Ultimate##0 ~n := #in~n; 912460#L25 assume !(~n <= 0); 911058#L26 call #t~ret0 := fact(~n - 1);< 911064#$Ultimate##0 ~n := #in~n; 915384#L25 assume !(~n <= 0); 911120#L26 call #t~ret0 := fact(~n - 1);< 911144#$Ultimate##0 ~n := #in~n; 912801#L25 assume !(~n <= 0); 911070#L26 call #t~ret0 := fact(~n - 1);< 911121#$Ultimate##0 ~n := #in~n; 911499#L25 assume !(~n <= 0); 911151#L26 call #t~ret0 := fact(~n - 1);< 911154#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912992#factFINAL assume true; 912280#factEXIT >#66#return; 912278#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912276#factFINAL assume true; 912167#factEXIT >#68#return; 910772#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 912435#$Ultimate##0 ~n := #in~n; 912434#L25 assume !(~n <= 0); 912133#L26 call #t~ret0 := fact(~n - 1);< 912302#$Ultimate##0 ~n := #in~n; 912410#L25 assume !(~n <= 0); 910857#L26 call #t~ret0 := fact(~n - 1);< 911403#$Ultimate##0 ~n := #in~n; 911492#L25 assume !(~n <= 0); 910883#L26 call #t~ret0 := fact(~n - 1);< 911321#$Ultimate##0 ~n := #in~n; 912608#L25 assume !(~n <= 0); 910878#L26 call #t~ret0 := fact(~n - 1);< 911128#$Ultimate##0 ~n := #in~n; 912332#L25 assume !(~n <= 0); 910867#L26 call #t~ret0 := fact(~n - 1);< 911076#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911315#L25 assume !(~n <= 0); 910875#L26 call #t~ret0 := fact(~n - 1);< 911155#$Ultimate##0 ~n := #in~n; 911310#L25 assume ~n <= 0;#res := 1; 911308#factFINAL assume true; 911150#factEXIT >#66#return; 911148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911117#factFINAL assume true; 911065#factEXIT >#66#return; 911074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911194#factFINAL assume true; 911140#factEXIT >#66#return; 911139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911115#factFINAL assume true; 911054#factEXIT >#66#return; 911052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 910996#factFINAL assume true; 910980#factEXIT >#66#return; 910988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 911125#factFINAL assume true; 910854#factEXIT >#66#return; 910889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912992#factFINAL assume true; 912280#factEXIT >#66#return; 912134#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912301#factFINAL assume true; 912128#factEXIT >#66#return; 912137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 912467#factFINAL assume true; 912437#factEXIT >#70#return; 910505#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 910770#$Ultimate##0 ~n := #in~n; 911160#L25 assume ~n <= 0;#res := 1; 910526#factFINAL assume true; 910459#factEXIT >#72#return; 910519#L30-3 [2023-02-18 08:58:53,188 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:53,188 INFO L85 PathProgramCache]: Analyzing trace with hash -169547192, now seen corresponding path program 79 times [2023-02-18 08:58:53,188 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:53,188 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [5844036] [2023-02-18 08:58:53,188 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:53,188 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:53,224 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:53,225 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [468145878] [2023-02-18 08:58:53,225 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:58:53,225 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:53,225 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:53,229 INFO L229 MonitoredProcess]: Starting monitored process 283 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:58:53,229 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (283)] Waiting until timeout for monitored process [2023-02-18 08:58:54,437 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:58:54,453 INFO L263 TraceCheckSpWp]: Trace formula consists of 4207 conjuncts, 15 conjunts are in the unsatisfiable core [2023-02-18 08:58:54,464 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:54,617 INFO L134 CoverageAnalysis]: Checked inductivity of 252794 backedges. 98856 proven. 338 refuted. 0 times theorem prover too weak. 153600 trivial. 0 not checked. [2023-02-18 08:58:54,618 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:54,735 INFO L134 CoverageAnalysis]: Checked inductivity of 252794 backedges. 2392 proven. 4555 refuted. 0 times theorem prover too weak. 245847 trivial. 0 not checked. [2023-02-18 08:58:54,736 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:54,736 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [5844036] [2023-02-18 08:58:54,736 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:54,736 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [468145878] [2023-02-18 08:58:54,736 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [468145878] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:54,736 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:54,736 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 16 [2023-02-18 08:58:54,736 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [895307720] [2023-02-18 08:58:54,736 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:54,737 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:58:54,737 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:54,737 INFO L85 PathProgramCache]: Analyzing trace with hash 2137180923, now seen corresponding path program 79 times [2023-02-18 08:58:54,737 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:54,737 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1125099774] [2023-02-18 08:58:54,737 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:54,737 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:54,759 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:54,760 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [583934966] [2023-02-18 08:58:54,760 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:58:54,760 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:54,760 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:54,762 INFO L229 MonitoredProcess]: Starting monitored process 284 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:58:54,763 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (284)] Waiting until timeout for monitored process [2023-02-18 08:58:55,730 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:58:55,738 INFO L263 TraceCheckSpWp]: Trace formula consists of 2027 conjuncts, 40 conjunts are in the unsatisfiable core [2023-02-18 08:58:55,744 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:58:55,889 INFO L134 CoverageAnalysis]: Checked inductivity of 66011 backedges. 18878 proven. 735 refuted. 0 times theorem prover too weak. 46398 trivial. 0 not checked. [2023-02-18 08:58:55,890 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:58:56,437 INFO L134 CoverageAnalysis]: Checked inductivity of 66011 backedges. 502 proven. 10361 refuted. 0 times theorem prover too weak. 55148 trivial. 0 not checked. [2023-02-18 08:58:56,437 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:58:56,437 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1125099774] [2023-02-18 08:58:56,437 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:58:56,437 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [583934966] [2023-02-18 08:58:56,437 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [583934966] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:58:56,437 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:58:56,437 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [24, 38] total 41 [2023-02-18 08:58:56,437 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1281621756] [2023-02-18 08:58:56,437 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:58:56,438 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:58:56,438 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:58:56,438 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 41 interpolants. [2023-02-18 08:58:56,438 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=226, Invalid=1414, Unknown=0, NotChecked=0, Total=1640 [2023-02-18 08:58:56,439 INFO L87 Difference]: Start difference. First operand 5294 states and 8303 transitions. cyclomatic complexity: 3051 Second operand has 41 states, 38 states have (on average 2.5789473684210527) internal successors, (98), 41 states have internal predecessors, (98), 23 states have call successors, (30), 2 states have call predecessors, (30), 18 states have return successors, (42), 18 states have call predecessors, (42), 23 states have call successors, (42) [2023-02-18 08:58:59,164 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:58:59,164 INFO L93 Difference]: Finished difference Result 6795 states and 11496 transitions. [2023-02-18 08:58:59,164 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 6795 states and 11496 transitions. [2023-02-18 08:58:59,198 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 1288 [2023-02-18 08:58:59,239 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 6795 states to 6791 states and 11484 transitions. [2023-02-18 08:58:59,240 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 495 [2023-02-18 08:58:59,240 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 495 [2023-02-18 08:58:59,240 INFO L73 IsDeterministic]: Start isDeterministic. Operand 6791 states and 11484 transitions. [2023-02-18 08:58:59,241 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:58:59,241 INFO L218 hiAutomatonCegarLoop]: Abstraction has 6791 states and 11484 transitions. [2023-02-18 08:58:59,243 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 6791 states and 11484 transitions. [2023-02-18 08:58:59,309 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 6791 to 5432. [2023-02-18 08:58:59,313 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5432 states, 3311 states have (on average 1.0471156750226518) internal successors, (3467), 3312 states have internal predecessors, (3467), 1776 states have call successors, (1798), 491 states have call predecessors, (1798), 345 states have return successors, (3395), 1628 states have call predecessors, (3395), 1776 states have call successors, (3395) [2023-02-18 08:58:59,329 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5432 states to 5432 states and 8660 transitions. [2023-02-18 08:58:59,329 INFO L240 hiAutomatonCegarLoop]: Abstraction has 5432 states and 8660 transitions. [2023-02-18 08:58:59,329 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 44 states. [2023-02-18 08:58:59,330 INFO L428 stractBuchiCegarLoop]: Abstraction has 5432 states and 8660 transitions. [2023-02-18 08:58:59,330 INFO L335 stractBuchiCegarLoop]: ======== Iteration 92 ============ [2023-02-18 08:58:59,330 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 5432 states and 8660 transitions. [2023-02-18 08:58:59,340 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 860 [2023-02-18 08:58:59,340 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:58:59,340 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:58:59,346 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [321, 321, 240, 240, 240, 240, 81, 27, 26, 20, 20, 20, 20, 20, 20, 20, 19, 19, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 4, 4, 1, 1, 1, 1] [2023-02-18 08:58:59,346 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [158, 158, 131, 131, 131, 131, 27, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:58:59,347 INFO L748 eck$LassoCheckResult]: Stem: 940124#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 940063#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; 940064#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 940086#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; 940125#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 945034#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945020#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 940061#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 940062#$Ultimate##0 ~n := #in~n; 945033#L25 assume ~n <= 0;#res := 1; 945030#factFINAL assume true; 945014#factEXIT >#68#return; 940116#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940117#$Ultimate##0 ~n := #in~n; 945347#L25 assume ~n <= 0;#res := 1; 945345#factFINAL assume true; 945344#factEXIT >#70#return; 940052#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940053#$Ultimate##0 ~n := #in~n; 945282#L25 assume ~n <= 0;#res := 1; 945279#factFINAL assume true; 945041#factEXIT >#72#return; 940082#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 940083#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 940097#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 940115#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 940092#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 940035#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 940036#$Ultimate##0 ~n := #in~n; 945342#L25 assume !(~n <= 0); 945339#L26 call #t~ret0 := fact(~n - 1);< 945340#$Ultimate##0 ~n := #in~n; 945343#L25 assume ~n <= 0;#res := 1; 945341#factFINAL assume true; 945338#factEXIT >#66#return; 945336#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945334#factFINAL assume true; 945332#factEXIT >#74#return; 945326#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 945327#$Ultimate##0 ~n := #in~n; 945333#L25 assume ~n <= 0;#res := 1; 945331#factFINAL assume true; 945325#factEXIT >#76#return; 940128#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940129#$Ultimate##0 ~n := #in~n; 945182#L25 assume !(~n <= 0); 945179#L26 call #t~ret0 := fact(~n - 1);< 945180#$Ultimate##0 ~n := #in~n; 945192#L25 assume ~n <= 0;#res := 1; 945191#factFINAL assume true; 945178#factEXIT >#66#return; 945177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945176#factFINAL assume true; 945174#factEXIT >#78#return; 945167#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945165#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 945164#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945162#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945161#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 945159#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 945160#$Ultimate##0 ~n := #in~n; 945175#L25 assume !(~n <= 0); 945169#L26 call #t~ret0 := fact(~n - 1);< 945173#$Ultimate##0 ~n := #in~n; 945184#L25 assume !(~n <= 0); 945171#L26 call #t~ret0 := fact(~n - 1);< 945190#$Ultimate##0 ~n := #in~n; 945198#L25 assume ~n <= 0;#res := 1; 945196#factFINAL assume true; 945186#factEXIT >#66#return; 945187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945195#factFINAL assume true; 945188#factEXIT >#66#return; 945166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945163#factFINAL assume true; 945158#factEXIT >#74#return; 945156#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 945157#$Ultimate##0 ~n := #in~n; 945199#L25 assume ~n <= 0;#res := 1; 945197#factFINAL assume true; 945155#factEXIT >#76#return; 945153#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 945154#$Ultimate##0 ~n := #in~n; 945183#L25 assume !(~n <= 0); 945170#L26 call #t~ret0 := fact(~n - 1);< 945173#$Ultimate##0 ~n := #in~n; 945184#L25 assume !(~n <= 0); 945171#L26 call #t~ret0 := fact(~n - 1);< 945190#$Ultimate##0 ~n := #in~n; 945198#L25 assume ~n <= 0;#res := 1; 945196#factFINAL assume true; 945186#factEXIT >#66#return; 945187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945195#factFINAL assume true; 945188#factEXIT >#66#return; 945189#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945200#factFINAL assume true; 945152#factEXIT >#78#return; 945150#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945145#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 945143#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945141#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945139#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 945137#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 945138#$Ultimate##0 ~n := #in~n; 945151#L25 assume !(~n <= 0); 945148#L26 call #t~ret0 := fact(~n - 1);< 945149#$Ultimate##0 ~n := #in~n; 945207#L25 assume !(~n <= 0); 945147#L26 call #t~ret0 := fact(~n - 1);< 945205#$Ultimate##0 ~n := #in~n; 945207#L25 assume !(~n <= 0); 945147#L26 call #t~ret0 := fact(~n - 1);< 945205#$Ultimate##0 ~n := #in~n; 945231#L25 assume ~n <= 0;#res := 1; 945229#factFINAL assume true; 945212#factEXIT >#66#return; 945210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945208#factFINAL assume true; 945204#factEXIT >#66#return; 945202#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945201#factFINAL assume true; 945146#factEXIT >#66#return; 945144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945142#factFINAL assume true; 945136#factEXIT >#74#return; 945134#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 945135#$Ultimate##0 ~n := #in~n; 945206#L25 assume ~n <= 0;#res := 1; 945203#factFINAL assume true; 945133#factEXIT >#76#return; 940094#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 945132#$Ultimate##0 ~n := #in~n; 945224#L25 assume !(~n <= 0); 945215#L26 call #t~ret0 := fact(~n - 1);< 945223#$Ultimate##0 ~n := #in~n; 945234#L25 assume !(~n <= 0); 945217#L26 call #t~ret0 := fact(~n - 1);< 945233#$Ultimate##0 ~n := #in~n; 945234#L25 assume !(~n <= 0); 945217#L26 call #t~ret0 := fact(~n - 1);< 945233#$Ultimate##0 ~n := #in~n; 945256#L25 assume ~n <= 0;#res := 1; 945253#factFINAL assume true; 945232#factEXIT >#66#return; 945230#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945228#factFINAL assume true; 945226#factEXIT >#66#return; 945225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945222#factFINAL assume true; 945213#factEXIT >#66#return; 940093#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940095#factFINAL assume true; 945130#factEXIT >#78#return; 945076#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945075#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 945038#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945037#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 940085#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 940078#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 940079#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 942563#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 942471#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 942476#$Ultimate##0 ~n := #in~n; 942528#L25 assume !(~n <= 0); 942492#L26 call #t~ret0 := fact(~n - 1);< 942526#$Ultimate##0 ~n := #in~n; 943212#L25 assume ~n <= 0;#res := 1; 943207#factFINAL assume true; 943185#factEXIT >#66#return; 943192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943309#factFINAL assume true; 943307#factEXIT >#68#return; 943304#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 942464#$Ultimate##0 ~n := #in~n; 943310#L25 assume ~n <= 0;#res := 1; 943306#factFINAL assume true; 943303#factEXIT >#70#return; 943201#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 943202#$Ultimate##0 ~n := #in~n; 943206#L25 assume !(~n <= 0); 942496#L26 call #t~ret0 := fact(~n - 1);< 943197#$Ultimate##0 ~n := #in~n; 943212#L25 assume ~n <= 0;#res := 1; 943207#factFINAL assume true; 943185#factEXIT >#66#return; 943196#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943205#factFINAL assume true; 943200#factEXIT >#72#return; 943198#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 943184#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 943182#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 943180#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 943179#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 943176#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 943178#$Ultimate##0 ~n := #in~n; 943199#L25 assume !(~n <= 0); 942501#L26 call #t~ret0 := fact(~n - 1);< 943197#$Ultimate##0 ~n := #in~n; 943212#L25 assume ~n <= 0;#res := 1; 943207#factFINAL assume true; 943185#factEXIT >#66#return; 943183#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943181#factFINAL assume true; 943170#factEXIT >#68#return; 943161#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 943169#$Ultimate##0 ~n := #in~n; 943267#L25 assume !(~n <= 0); 943189#L26 call #t~ret0 := fact(~n - 1);< 943209#$Ultimate##0 ~n := #in~n; 943212#L25 assume ~n <= 0;#res := 1; 943207#factFINAL assume true; 943185#factEXIT >#66#return; 943193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943213#factFINAL assume true; 943149#factEXIT >#70#return; 943135#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 943147#$Ultimate##0 ~n := #in~n; 943317#L25 assume ~n <= 0;#res := 1; 943263#factFINAL assume true; 943133#factEXIT >#72#return; 943132#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 943130#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 943129#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); 943126#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 943104#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 943125#$Ultimate##0 ~n := #in~n; 943148#L25 assume !(~n <= 0); 942504#L26 call #t~ret0 := fact(~n - 1);< 943131#$Ultimate##0 ~n := #in~n; 943402#L25 assume !(~n <= 0); 942502#L26 call #t~ret0 := fact(~n - 1);< 943399#$Ultimate##0 ~n := #in~n; 942607#L25 assume ~n <= 0;#res := 1; 942602#factFINAL assume true; 942553#factEXIT >#66#return; 942549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942544#factFINAL assume true; 942487#factEXIT >#66#return; 942523#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943128#factFINAL assume true; 943124#factEXIT >#74#return; 943053#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 943117#$Ultimate##0 ~n := #in~n; 943210#L25 assume !(~n <= 0); 942512#L26 call #t~ret0 := fact(~n - 1);< 942526#$Ultimate##0 ~n := #in~n; 943212#L25 assume ~n <= 0;#res := 1; 943207#factFINAL assume true; 943185#factEXIT >#66#return; 943194#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943214#factFINAL assume true; 943046#factEXIT >#76#return; 943054#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 943077#$Ultimate##0 ~n := #in~n; 943220#L25 assume !(~n <= 0); 943190#L26 call #t~ret0 := fact(~n - 1);< 943209#$Ultimate##0 ~n := #in~n; 943212#L25 assume ~n <= 0;#res := 1; 943207#factFINAL assume true; 943185#factEXIT >#66#return; 943194#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943214#factFINAL assume true; 943046#factEXIT >#78#return; 943075#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 943110#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 943108#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 943106#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 943004#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 942788#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 942840#$Ultimate##0 ~n := #in~n; 943352#L25 assume !(~n <= 0); 942866#L26 call #t~ret0 := fact(~n - 1);< 943348#$Ultimate##0 ~n := #in~n; 943346#L25 assume !(~n <= 0); 942863#L26 call #t~ret0 := fact(~n - 1);< 942907#$Ultimate##0 ~n := #in~n; 943346#L25 assume !(~n <= 0); 942863#L26 call #t~ret0 := fact(~n - 1);< 942907#$Ultimate##0 ~n := #in~n; 942928#L25 assume ~n <= 0;#res := 1; 942925#factFINAL assume true; 942905#factEXIT >#66#return; 942900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942887#factFINAL assume true; 942862#factEXIT >#66#return; 942881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943121#factFINAL assume true; 943027#factEXIT >#66#return; 943025#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942998#factFINAL assume true; 942989#factEXIT >#74#return; 942767#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 942967#$Ultimate##0 ~n := #in~n; 943024#L25 assume !(~n <= 0); 942864#L26 call #t~ret0 := fact(~n - 1);< 942997#$Ultimate##0 ~n := #in~n; 942945#L25 assume ~n <= 0;#res := 1; 943007#factFINAL assume true; 942992#factEXIT >#66#return; 942988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942981#factFINAL assume true; 942968#factEXIT >#76#return; 942792#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 942805#$Ultimate##0 ~n := #in~n; 942964#L25 assume !(~n <= 0); 942870#L26 call #t~ret0 := fact(~n - 1);< 942960#$Ultimate##0 ~n := #in~n; 942959#L25 assume !(~n <= 0); 942869#L26 call #t~ret0 := fact(~n - 1);< 942954#$Ultimate##0 ~n := #in~n; 942928#L25 assume ~n <= 0;#res := 1; 942925#factFINAL assume true; 942905#factEXIT >#66#return; 942900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942887#factFINAL assume true; 942862#factEXIT >#66#return; 942842#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942838#factFINAL assume true; 942764#factEXIT >#78#return; 942760#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 942759#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 942758#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 942757#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 942755#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 942735#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 942733#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 942732#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 942472#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 942476#$Ultimate##0 ~n := #in~n; 942528#L25 assume !(~n <= 0); 942492#L26 call #t~ret0 := fact(~n - 1);< 942526#$Ultimate##0 ~n := #in~n; 944976#L25 assume !(~n <= 0); 942499#L26 call #t~ret0 := fact(~n - 1);< 942555#$Ultimate##0 ~n := #in~n; 942607#L25 assume ~n <= 0;#res := 1; 942602#factFINAL assume true; 942553#factEXIT >#66#return; 942549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942544#factFINAL assume true; 942487#factEXIT >#66#return; 942485#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942484#factFINAL assume true; 942468#factEXIT >#68#return; 942457#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 942466#$Ultimate##0 ~n := #in~n; 942591#L25 assume ~n <= 0;#res := 1; 942535#factFINAL assume true; 942456#factEXIT >#70#return; 942418#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 942427#$Ultimate##0 ~n := #in~n; 942541#L25 assume !(~n <= 0); 942343#L26 call #t~ret0 := fact(~n - 1);< 942364#$Ultimate##0 ~n := #in~n; 945356#L25 assume !(~n <= 0); 942449#L26 call #t~ret0 := fact(~n - 1);< 942451#$Ultimate##0 ~n := #in~n; 942483#L25 assume ~n <= 0;#res := 1; 942482#factFINAL assume true; 942448#factEXIT >#66#return; 942447#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942428#factFINAL assume true; 942334#factEXIT >#66#return; 942351#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942455#factFINAL assume true; 942415#factEXIT >#72#return; 942424#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 942615#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 942610#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 942608#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 942603#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 942369#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 942386#$Ultimate##0 ~n := #in~n; 942407#L25 assume !(~n <= 0); 942342#L26 call #t~ret0 := fact(~n - 1);< 942364#$Ultimate##0 ~n := #in~n; 945356#L25 assume !(~n <= 0); 942449#L26 call #t~ret0 := fact(~n - 1);< 942451#$Ultimate##0 ~n := #in~n; 942483#L25 assume ~n <= 0;#res := 1; 942482#factFINAL assume true; 942448#factEXIT >#66#return; 942447#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942428#factFINAL assume true; 942334#factEXIT >#66#return; 942350#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942389#factFINAL assume true; 942367#factEXIT >#68#return; 942381#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 942406#$Ultimate##0 ~n := #in~n; 942440#L25 assume !(~n <= 0); 942243#L26 call #t~ret0 := fact(~n - 1);< 942250#$Ultimate##0 ~n := #in~n; 942264#L25 assume ~n <= 0;#res := 1; 942261#factFINAL assume true; 942229#factEXIT >#66#return; 942248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942410#factFINAL assume true; 942394#factEXIT >#70#return; 942399#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 942406#$Ultimate##0 ~n := #in~n; 942440#L25 assume !(~n <= 0); 942243#L26 call #t~ret0 := fact(~n - 1);< 942250#$Ultimate##0 ~n := #in~n; 942264#L25 assume ~n <= 0;#res := 1; 942261#factFINAL assume true; 942229#factEXIT >#66#return; 942248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942410#factFINAL assume true; 942394#factEXIT >#72#return; 942404#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 942589#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 942587#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 942585#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 942583#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 942373#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 942386#$Ultimate##0 ~n := #in~n; 942407#L25 assume !(~n <= 0); 942342#L26 call #t~ret0 := fact(~n - 1);< 942364#$Ultimate##0 ~n := #in~n; 945356#L25 assume !(~n <= 0); 942449#L26 call #t~ret0 := fact(~n - 1);< 942451#$Ultimate##0 ~n := #in~n; 942483#L25 assume ~n <= 0;#res := 1; 942482#factFINAL assume true; 942448#factEXIT >#66#return; 942447#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942428#factFINAL assume true; 942334#factEXIT >#66#return; 942350#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942389#factFINAL assume true; 942367#factEXIT >#68#return; 942332#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 942333#$Ultimate##0 ~n := #in~n; 942480#L25 assume !(~n <= 0); 942273#L26 call #t~ret0 := fact(~n - 1);< 942352#$Ultimate##0 ~n := #in~n; 942534#L25 assume !(~n <= 0); 942335#L26 call #t~ret0 := fact(~n - 1);< 942452#$Ultimate##0 ~n := #in~n; 942483#L25 assume ~n <= 0;#res := 1; 942482#factFINAL assume true; 942448#factEXIT >#66#return; 942447#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942428#factFINAL assume true; 942334#factEXIT >#66#return; 942345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942412#factFINAL assume true; 942326#factEXIT >#70#return; 942316#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 942323#$Ultimate##0 ~n := #in~n; 942442#L25 assume ~n <= 0;#res := 1; 942360#factFINAL assume true; 942311#factEXIT >#72#return; 942321#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 942570#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 942569#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 942567#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 942565#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 942107#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 942120#$Ultimate##0 ~n := #in~n; 942114#L25 assume !(~n <= 0); 942010#L26 call #t~ret0 := fact(~n - 1);< 942089#$Ultimate##0 ~n := #in~n; 942086#L25 assume !(~n <= 0); 942009#L26 call #t~ret0 := fact(~n - 1);< 942030#$Ultimate##0 ~n := #in~n; 942086#L25 assume !(~n <= 0); 942009#L26 call #t~ret0 := fact(~n - 1);< 942030#$Ultimate##0 ~n := #in~n; 942033#L25 assume ~n <= 0;#res := 1; 942031#factFINAL assume true; 942023#factEXIT >#66#return; 942004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942018#factFINAL assume true; 942019#factEXIT >#66#return; 942021#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942134#factFINAL assume true; 942129#factEXIT >#66#return; 942132#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942571#factFINAL assume true; 942532#factEXIT >#74#return; 942063#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 942145#$Ultimate##0 ~n := #in~n; 942143#L25 assume !(~n <= 0); 942006#L26 call #t~ret0 := fact(~n - 1);< 942041#$Ultimate##0 ~n := #in~n; 942038#L25 assume !(~n <= 0); 942017#L26 call #t~ret0 := fact(~n - 1);< 942034#$Ultimate##0 ~n := #in~n; 942033#L25 assume ~n <= 0;#res := 1; 942031#factFINAL assume true; 942023#factEXIT >#66#return; 942004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942018#factFINAL assume true; 942019#factEXIT >#66#return; 942020#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942446#factFINAL assume true; 942436#factEXIT >#76#return; 942002#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 942354#$Ultimate##0 ~n := #in~n; 942270#L25 assume !(~n <= 0); 941988#L26 call #t~ret0 := fact(~n - 1);< 942000#$Ultimate##0 ~n := #in~n; 942003#L25 assume ~n <= 0;#res := 1; 942001#factFINAL assume true; 941986#factEXIT >#66#return; 941996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945004#factFINAL assume true; 942163#factEXIT >#78#return; 940065#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 940066#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 940087#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 940114#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 940084#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 940076#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 940077#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 941896#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 940670#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 941586#$Ultimate##0 ~n := #in~n; 941580#L25 assume !(~n <= 0); 940503#L26 call #t~ret0 := fact(~n - 1);< 940668#$Ultimate##0 ~n := #in~n; 945463#L25 assume !(~n <= 0); 940486#L26 call #t~ret0 := fact(~n - 1);< 940501#$Ultimate##0 ~n := #in~n; 945464#L25 assume !(~n <= 0); 940111#L26 call #t~ret0 := fact(~n - 1);< 940119#$Ultimate##0 ~n := #in~n; 940110#L25 assume !(~n <= 0); 940113#L26 call #t~ret0 := fact(~n - 1);< 940546#$Ultimate##0 ~n := #in~n; 945418#L25 assume !(~n <= 0); 940565#L26 call #t~ret0 := fact(~n - 1);< 940568#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940666#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941615#factFINAL assume true; 941613#factEXIT >#68#return; 940969#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940980#$Ultimate##0 ~n := #in~n; 940984#L25 assume ~n <= 0;#res := 1; 940981#factFINAL assume true; 940967#factEXIT >#70#return; 940634#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940685#$Ultimate##0 ~n := #in~n; 940632#L25 assume !(~n <= 0); 940438#L26 call #t~ret0 := fact(~n - 1);< 940583#$Ultimate##0 ~n := #in~n; 940582#L25 assume !(~n <= 0); 940436#L26 call #t~ret0 := fact(~n - 1);< 940580#$Ultimate##0 ~n := #in~n; 940578#L25 assume !(~n <= 0); 940435#L26 call #t~ret0 := fact(~n - 1);< 940533#$Ultimate##0 ~n := #in~n; 940577#L25 assume !(~n <= 0); 940413#L26 call #t~ret0 := fact(~n - 1);< 940511#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940667#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941612#factFINAL assume true; 941610#factEXIT >#72#return; 940963#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945433#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 945432#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945431#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945429#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 940647#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 940656#$Ultimate##0 ~n := #in~n; 940676#L25 assume !(~n <= 0); 940502#L26 call #t~ret0 := fact(~n - 1);< 940668#$Ultimate##0 ~n := #in~n; 945463#L25 assume !(~n <= 0); 940486#L26 call #t~ret0 := fact(~n - 1);< 940501#$Ultimate##0 ~n := #in~n; 945464#L25 assume !(~n <= 0); 940111#L26 call #t~ret0 := fact(~n - 1);< 940119#$Ultimate##0 ~n := #in~n; 940110#L25 assume !(~n <= 0); 940113#L26 call #t~ret0 := fact(~n - 1);< 940546#$Ultimate##0 ~n := #in~n; 945418#L25 assume !(~n <= 0); 940565#L26 call #t~ret0 := fact(~n - 1);< 940568#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940657#factFINAL assume true; 940639#factEXIT >#68#return; 940654#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940764#$Ultimate##0 ~n := #in~n; 941557#L25 assume !(~n <= 0); 941466#L26 call #t~ret0 := fact(~n - 1);< 941469#$Ultimate##0 ~n := #in~n; 941514#L25 assume ~n <= 0;#res := 1; 941475#factFINAL assume true; 941465#factEXIT >#66#return; 941468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941728#factFINAL assume true; 940737#factEXIT >#70#return; 940755#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940899#$Ultimate##0 ~n := #in~n; 941831#L25 assume !(~n <= 0); 940492#L26 call #t~ret0 := fact(~n - 1);< 945424#$Ultimate##0 ~n := #in~n; 945423#L25 assume !(~n <= 0); 940522#L26 call #t~ret0 := fact(~n - 1);< 945422#$Ultimate##0 ~n := #in~n; 945421#L25 assume !(~n <= 0); 940541#L26 call #t~ret0 := fact(~n - 1);< 940567#$Ultimate##0 ~n := #in~n; 945418#L25 assume !(~n <= 0); 940565#L26 call #t~ret0 := fact(~n - 1);< 940568#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940898#factFINAL assume true; 940870#factEXIT >#72#return; 940896#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 940994#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 940992#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 940990#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 940681#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 940643#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 940656#$Ultimate##0 ~n := #in~n; 940676#L25 assume !(~n <= 0); 940502#L26 call #t~ret0 := fact(~n - 1);< 940668#$Ultimate##0 ~n := #in~n; 945463#L25 assume !(~n <= 0); 940486#L26 call #t~ret0 := fact(~n - 1);< 940501#$Ultimate##0 ~n := #in~n; 945464#L25 assume !(~n <= 0); 940111#L26 call #t~ret0 := fact(~n - 1);< 940119#$Ultimate##0 ~n := #in~n; 940110#L25 assume !(~n <= 0); 940113#L26 call #t~ret0 := fact(~n - 1);< 940546#$Ultimate##0 ~n := #in~n; 945418#L25 assume !(~n <= 0); 940565#L26 call #t~ret0 := fact(~n - 1);< 940568#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940657#factFINAL assume true; 940639#factEXIT >#68#return; 940576#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940631#$Ultimate##0 ~n := #in~n; 940574#L25 assume !(~n <= 0); 940426#L26 call #t~ret0 := fact(~n - 1);< 940511#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940736#factFINAL assume true; 940713#factEXIT >#70#return; 940534#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940712#$Ultimate##0 ~n := #in~n; 941834#L25 assume !(~n <= 0); 940112#L26 call #t~ret0 := fact(~n - 1);< 940119#$Ultimate##0 ~n := #in~n; 940110#L25 assume !(~n <= 0); 940113#L26 call #t~ret0 := fact(~n - 1);< 940546#$Ultimate##0 ~n := #in~n; 945418#L25 assume !(~n <= 0); 940565#L26 call #t~ret0 := fact(~n - 1);< 940568#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940524#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940709#factFINAL assume true; 940686#factEXIT >#72#return; 940701#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 940828#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 940826#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 940824#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 940823#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 940645#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 940656#$Ultimate##0 ~n := #in~n; 940676#L25 assume !(~n <= 0); 940502#L26 call #t~ret0 := fact(~n - 1);< 940668#$Ultimate##0 ~n := #in~n; 945463#L25 assume !(~n <= 0); 940486#L26 call #t~ret0 := fact(~n - 1);< 940501#$Ultimate##0 ~n := #in~n; 945464#L25 assume !(~n <= 0); 940111#L26 call #t~ret0 := fact(~n - 1);< 940119#$Ultimate##0 ~n := #in~n; 940110#L25 assume !(~n <= 0); 940113#L26 call #t~ret0 := fact(~n - 1);< 940546#$Ultimate##0 ~n := #in~n; 945418#L25 assume !(~n <= 0); 940565#L26 call #t~ret0 := fact(~n - 1);< 940568#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940657#factFINAL assume true; 940639#factEXIT >#68#return; 940531#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940684#$Ultimate##0 ~n := #in~n; 941832#L25 assume !(~n <= 0); 940427#L26 call #t~ret0 := fact(~n - 1);< 940533#$Ultimate##0 ~n := #in~n; 940577#L25 assume !(~n <= 0); 940413#L26 call #t~ret0 := fact(~n - 1);< 940511#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940524#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940709#factFINAL assume true; 940686#factEXIT >#70#return; 940550#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940620#$Ultimate##0 ~n := #in~n; 940621#L25 assume !(~n <= 0); 940540#L26 call #t~ret0 := fact(~n - 1);< 940551#$Ultimate##0 ~n := #in~n; 945419#L25 assume !(~n <= 0); 940539#L26 call #t~ret0 := fact(~n - 1);< 940567#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940736#factFINAL assume true; 940713#factEXIT >#72#return; 940729#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 940910#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 940906#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 940903#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 940902#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 940648#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 940656#$Ultimate##0 ~n := #in~n; 940676#L25 assume !(~n <= 0); 940502#L26 call #t~ret0 := fact(~n - 1);< 940668#$Ultimate##0 ~n := #in~n; 945463#L25 assume !(~n <= 0); 940486#L26 call #t~ret0 := fact(~n - 1);< 940501#$Ultimate##0 ~n := #in~n; 945464#L25 assume !(~n <= 0); 940111#L26 call #t~ret0 := fact(~n - 1);< 940119#$Ultimate##0 ~n := #in~n; 940110#L25 assume !(~n <= 0); 940113#L26 call #t~ret0 := fact(~n - 1);< 940546#$Ultimate##0 ~n := #in~n; 945418#L25 assume !(~n <= 0); 940565#L26 call #t~ret0 := fact(~n - 1);< 940568#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940657#factFINAL assume true; 940639#factEXIT >#68#return; 940528#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940684#$Ultimate##0 ~n := #in~n; 941832#L25 assume !(~n <= 0); 940427#L26 call #t~ret0 := fact(~n - 1);< 940533#$Ultimate##0 ~n := #in~n; 940577#L25 assume !(~n <= 0); 940413#L26 call #t~ret0 := fact(~n - 1);< 940511#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940898#factFINAL assume true; 940870#factEXIT >#70#return; 940747#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940869#$Ultimate##0 ~n := #in~n; 941555#L25 assume !(~n <= 0); 940199#L26 call #t~ret0 := fact(~n - 1);< 941476#$Ultimate##0 ~n := #in~n; 941514#L25 assume ~n <= 0;#res := 1; 941475#factFINAL assume true; 941465#factEXIT >#66#return; 941468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941728#factFINAL assume true; 940737#factEXIT >#72#return; 940763#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 940864#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 940861#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 940854#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 940852#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 940644#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 940656#$Ultimate##0 ~n := #in~n; 940676#L25 assume !(~n <= 0); 940502#L26 call #t~ret0 := fact(~n - 1);< 940668#$Ultimate##0 ~n := #in~n; 945463#L25 assume !(~n <= 0); 940486#L26 call #t~ret0 := fact(~n - 1);< 940501#$Ultimate##0 ~n := #in~n; 945464#L25 assume !(~n <= 0); 940111#L26 call #t~ret0 := fact(~n - 1);< 940119#$Ultimate##0 ~n := #in~n; 940110#L25 assume !(~n <= 0); 940113#L26 call #t~ret0 := fact(~n - 1);< 940546#$Ultimate##0 ~n := #in~n; 945418#L25 assume !(~n <= 0); 940565#L26 call #t~ret0 := fact(~n - 1);< 940568#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940657#factFINAL assume true; 940639#factEXIT >#68#return; 940530#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940684#$Ultimate##0 ~n := #in~n; 941832#L25 assume !(~n <= 0); 940427#L26 call #t~ret0 := fact(~n - 1);< 940533#$Ultimate##0 ~n := #in~n; 940577#L25 assume !(~n <= 0); 940413#L26 call #t~ret0 := fact(~n - 1);< 940511#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940682#factFINAL assume true; 940683#factEXIT >#70#return; 940131#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940196#$Ultimate##0 ~n := #in~n; 940198#L25 assume ~n <= 0;#res := 1; 940197#factFINAL assume true; 940130#factEXIT >#72#return; 940189#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 941564#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 941554#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 941552#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 941550#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 941271#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 941366#$Ultimate##0 ~n := #in~n; 941478#L25 assume !(~n <= 0); 941309#L26 call #t~ret0 := fact(~n - 1);< 941311#$Ultimate##0 ~n := #in~n; 941310#L25 assume !(~n <= 0); 941305#L26 call #t~ret0 := fact(~n - 1);< 941308#$Ultimate##0 ~n := #in~n; 941307#L25 assume !(~n <= 0); 941299#L26 call #t~ret0 := fact(~n - 1);< 941303#$Ultimate##0 ~n := #in~n; 941301#L25 assume !(~n <= 0); 941242#L26 call #t~ret0 := fact(~n - 1);< 941249#$Ultimate##0 ~n := #in~n; 941254#L25 assume !(~n <= 0); 941241#L26 call #t~ret0 := fact(~n - 1);< 941252#$Ultimate##0 ~n := #in~n; 941254#L25 assume !(~n <= 0); 941241#L26 call #t~ret0 := fact(~n - 1);< 941252#$Ultimate##0 ~n := #in~n; 941254#L25 assume !(~n <= 0); 941241#L26 call #t~ret0 := fact(~n - 1);< 941252#$Ultimate##0 ~n := #in~n; 941254#L25 assume !(~n <= 0); 941241#L26 call #t~ret0 := fact(~n - 1);< 941252#$Ultimate##0 ~n := #in~n; 941259#L25 assume ~n <= 0;#res := 1; 941253#factFINAL assume true; 941251#factEXIT >#66#return; 941250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941247#factFINAL assume true; 941239#factEXIT >#66#return; 941245#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941499#factFINAL assume true; 941498#factEXIT >#66#return; 941496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941495#factFINAL assume true; 941492#factEXIT >#66#return; 941491#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941489#factFINAL assume true; 941486#factEXIT >#66#return; 941487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941482#factFINAL assume true; 941453#factEXIT >#66#return; 941456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941584#factFINAL assume true; 941583#factEXIT >#66#return; 941508#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941570#factFINAL assume true; 941507#factEXIT >#66#return; 941505#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941458#factFINAL assume true; 941369#factEXIT >#74#return; 941280#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940121#$Ultimate##0 ~n := #in~n; 941298#L25 assume !(~n <= 0); 941244#L26 call #t~ret0 := fact(~n - 1);< 941246#$Ultimate##0 ~n := #in~n; 941254#L25 assume !(~n <= 0); 941241#L26 call #t~ret0 := fact(~n - 1);< 941252#$Ultimate##0 ~n := #in~n; 941254#L25 assume !(~n <= 0); 941241#L26 call #t~ret0 := fact(~n - 1);< 941252#$Ultimate##0 ~n := #in~n; 941254#L25 assume !(~n <= 0); 941241#L26 call #t~ret0 := fact(~n - 1);< 941252#$Ultimate##0 ~n := #in~n; 941254#L25 assume !(~n <= 0); 941241#L26 call #t~ret0 := fact(~n - 1);< 941252#$Ultimate##0 ~n := #in~n; 941254#L25 assume !(~n <= 0); 941241#L26 call #t~ret0 := fact(~n - 1);< 941252#$Ultimate##0 ~n := #in~n; 941259#L25 assume ~n <= 0;#res := 1; 941253#factFINAL assume true; 941251#factEXIT >#66#return; 941250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941247#factFINAL assume true; 941239#factEXIT >#66#return; 941245#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941499#factFINAL assume true; 941498#factEXIT >#66#return; 941496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941495#factFINAL assume true; 941492#factEXIT >#66#return; 941491#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941489#factFINAL assume true; 941486#factEXIT >#66#return; 941487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941482#factFINAL assume true; 941453#factEXIT >#66#return; 941452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941451#factFINAL assume true; 941365#factEXIT >#76#return; 941216#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 941223#$Ultimate##0 ~n := #in~n; 941283#L25 assume !(~n <= 0); 941229#L26 call #t~ret0 := fact(~n - 1);< 941231#$Ultimate##0 ~n := #in~n; 941285#L25 assume ~n <= 0;#res := 1; 941284#factFINAL assume true; 941228#factEXIT >#66#return; 941226#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941227#factFINAL assume true; 941213#factEXIT >#78#return; 941212#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 941023#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 941024#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 941017#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 941018#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 941010#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 941011#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 941004#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 940844#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 940849#$Ultimate##0 ~n := #in~n; 940843#L25 assume !(~n <= 0); 940419#L26 call #t~ret0 := fact(~n - 1);< 940499#$Ultimate##0 ~n := #in~n; 940835#L25 assume !(~n <= 0); 940415#L26 call #t~ret0 := fact(~n - 1);< 940827#$Ultimate##0 ~n := #in~n; 940825#L25 assume !(~n <= 0); 940433#L26 call #t~ret0 := fact(~n - 1);< 940822#$Ultimate##0 ~n := #in~n; 940821#L25 assume !(~n <= 0); 940428#L26 call #t~ret0 := fact(~n - 1);< 940814#$Ultimate##0 ~n := #in~n; 941833#L25 assume !(~n <= 0); 940439#L26 call #t~ret0 := fact(~n - 1);< 940511#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941008#factFINAL assume true; 940855#factEXIT >#66#return; 940858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941202#factFINAL assume true; 941198#factEXIT >#68#return; 940975#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940980#$Ultimate##0 ~n := #in~n; 940984#L25 assume ~n <= 0;#res := 1; 940981#factFINAL assume true; 940967#factEXIT >#70#return; 940840#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940847#$Ultimate##0 ~n := #in~n; 940848#L25 assume !(~n <= 0); 940410#L26 call #t~ret0 := fact(~n - 1);< 940499#$Ultimate##0 ~n := #in~n; 940835#L25 assume !(~n <= 0); 940415#L26 call #t~ret0 := fact(~n - 1);< 940827#$Ultimate##0 ~n := #in~n; 940825#L25 assume !(~n <= 0); 940433#L26 call #t~ret0 := fact(~n - 1);< 940822#$Ultimate##0 ~n := #in~n; 940821#L25 assume !(~n <= 0); 940428#L26 call #t~ret0 := fact(~n - 1);< 940814#$Ultimate##0 ~n := #in~n; 941833#L25 assume !(~n <= 0); 940439#L26 call #t~ret0 := fact(~n - 1);< 940511#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940442#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941232#factFINAL assume true; 941196#factEXIT >#72#return; 941195#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 941194#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 941193#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 941192#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 941191#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 941076#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 941163#$Ultimate##0 ~n := #in~n; 941162#L25 assume !(~n <= 0); 940407#L26 call #t~ret0 := fact(~n - 1);< 940608#$Ultimate##0 ~n := #in~n; 940606#L25 assume !(~n <= 0); 940425#L26 call #t~ret0 := fact(~n - 1);< 940594#$Ultimate##0 ~n := #in~n; 940592#L25 assume !(~n <= 0); 940420#L26 call #t~ret0 := fact(~n - 1);< 940583#$Ultimate##0 ~n := #in~n; 940582#L25 assume !(~n <= 0); 940436#L26 call #t~ret0 := fact(~n - 1);< 940580#$Ultimate##0 ~n := #in~n; 940578#L25 assume !(~n <= 0); 940435#L26 call #t~ret0 := fact(~n - 1);< 940533#$Ultimate##0 ~n := #in~n; 940577#L25 assume !(~n <= 0); 940413#L26 call #t~ret0 := fact(~n - 1);< 940511#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941008#factFINAL assume true; 940855#factEXIT >#66#return; 940857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941166#factFINAL assume true; 941165#factEXIT >#68#return; 940155#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940200#$Ultimate##0 ~n := #in~n; 945420#L25 assume !(~n <= 0); 941466#L26 call #t~ret0 := fact(~n - 1);< 941469#$Ultimate##0 ~n := #in~n; 941514#L25 assume ~n <= 0;#res := 1; 941475#factFINAL assume true; 941465#factEXIT >#66#return; 941468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941728#factFINAL assume true; 940737#factEXIT >#70#return; 940288#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940593#$Ultimate##0 ~n := #in~n; 940591#L25 assume !(~n <= 0); 940437#L26 call #t~ret0 := fact(~n - 1);< 940583#$Ultimate##0 ~n := #in~n; 940582#L25 assume !(~n <= 0); 940436#L26 call #t~ret0 := fact(~n - 1);< 940580#$Ultimate##0 ~n := #in~n; 940578#L25 assume !(~n <= 0); 940435#L26 call #t~ret0 := fact(~n - 1);< 940533#$Ultimate##0 ~n := #in~n; 940577#L25 assume !(~n <= 0); 940413#L26 call #t~ret0 := fact(~n - 1);< 940511#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941008#factFINAL assume true; 940855#factEXIT >#66#return; 940853#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940851#factFINAL assume true; 940850#factEXIT >#72#return; 940347#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 941190#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 941189#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 941188#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 941187#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 941120#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 941163#$Ultimate##0 ~n := #in~n; 941162#L25 assume !(~n <= 0); 940407#L26 call #t~ret0 := fact(~n - 1);< 940608#$Ultimate##0 ~n := #in~n; 940606#L25 assume !(~n <= 0); 940425#L26 call #t~ret0 := fact(~n - 1);< 940594#$Ultimate##0 ~n := #in~n; 940592#L25 assume !(~n <= 0); 940420#L26 call #t~ret0 := fact(~n - 1);< 940583#$Ultimate##0 ~n := #in~n; 940582#L25 assume !(~n <= 0); 940436#L26 call #t~ret0 := fact(~n - 1);< 940580#$Ultimate##0 ~n := #in~n; 940578#L25 assume !(~n <= 0); 940435#L26 call #t~ret0 := fact(~n - 1);< 940533#$Ultimate##0 ~n := #in~n; 940577#L25 assume !(~n <= 0); 940413#L26 call #t~ret0 := fact(~n - 1);< 940511#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941008#factFINAL assume true; 940855#factEXIT >#66#return; 940857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941166#factFINAL assume true; 941165#factEXIT >#68#return; 940133#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940401#$Ultimate##0 ~n := #in~n; 940637#L25 assume !(~n <= 0); 940409#L26 call #t~ret0 := fact(~n - 1);< 941477#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940736#factFINAL assume true; 940713#factEXIT >#70#return; 940265#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940581#$Ultimate##0 ~n := #in~n; 940579#L25 assume !(~n <= 0); 940411#L26 call #t~ret0 := fact(~n - 1);< 940533#$Ultimate##0 ~n := #in~n; 940577#L25 assume !(~n <= 0); 940413#L26 call #t~ret0 := fact(~n - 1);< 940511#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940898#factFINAL assume true; 940870#factEXIT >#72#return; 940361#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 941186#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 941185#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 941184#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 941183#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 941110#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 941163#$Ultimate##0 ~n := #in~n; 941162#L25 assume !(~n <= 0); 940407#L26 call #t~ret0 := fact(~n - 1);< 940608#$Ultimate##0 ~n := #in~n; 940606#L25 assume !(~n <= 0); 940425#L26 call #t~ret0 := fact(~n - 1);< 940594#$Ultimate##0 ~n := #in~n; 940592#L25 assume !(~n <= 0); 940420#L26 call #t~ret0 := fact(~n - 1);< 940583#$Ultimate##0 ~n := #in~n; 940582#L25 assume !(~n <= 0); 940436#L26 call #t~ret0 := fact(~n - 1);< 940580#$Ultimate##0 ~n := #in~n; 940578#L25 assume !(~n <= 0); 940435#L26 call #t~ret0 := fact(~n - 1);< 940533#$Ultimate##0 ~n := #in~n; 940577#L25 assume !(~n <= 0); 940413#L26 call #t~ret0 := fact(~n - 1);< 940511#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941008#factFINAL assume true; 940855#factEXIT >#66#return; 940857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941166#factFINAL assume true; 941165#factEXIT >#68#return; 940151#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940401#$Ultimate##0 ~n := #in~n; 940637#L25 assume !(~n <= 0); 940409#L26 call #t~ret0 := fact(~n - 1);< 941477#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940524#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940709#factFINAL assume true; 940686#factEXIT >#70#return; 940320#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940711#$Ultimate##0 ~n := #in~n; 940638#L25 assume !(~n <= 0); 940432#L26 call #t~ret0 := fact(~n - 1);< 940511#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940898#factFINAL assume true; 940870#factEXIT >#72#return; 940892#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 941182#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 941181#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 941180#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 941179#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 941098#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 941163#$Ultimate##0 ~n := #in~n; 941162#L25 assume !(~n <= 0); 940407#L26 call #t~ret0 := fact(~n - 1);< 940608#$Ultimate##0 ~n := #in~n; 940606#L25 assume !(~n <= 0); 940425#L26 call #t~ret0 := fact(~n - 1);< 940594#$Ultimate##0 ~n := #in~n; 940592#L25 assume !(~n <= 0); 940420#L26 call #t~ret0 := fact(~n - 1);< 940583#$Ultimate##0 ~n := #in~n; 940582#L25 assume !(~n <= 0); 940436#L26 call #t~ret0 := fact(~n - 1);< 940580#$Ultimate##0 ~n := #in~n; 940578#L25 assume !(~n <= 0); 940435#L26 call #t~ret0 := fact(~n - 1);< 940533#$Ultimate##0 ~n := #in~n; 940577#L25 assume !(~n <= 0); 940413#L26 call #t~ret0 := fact(~n - 1);< 940511#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941008#factFINAL assume true; 940855#factEXIT >#66#return; 940857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941166#factFINAL assume true; 941165#factEXIT >#68#return; 940143#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940401#$Ultimate##0 ~n := #in~n; 940637#L25 assume !(~n <= 0); 940409#L26 call #t~ret0 := fact(~n - 1);< 941477#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940898#factFINAL assume true; 940870#factEXIT >#70#return; 940275#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940711#$Ultimate##0 ~n := #in~n; 940638#L25 assume !(~n <= 0); 940432#L26 call #t~ret0 := fact(~n - 1);< 940511#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940524#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940709#factFINAL assume true; 940686#factEXIT >#72#return; 940702#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 941178#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 941177#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 941176#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 941175#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 941081#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 941163#$Ultimate##0 ~n := #in~n; 941162#L25 assume !(~n <= 0); 940407#L26 call #t~ret0 := fact(~n - 1);< 940608#$Ultimate##0 ~n := #in~n; 940606#L25 assume !(~n <= 0); 940425#L26 call #t~ret0 := fact(~n - 1);< 940594#$Ultimate##0 ~n := #in~n; 940592#L25 assume !(~n <= 0); 940420#L26 call #t~ret0 := fact(~n - 1);< 940583#$Ultimate##0 ~n := #in~n; 940582#L25 assume !(~n <= 0); 940436#L26 call #t~ret0 := fact(~n - 1);< 940580#$Ultimate##0 ~n := #in~n; 940578#L25 assume !(~n <= 0); 940435#L26 call #t~ret0 := fact(~n - 1);< 940533#$Ultimate##0 ~n := #in~n; 940577#L25 assume !(~n <= 0); 940413#L26 call #t~ret0 := fact(~n - 1);< 940511#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941161#factFINAL assume true; 941071#factEXIT >#68#return; 940174#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940401#$Ultimate##0 ~n := #in~n; 940637#L25 assume !(~n <= 0); 940409#L26 call #t~ret0 := fact(~n - 1);< 941477#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940682#factFINAL assume true; 940683#factEXIT >#70#return; 940308#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940711#$Ultimate##0 ~n := #in~n; 940638#L25 assume !(~n <= 0); 940432#L26 call #t~ret0 := fact(~n - 1);< 940511#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940736#factFINAL assume true; 940713#factEXIT >#72#return; 940715#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 941722#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 941721#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 941718#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 941716#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 941102#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 941160#$Ultimate##0 ~n := #in~n; 941233#L25 assume !(~n <= 0); 940406#L26 call #t~ret0 := fact(~n - 1);< 940478#$Ultimate##0 ~n := #in~n; 941981#L25 assume !(~n <= 0); 940673#L26 call #t~ret0 := fact(~n - 1);< 940799#$Ultimate##0 ~n := #in~n; 941982#L25 assume !(~n <= 0); 940500#L26 call #t~ret0 := fact(~n - 1);< 940668#$Ultimate##0 ~n := #in~n; 945463#L25 assume !(~n <= 0); 940486#L26 call #t~ret0 := fact(~n - 1);< 940501#$Ultimate##0 ~n := #in~n; 945464#L25 assume !(~n <= 0); 940111#L26 call #t~ret0 := fact(~n - 1);< 940119#$Ultimate##0 ~n := #in~n; 940110#L25 assume !(~n <= 0); 940113#L26 call #t~ret0 := fact(~n - 1);< 940546#$Ultimate##0 ~n := #in~n; 945418#L25 assume !(~n <= 0); 940565#L26 call #t~ret0 := fact(~n - 1);< 940568#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941161#factFINAL assume true; 941071#factEXIT >#68#return; 940223#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940710#$Ultimate##0 ~n := #in~n; 941497#L25 assume !(~n <= 0); 940409#L26 call #t~ret0 := fact(~n - 1);< 941477#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941008#factFINAL assume true; 940855#factEXIT >#66#return; 940853#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940851#factFINAL assume true; 940850#factEXIT >#70#return; 940623#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940629#$Ultimate##0 ~n := #in~n; 940626#L25 assume !(~n <= 0); 940487#L26 call #t~ret0 := fact(~n - 1);< 940624#$Ultimate##0 ~n := #in~n; 941514#L25 assume ~n <= 0;#res := 1; 941475#factFINAL assume true; 941465#factEXIT >#66#return; 941468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941728#factFINAL assume true; 940737#factEXIT >#72#return; 940750#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 941819#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 941762#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 941757#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 941756#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 941119#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 941160#$Ultimate##0 ~n := #in~n; 941233#L25 assume !(~n <= 0); 940406#L26 call #t~ret0 := fact(~n - 1);< 940478#$Ultimate##0 ~n := #in~n; 941981#L25 assume !(~n <= 0); 940673#L26 call #t~ret0 := fact(~n - 1);< 940799#$Ultimate##0 ~n := #in~n; 941982#L25 assume !(~n <= 0); 940500#L26 call #t~ret0 := fact(~n - 1);< 940668#$Ultimate##0 ~n := #in~n; 945463#L25 assume !(~n <= 0); 940486#L26 call #t~ret0 := fact(~n - 1);< 940501#$Ultimate##0 ~n := #in~n; 945464#L25 assume !(~n <= 0); 940111#L26 call #t~ret0 := fact(~n - 1);< 940119#$Ultimate##0 ~n := #in~n; 940110#L25 assume !(~n <= 0); 940113#L26 call #t~ret0 := fact(~n - 1);< 940546#$Ultimate##0 ~n := #in~n; 945418#L25 assume !(~n <= 0); 940565#L26 call #t~ret0 := fact(~n - 1);< 940568#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941161#factFINAL assume true; 941071#factEXIT >#68#return; 940449#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940846#$Ultimate##0 ~n := #in~n; 940842#L25 assume !(~n <= 0); 940445#L26 call #t~ret0 := fact(~n - 1);< 940474#$Ultimate##0 ~n := #in~n; 941517#L25 assume !(~n <= 0); 940423#L26 call #t~ret0 := fact(~n - 1);< 940499#$Ultimate##0 ~n := #in~n; 940835#L25 assume !(~n <= 0); 940415#L26 call #t~ret0 := fact(~n - 1);< 940827#$Ultimate##0 ~n := #in~n; 940825#L25 assume !(~n <= 0); 940433#L26 call #t~ret0 := fact(~n - 1);< 940822#$Ultimate##0 ~n := #in~n; 940821#L25 assume !(~n <= 0); 940428#L26 call #t~ret0 := fact(~n - 1);< 940814#$Ultimate##0 ~n := #in~n; 941833#L25 assume !(~n <= 0); 940439#L26 call #t~ret0 := fact(~n - 1);< 940511#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941008#factFINAL assume true; 940855#factEXIT >#66#return; 940853#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940851#factFINAL assume true; 940850#factEXIT >#70#return; 940158#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940628#$Ultimate##0 ~n := #in~n; 940625#L25 assume ~n <= 0;#res := 1; 940197#factFINAL assume true; 940130#factEXIT >#72#return; 940080#L30-3 [2023-02-18 08:58:59,347 INFO L750 eck$LassoCheckResult]: Loop: 940080#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 940081#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 940096#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 941908#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 941601#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 940070#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 940034#$Ultimate##0 ~n := #in~n; 941504#L25 assume !(~n <= 0); 940069#L26 call #t~ret0 := fact(~n - 1);< 940074#$Ultimate##0 ~n := #in~n; 941511#L25 assume !(~n <= 0); 941455#L26 call #t~ret0 := fact(~n - 1);< 941483#$Ultimate##0 ~n := #in~n; 941513#L25 assume !(~n <= 0); 941454#L26 call #t~ret0 := fact(~n - 1);< 941490#$Ultimate##0 ~n := #in~n; 941494#L25 assume !(~n <= 0); 941292#L26 call #t~ret0 := fact(~n - 1);< 941461#$Ultimate##0 ~n := #in~n; 941459#L25 assume !(~n <= 0); 941248#L26 call #t~ret0 := fact(~n - 1);< 941291#$Ultimate##0 ~n := #in~n; 941290#L25 assume !(~n <= 0); 941243#L26 call #t~ret0 := fact(~n - 1);< 941249#$Ultimate##0 ~n := #in~n; 941254#L25 assume !(~n <= 0); 941241#L26 call #t~ret0 := fact(~n - 1);< 941252#$Ultimate##0 ~n := #in~n; 941259#L25 assume ~n <= 0;#res := 1; 941253#factFINAL assume true; 941251#factEXIT >#66#return; 941250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941247#factFINAL assume true; 941239#factEXIT >#66#return; 941245#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941499#factFINAL assume true; 941498#factEXIT >#66#return; 941496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941495#factFINAL assume true; 941492#factEXIT >#66#return; 941491#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941489#factFINAL assume true; 941486#factEXIT >#66#return; 941487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941482#factFINAL assume true; 941453#factEXIT >#66#return; 941456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941584#factFINAL assume true; 941583#factEXIT >#66#return; 941582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941581#factFINAL assume true; 941267#factEXIT >#74#return; 941282#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940121#$Ultimate##0 ~n := #in~n; 941298#L25 assume !(~n <= 0); 941244#L26 call #t~ret0 := fact(~n - 1);< 941246#$Ultimate##0 ~n := #in~n; 941254#L25 assume !(~n <= 0); 941241#L26 call #t~ret0 := fact(~n - 1);< 941252#$Ultimate##0 ~n := #in~n; 941254#L25 assume !(~n <= 0); 941241#L26 call #t~ret0 := fact(~n - 1);< 941252#$Ultimate##0 ~n := #in~n; 941254#L25 assume !(~n <= 0); 941241#L26 call #t~ret0 := fact(~n - 1);< 941252#$Ultimate##0 ~n := #in~n; 941254#L25 assume !(~n <= 0); 941241#L26 call #t~ret0 := fact(~n - 1);< 941252#$Ultimate##0 ~n := #in~n; 941254#L25 assume !(~n <= 0); 941241#L26 call #t~ret0 := fact(~n - 1);< 941252#$Ultimate##0 ~n := #in~n; 941254#L25 assume !(~n <= 0); 941241#L26 call #t~ret0 := fact(~n - 1);< 941252#$Ultimate##0 ~n := #in~n; 941254#L25 assume !(~n <= 0); 941241#L26 call #t~ret0 := fact(~n - 1);< 941252#$Ultimate##0 ~n := #in~n; 941259#L25 assume ~n <= 0;#res := 1; 941253#factFINAL assume true; 941251#factEXIT >#66#return; 941250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941247#factFINAL assume true; 941239#factEXIT >#66#return; 941245#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941499#factFINAL assume true; 941498#factEXIT >#66#return; 941496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941495#factFINAL assume true; 941492#factEXIT >#66#return; 941491#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941489#factFINAL assume true; 941486#factEXIT >#66#return; 941487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941482#factFINAL assume true; 941453#factEXIT >#66#return; 941456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941584#factFINAL assume true; 941583#factEXIT >#66#return; 941508#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941570#factFINAL assume true; 941507#factEXIT >#66#return; 941505#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941458#factFINAL assume true; 941369#factEXIT >#76#return; 941218#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 941223#$Ultimate##0 ~n := #in~n; 941283#L25 assume !(~n <= 0); 941229#L26 call #t~ret0 := fact(~n - 1);< 941231#$Ultimate##0 ~n := #in~n; 941285#L25 assume ~n <= 0;#res := 1; 941284#factFINAL assume true; 941228#factEXIT >#66#return; 941226#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941227#factFINAL assume true; 941213#factEXIT >#78#return; 941222#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 941978#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 941976#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 941974#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 941972#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 941968#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 941967#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 941715#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 940476#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 941719#$Ultimate##0 ~n := #in~n; 941720#L25 assume !(~n <= 0); 940421#L26 call #t~ret0 := fact(~n - 1);< 940478#$Ultimate##0 ~n := #in~n; 941981#L25 assume !(~n <= 0); 940673#L26 call #t~ret0 := fact(~n - 1);< 940799#$Ultimate##0 ~n := #in~n; 941982#L25 assume !(~n <= 0); 940500#L26 call #t~ret0 := fact(~n - 1);< 940668#$Ultimate##0 ~n := #in~n; 945463#L25 assume !(~n <= 0); 940486#L26 call #t~ret0 := fact(~n - 1);< 940501#$Ultimate##0 ~n := #in~n; 945464#L25 assume !(~n <= 0); 940111#L26 call #t~ret0 := fact(~n - 1);< 940119#$Ultimate##0 ~n := #in~n; 940110#L25 assume !(~n <= 0); 940113#L26 call #t~ret0 := fact(~n - 1);< 940546#$Ultimate##0 ~n := #in~n; 945418#L25 assume !(~n <= 0); 940565#L26 call #t~ret0 := fact(~n - 1);< 940568#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940444#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941688#factFINAL assume true; 941686#factEXIT >#68#return; 940972#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940980#$Ultimate##0 ~n := #in~n; 940984#L25 assume ~n <= 0;#res := 1; 940981#factFINAL assume true; 940967#factEXIT >#70#return; 940837#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940847#$Ultimate##0 ~n := #in~n; 940848#L25 assume !(~n <= 0); 940410#L26 call #t~ret0 := fact(~n - 1);< 940499#$Ultimate##0 ~n := #in~n; 940835#L25 assume !(~n <= 0); 940415#L26 call #t~ret0 := fact(~n - 1);< 940827#$Ultimate##0 ~n := #in~n; 940825#L25 assume !(~n <= 0); 940433#L26 call #t~ret0 := fact(~n - 1);< 940822#$Ultimate##0 ~n := #in~n; 940821#L25 assume !(~n <= 0); 940428#L26 call #t~ret0 := fact(~n - 1);< 940814#$Ultimate##0 ~n := #in~n; 941833#L25 assume !(~n <= 0); 940439#L26 call #t~ret0 := fact(~n - 1);< 940511#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940442#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941232#factFINAL assume true; 941196#factEXIT >#72#return; 940965#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 941858#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 941857#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 941856#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 941854#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 941075#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 941160#$Ultimate##0 ~n := #in~n; 941233#L25 assume !(~n <= 0); 940406#L26 call #t~ret0 := fact(~n - 1);< 940478#$Ultimate##0 ~n := #in~n; 941981#L25 assume !(~n <= 0); 940673#L26 call #t~ret0 := fact(~n - 1);< 940799#$Ultimate##0 ~n := #in~n; 941982#L25 assume !(~n <= 0); 940500#L26 call #t~ret0 := fact(~n - 1);< 940668#$Ultimate##0 ~n := #in~n; 945463#L25 assume !(~n <= 0); 940486#L26 call #t~ret0 := fact(~n - 1);< 940501#$Ultimate##0 ~n := #in~n; 945464#L25 assume !(~n <= 0); 940111#L26 call #t~ret0 := fact(~n - 1);< 940119#$Ultimate##0 ~n := #in~n; 940110#L25 assume !(~n <= 0); 940113#L26 call #t~ret0 := fact(~n - 1);< 940546#$Ultimate##0 ~n := #in~n; 945418#L25 assume !(~n <= 0); 940565#L26 call #t~ret0 := fact(~n - 1);< 940568#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941161#factFINAL assume true; 941071#factEXIT >#68#return; 940740#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940764#$Ultimate##0 ~n := #in~n; 941557#L25 assume !(~n <= 0); 941466#L26 call #t~ret0 := fact(~n - 1);< 941469#$Ultimate##0 ~n := #in~n; 941514#L25 assume ~n <= 0;#res := 1; 941475#factFINAL assume true; 941465#factEXIT >#66#return; 941468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941728#factFINAL assume true; 940737#factEXIT >#70#return; 940289#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940820#$Ultimate##0 ~n := #in~n; 940818#L25 assume !(~n <= 0); 940505#L26 call #t~ret0 := fact(~n - 1);< 940675#$Ultimate##0 ~n := #in~n; 941755#L25 assume !(~n <= 0); 940485#L26 call #t~ret0 := fact(~n - 1);< 940506#$Ultimate##0 ~n := #in~n; 941824#L25 assume !(~n <= 0); 940484#L26 call #t~ret0 := fact(~n - 1);< 941890#$Ultimate##0 ~n := #in~n; 941891#L25 assume !(~n <= 0); 940517#L26 call #t~ret0 := fact(~n - 1);< 940545#$Ultimate##0 ~n := #in~n; 940618#L25 assume !(~n <= 0); 940538#L26 call #t~ret0 := fact(~n - 1);< 940567#$Ultimate##0 ~n := #in~n; 945418#L25 assume !(~n <= 0); 940565#L26 call #t~ret0 := fact(~n - 1);< 940568#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940796#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940841#factFINAL assume true; 940201#factEXIT >#72#return; 940349#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 941705#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 941702#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 941699#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 941698#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 941078#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 941160#$Ultimate##0 ~n := #in~n; 941233#L25 assume !(~n <= 0); 940406#L26 call #t~ret0 := fact(~n - 1);< 940478#$Ultimate##0 ~n := #in~n; 941981#L25 assume !(~n <= 0); 940673#L26 call #t~ret0 := fact(~n - 1);< 940799#$Ultimate##0 ~n := #in~n; 941982#L25 assume !(~n <= 0); 940500#L26 call #t~ret0 := fact(~n - 1);< 940668#$Ultimate##0 ~n := #in~n; 945463#L25 assume !(~n <= 0); 940486#L26 call #t~ret0 := fact(~n - 1);< 940501#$Ultimate##0 ~n := #in~n; 945464#L25 assume !(~n <= 0); 940111#L26 call #t~ret0 := fact(~n - 1);< 940119#$Ultimate##0 ~n := #in~n; 940110#L25 assume !(~n <= 0); 940113#L26 call #t~ret0 := fact(~n - 1);< 940546#$Ultimate##0 ~n := #in~n; 945418#L25 assume !(~n <= 0); 940565#L26 call #t~ret0 := fact(~n - 1);< 940568#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941161#factFINAL assume true; 941071#factEXIT >#68#return; 940219#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940710#$Ultimate##0 ~n := #in~n; 941497#L25 assume !(~n <= 0); 940409#L26 call #t~ret0 := fact(~n - 1);< 941477#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940736#factFINAL assume true; 940713#factEXIT >#70#return; 940267#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940402#$Ultimate##0 ~n := #in~n; 941727#L25 assume !(~n <= 0); 940483#L26 call #t~ret0 := fact(~n - 1);< 940508#$Ultimate##0 ~n := #in~n; 940616#L25 assume !(~n <= 0); 940482#L26 call #t~ret0 := fact(~n - 1);< 940563#$Ultimate##0 ~n := #in~n; 940560#L25 assume !(~n <= 0); 940481#L26 call #t~ret0 := fact(~n - 1);< 940547#$Ultimate##0 ~n := #in~n; 940572#L25 assume !(~n <= 0); 940516#L26 call #t~ret0 := fact(~n - 1);< 940566#$Ultimate##0 ~n := #in~n; 940618#L25 assume !(~n <= 0); 940538#L26 call #t~ret0 := fact(~n - 1);< 940567#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940682#factFINAL assume true; 940683#factEXIT >#72#return; 940351#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 941753#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 941752#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 941750#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 941748#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 941111#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 941160#$Ultimate##0 ~n := #in~n; 941233#L25 assume !(~n <= 0); 940406#L26 call #t~ret0 := fact(~n - 1);< 940478#$Ultimate##0 ~n := #in~n; 941981#L25 assume !(~n <= 0); 940673#L26 call #t~ret0 := fact(~n - 1);< 940799#$Ultimate##0 ~n := #in~n; 941982#L25 assume !(~n <= 0); 940500#L26 call #t~ret0 := fact(~n - 1);< 940668#$Ultimate##0 ~n := #in~n; 945463#L25 assume !(~n <= 0); 940486#L26 call #t~ret0 := fact(~n - 1);< 940501#$Ultimate##0 ~n := #in~n; 945464#L25 assume !(~n <= 0); 940111#L26 call #t~ret0 := fact(~n - 1);< 940119#$Ultimate##0 ~n := #in~n; 940110#L25 assume !(~n <= 0); 940113#L26 call #t~ret0 := fact(~n - 1);< 940546#$Ultimate##0 ~n := #in~n; 945418#L25 assume !(~n <= 0); 940565#L26 call #t~ret0 := fact(~n - 1);< 940568#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941161#factFINAL assume true; 941071#factEXIT >#68#return; 940227#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940710#$Ultimate##0 ~n := #in~n; 941497#L25 assume !(~n <= 0); 940409#L26 call #t~ret0 := fact(~n - 1);< 941477#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940524#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940709#factFINAL assume true; 940686#factEXIT >#70#return; 940229#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940630#$Ultimate##0 ~n := #in~n; 940627#L25 assume !(~n <= 0); 940495#L26 call #t~ret0 := fact(~n - 1);< 940619#$Ultimate##0 ~n := #in~n; 940614#L25 assume !(~n <= 0); 940494#L26 call #t~ret0 := fact(~n - 1);< 940615#$Ultimate##0 ~n := #in~n; 940560#L25 assume !(~n <= 0); 940481#L26 call #t~ret0 := fact(~n - 1);< 940547#$Ultimate##0 ~n := #in~n; 940572#L25 assume !(~n <= 0); 940516#L26 call #t~ret0 := fact(~n - 1);< 940566#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940898#factFINAL assume true; 940870#factEXIT >#72#return; 940880#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 941878#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 941877#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 941876#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 941875#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 941099#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 941160#$Ultimate##0 ~n := #in~n; 941233#L25 assume !(~n <= 0); 940406#L26 call #t~ret0 := fact(~n - 1);< 940478#$Ultimate##0 ~n := #in~n; 941981#L25 assume !(~n <= 0); 940673#L26 call #t~ret0 := fact(~n - 1);< 940799#$Ultimate##0 ~n := #in~n; 941982#L25 assume !(~n <= 0); 940500#L26 call #t~ret0 := fact(~n - 1);< 940668#$Ultimate##0 ~n := #in~n; 945463#L25 assume !(~n <= 0); 940486#L26 call #t~ret0 := fact(~n - 1);< 940501#$Ultimate##0 ~n := #in~n; 945464#L25 assume !(~n <= 0); 940111#L26 call #t~ret0 := fact(~n - 1);< 940119#$Ultimate##0 ~n := #in~n; 940110#L25 assume !(~n <= 0); 940113#L26 call #t~ret0 := fact(~n - 1);< 940546#$Ultimate##0 ~n := #in~n; 945418#L25 assume !(~n <= 0); 940565#L26 call #t~ret0 := fact(~n - 1);< 940568#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941161#factFINAL assume true; 941071#factEXIT >#68#return; 940258#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940710#$Ultimate##0 ~n := #in~n; 941497#L25 assume !(~n <= 0); 940409#L26 call #t~ret0 := fact(~n - 1);< 941477#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940898#factFINAL assume true; 940870#factEXIT >#70#return; 940273#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940630#$Ultimate##0 ~n := #in~n; 940627#L25 assume !(~n <= 0); 940495#L26 call #t~ret0 := fact(~n - 1);< 940619#$Ultimate##0 ~n := #in~n; 940614#L25 assume !(~n <= 0); 940494#L26 call #t~ret0 := fact(~n - 1);< 940615#$Ultimate##0 ~n := #in~n; 940560#L25 assume !(~n <= 0); 940481#L26 call #t~ret0 := fact(~n - 1);< 940547#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940524#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940709#factFINAL assume true; 940686#factEXIT >#72#return; 940692#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 941853#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 941851#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 941849#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 941847#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 941080#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 941160#$Ultimate##0 ~n := #in~n; 941233#L25 assume !(~n <= 0); 940406#L26 call #t~ret0 := fact(~n - 1);< 940478#$Ultimate##0 ~n := #in~n; 941981#L25 assume !(~n <= 0); 940673#L26 call #t~ret0 := fact(~n - 1);< 940799#$Ultimate##0 ~n := #in~n; 941982#L25 assume !(~n <= 0); 940500#L26 call #t~ret0 := fact(~n - 1);< 940668#$Ultimate##0 ~n := #in~n; 945463#L25 assume !(~n <= 0); 940486#L26 call #t~ret0 := fact(~n - 1);< 940501#$Ultimate##0 ~n := #in~n; 945464#L25 assume !(~n <= 0); 940111#L26 call #t~ret0 := fact(~n - 1);< 940119#$Ultimate##0 ~n := #in~n; 940110#L25 assume !(~n <= 0); 940113#L26 call #t~ret0 := fact(~n - 1);< 940546#$Ultimate##0 ~n := #in~n; 945418#L25 assume !(~n <= 0); 940565#L26 call #t~ret0 := fact(~n - 1);< 940568#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941161#factFINAL assume true; 941071#factEXIT >#68#return; 940295#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940710#$Ultimate##0 ~n := #in~n; 941497#L25 assume !(~n <= 0); 940409#L26 call #t~ret0 := fact(~n - 1);< 941477#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940682#factFINAL assume true; 940683#factEXIT >#70#return; 940204#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940630#$Ultimate##0 ~n := #in~n; 940627#L25 assume !(~n <= 0); 940495#L26 call #t~ret0 := fact(~n - 1);< 940619#$Ultimate##0 ~n := #in~n; 940614#L25 assume !(~n <= 0); 940494#L26 call #t~ret0 := fact(~n - 1);< 940615#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940736#factFINAL assume true; 940713#factEXIT >#72#return; 940715#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 941722#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 941721#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 941718#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 941716#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 941102#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 941160#$Ultimate##0 ~n := #in~n; 941233#L25 assume !(~n <= 0); 940406#L26 call #t~ret0 := fact(~n - 1);< 940478#$Ultimate##0 ~n := #in~n; 941981#L25 assume !(~n <= 0); 940673#L26 call #t~ret0 := fact(~n - 1);< 940799#$Ultimate##0 ~n := #in~n; 941982#L25 assume !(~n <= 0); 940500#L26 call #t~ret0 := fact(~n - 1);< 940668#$Ultimate##0 ~n := #in~n; 945463#L25 assume !(~n <= 0); 940486#L26 call #t~ret0 := fact(~n - 1);< 940501#$Ultimate##0 ~n := #in~n; 945464#L25 assume !(~n <= 0); 940111#L26 call #t~ret0 := fact(~n - 1);< 940119#$Ultimate##0 ~n := #in~n; 940110#L25 assume !(~n <= 0); 940113#L26 call #t~ret0 := fact(~n - 1);< 940546#$Ultimate##0 ~n := #in~n; 945418#L25 assume !(~n <= 0); 940565#L26 call #t~ret0 := fact(~n - 1);< 940568#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941161#factFINAL assume true; 941071#factEXIT >#68#return; 940223#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940710#$Ultimate##0 ~n := #in~n; 941497#L25 assume !(~n <= 0); 940409#L26 call #t~ret0 := fact(~n - 1);< 941477#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941008#factFINAL assume true; 940855#factEXIT >#66#return; 940853#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940851#factFINAL assume true; 940850#factEXIT >#70#return; 940623#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940629#$Ultimate##0 ~n := #in~n; 940626#L25 assume !(~n <= 0); 940487#L26 call #t~ret0 := fact(~n - 1);< 940624#$Ultimate##0 ~n := #in~n; 941514#L25 assume ~n <= 0;#res := 1; 941475#factFINAL assume true; 941465#factEXIT >#66#return; 941468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941728#factFINAL assume true; 940737#factEXIT >#72#return; 940750#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 941819#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 941762#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 941757#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 941756#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 941119#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 941160#$Ultimate##0 ~n := #in~n; 941233#L25 assume !(~n <= 0); 940406#L26 call #t~ret0 := fact(~n - 1);< 940478#$Ultimate##0 ~n := #in~n; 941981#L25 assume !(~n <= 0); 940673#L26 call #t~ret0 := fact(~n - 1);< 940799#$Ultimate##0 ~n := #in~n; 941982#L25 assume !(~n <= 0); 940500#L26 call #t~ret0 := fact(~n - 1);< 940668#$Ultimate##0 ~n := #in~n; 945463#L25 assume !(~n <= 0); 940486#L26 call #t~ret0 := fact(~n - 1);< 940501#$Ultimate##0 ~n := #in~n; 945464#L25 assume !(~n <= 0); 940111#L26 call #t~ret0 := fact(~n - 1);< 940119#$Ultimate##0 ~n := #in~n; 940110#L25 assume !(~n <= 0); 940113#L26 call #t~ret0 := fact(~n - 1);< 940546#$Ultimate##0 ~n := #in~n; 945418#L25 assume !(~n <= 0); 940565#L26 call #t~ret0 := fact(~n - 1);< 940568#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941161#factFINAL assume true; 941071#factEXIT >#68#return; 940449#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 940846#$Ultimate##0 ~n := #in~n; 940842#L25 assume !(~n <= 0); 940445#L26 call #t~ret0 := fact(~n - 1);< 940474#$Ultimate##0 ~n := #in~n; 941517#L25 assume !(~n <= 0); 940423#L26 call #t~ret0 := fact(~n - 1);< 940499#$Ultimate##0 ~n := #in~n; 940835#L25 assume !(~n <= 0); 940415#L26 call #t~ret0 := fact(~n - 1);< 940827#$Ultimate##0 ~n := #in~n; 940825#L25 assume !(~n <= 0); 940433#L26 call #t~ret0 := fact(~n - 1);< 940822#$Ultimate##0 ~n := #in~n; 940821#L25 assume !(~n <= 0); 940428#L26 call #t~ret0 := fact(~n - 1);< 940814#$Ultimate##0 ~n := #in~n; 941833#L25 assume !(~n <= 0); 940439#L26 call #t~ret0 := fact(~n - 1);< 940511#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940617#L25 assume !(~n <= 0); 940412#L26 call #t~ret0 := fact(~n - 1);< 940569#$Ultimate##0 ~n := #in~n; 940573#L25 assume ~n <= 0;#res := 1; 940571#factFINAL assume true; 940564#factEXIT >#66#return; 940561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940548#factFINAL assume true; 940537#factEXIT >#66#return; 940536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940526#factFINAL assume true; 940515#factEXIT >#66#return; 940514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940507#factFINAL assume true; 940480#factEXIT >#66#return; 940496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940669#factFINAL assume true; 940659#factEXIT >#66#return; 940665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940800#factFINAL assume true; 940792#factEXIT >#66#return; 940479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940475#factFINAL assume true; 940404#factEXIT >#66#return; 940443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 941008#factFINAL assume true; 940855#factEXIT >#66#return; 940853#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 940851#factFINAL assume true; 940850#factEXIT >#70#return; 940158#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 940628#$Ultimate##0 ~n := #in~n; 940625#L25 assume ~n <= 0;#res := 1; 940197#factFINAL assume true; 940130#factEXIT >#72#return; 940080#L30-3 [2023-02-18 08:58:59,347 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:58:59,347 INFO L85 PathProgramCache]: Analyzing trace with hash -1962510064, now seen corresponding path program 80 times [2023-02-18 08:58:59,348 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:58:59,348 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [801098438] [2023-02-18 08:58:59,348 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:58:59,348 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:58:59,384 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:58:59,385 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [114602686] [2023-02-18 08:58:59,385 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:58:59,385 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:58:59,385 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:58:59,387 INFO L229 MonitoredProcess]: Starting monitored process 285 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:58:59,388 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (285)] Waiting until timeout for monitored process [2023-02-18 08:59:00,747 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:59:00,747 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:59:00,762 INFO L263 TraceCheckSpWp]: Trace formula consists of 4291 conjuncts, 15 conjunts are in the unsatisfiable core [2023-02-18 08:59:00,772 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:59:00,833 INFO L134 CoverageAnalysis]: Checked inductivity of 264974 backedges. 101950 proven. 338 refuted. 0 times theorem prover too weak. 162686 trivial. 0 not checked. [2023-02-18 08:59:00,833 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:59:00,961 INFO L134 CoverageAnalysis]: Checked inductivity of 264974 backedges. 2392 proven. 4695 refuted. 0 times theorem prover too weak. 257887 trivial. 0 not checked. [2023-02-18 08:59:00,961 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:59:00,961 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [801098438] [2023-02-18 08:59:00,961 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:59:00,961 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [114602686] [2023-02-18 08:59:00,961 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [114602686] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:59:00,961 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:59:00,962 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 16 [2023-02-18 08:59:00,962 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1065594761] [2023-02-18 08:59:00,962 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:59:00,962 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:59:00,962 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:59:00,963 INFO L85 PathProgramCache]: Analyzing trace with hash 668884291, now seen corresponding path program 80 times [2023-02-18 08:59:00,963 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:59:00,963 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2086527961] [2023-02-18 08:59:00,963 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:59:00,963 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:59:00,987 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:59:00,987 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1104922892] [2023-02-18 08:59:00,987 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:59:00,988 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:59:00,988 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:00,990 INFO L229 MonitoredProcess]: Starting monitored process 286 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:59:00,990 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (286)] Waiting until timeout for monitored process [2023-02-18 08:59:01,999 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:59:01,999 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:59:02,007 INFO L263 TraceCheckSpWp]: Trace formula consists of 2039 conjuncts, 37 conjunts are in the unsatisfiable core [2023-02-18 08:59:02,012 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:59:02,127 INFO L134 CoverageAnalysis]: Checked inductivity of 66899 backedges. 13205 proven. 432 refuted. 0 times theorem prover too weak. 53262 trivial. 0 not checked. [2023-02-18 08:59:02,127 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:59:02,570 INFO L134 CoverageAnalysis]: Checked inductivity of 66899 backedges. 137 proven. 10110 refuted. 0 times theorem prover too weak. 56652 trivial. 0 not checked. [2023-02-18 08:59:02,571 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:59:02,571 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2086527961] [2023-02-18 08:59:02,571 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:59:02,571 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1104922892] [2023-02-18 08:59:02,571 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1104922892] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:59:02,571 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:59:02,571 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [21, 34] total 37 [2023-02-18 08:59:02,572 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1204162576] [2023-02-18 08:59:02,572 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:59:02,572 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:59:02,572 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:59:02,572 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 37 interpolants. [2023-02-18 08:59:02,572 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=201, Invalid=1131, Unknown=0, NotChecked=0, Total=1332 [2023-02-18 08:59:02,573 INFO L87 Difference]: Start difference. First operand 5432 states and 8660 transitions. cyclomatic complexity: 3273 Second operand has 37 states, 34 states have (on average 2.676470588235294) internal successors, (91), 36 states have internal predecessors, (91), 21 states have call successors, (29), 2 states have call predecessors, (29), 17 states have return successors, (40), 17 states have call predecessors, (40), 21 states have call successors, (40) [2023-02-18 08:59:03,849 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:59:03,849 INFO L93 Difference]: Finished difference Result 6149 states and 10273 transitions. [2023-02-18 08:59:03,849 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 6149 states and 10273 transitions. [2023-02-18 08:59:03,884 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 910 [2023-02-18 08:59:03,927 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 6149 states to 6139 states and 10233 transitions. [2023-02-18 08:59:03,927 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 430 [2023-02-18 08:59:03,927 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 445 [2023-02-18 08:59:03,928 INFO L73 IsDeterministic]: Start isDeterministic. Operand 6139 states and 10233 transitions. [2023-02-18 08:59:03,928 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:59:03,928 INFO L218 hiAutomatonCegarLoop]: Abstraction has 6139 states and 10233 transitions. [2023-02-18 08:59:03,930 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 6139 states and 10233 transitions. [2023-02-18 08:59:04,002 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 6139 to 5485. [2023-02-18 08:59:04,006 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5485 states, 3338 states have (on average 1.0476333133612943) internal successors, (3497), 3336 states have internal predecessors, (3497), 1799 states have call successors, (1821), 503 states have call predecessors, (1821), 348 states have return successors, (3447), 1645 states have call predecessors, (3447), 1799 states have call successors, (3447) [2023-02-18 08:59:04,023 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5485 states to 5485 states and 8765 transitions. [2023-02-18 08:59:04,023 INFO L240 hiAutomatonCegarLoop]: Abstraction has 5485 states and 8765 transitions. [2023-02-18 08:59:04,024 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 35 states. [2023-02-18 08:59:04,024 INFO L428 stractBuchiCegarLoop]: Abstraction has 5485 states and 8765 transitions. [2023-02-18 08:59:04,024 INFO L335 stractBuchiCegarLoop]: ======== Iteration 93 ============ [2023-02-18 08:59:04,024 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 5485 states and 8765 transitions. [2023-02-18 08:59:04,037 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 863 [2023-02-18 08:59:04,037 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:59:04,037 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:59:04,044 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [324, 324, 243, 243, 243, 243, 81, 27, 26, 20, 20, 20, 20, 20, 20, 20, 19, 19, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 4, 4, 1, 1, 1, 1] [2023-02-18 08:59:04,044 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [154, 154, 127, 127, 127, 127, 27, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:59:04,045 INFO L748 eck$LassoCheckResult]: Stem: 969611#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 969557#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; 969558#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 969581#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; 969612#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 973569#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 973567#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 973564#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 973565#$Ultimate##0 ~n := #in~n; 973611#L25 assume ~n <= 0;#res := 1; 973609#factFINAL assume true; 973563#factEXIT >#68#return; 973560#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 973561#$Ultimate##0 ~n := #in~n; 973636#L25 assume ~n <= 0;#res := 1; 973634#factFINAL assume true; 973559#factEXIT >#70#return; 973556#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 973557#$Ultimate##0 ~n := #in~n; 973638#L25 assume ~n <= 0;#res := 1; 973637#factFINAL assume true; 973555#factEXIT >#72#return; 973553#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 973552#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 973551#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 973550#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 973549#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 973534#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 973535#$Ultimate##0 ~n := #in~n; 973656#L25 assume !(~n <= 0); 973654#L26 call #t~ret0 := fact(~n - 1);< 973655#$Ultimate##0 ~n := #in~n; 973658#L25 assume ~n <= 0;#res := 1; 973657#factFINAL assume true; 973653#factEXIT >#66#return; 973652#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973650#factFINAL assume true; 973533#factEXIT >#74#return; 973530#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 973531#$Ultimate##0 ~n := #in~n; 973670#L25 assume ~n <= 0;#res := 1; 973669#factFINAL assume true; 973529#factEXIT >#76#return; 973526#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 973527#$Ultimate##0 ~n := #in~n; 973676#L25 assume !(~n <= 0); 973674#L26 call #t~ret0 := fact(~n - 1);< 973675#$Ultimate##0 ~n := #in~n; 973678#L25 assume ~n <= 0;#res := 1; 973677#factFINAL assume true; 973673#factEXIT >#66#return; 973672#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973671#factFINAL assume true; 973525#factEXIT >#78#return; 973523#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 973521#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 973519#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 973498#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 973489#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 972198#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 972199#$Ultimate##0 ~n := #in~n; 973165#L25 assume !(~n <= 0); 972207#L26 call #t~ret0 := fact(~n - 1);< 972211#$Ultimate##0 ~n := #in~n; 972296#L25 assume !(~n <= 0); 972206#L26 call #t~ret0 := fact(~n - 1);< 972294#$Ultimate##0 ~n := #in~n; 973361#L25 assume ~n <= 0;#res := 1; 973359#factFINAL assume true; 972293#factEXIT >#66#return; 972291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 972220#factFINAL assume true; 972205#factEXIT >#66#return; 972210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973191#factFINAL assume true; 972197#factEXIT >#74#return; 972195#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 972196#$Ultimate##0 ~n := #in~n; 972202#L25 assume ~n <= 0;#res := 1; 972201#factFINAL assume true; 972194#factEXIT >#76#return; 972192#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 972193#$Ultimate##0 ~n := #in~n; 972213#L25 assume !(~n <= 0); 972208#L26 call #t~ret0 := fact(~n - 1);< 972211#$Ultimate##0 ~n := #in~n; 972296#L25 assume !(~n <= 0); 972206#L26 call #t~ret0 := fact(~n - 1);< 972294#$Ultimate##0 ~n := #in~n; 973361#L25 assume ~n <= 0;#res := 1; 973359#factFINAL assume true; 972293#factEXIT >#66#return; 972291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 972220#factFINAL assume true; 972205#factEXIT >#66#return; 972204#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 972203#factFINAL assume true; 972191#factEXIT >#78#return; 972099#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 972094#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 972092#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 972090#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 972088#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 972086#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 972087#$Ultimate##0 ~n := #in~n; 972100#L25 assume !(~n <= 0); 972097#L26 call #t~ret0 := fact(~n - 1);< 972098#$Ultimate##0 ~n := #in~n; 972107#L25 assume !(~n <= 0); 972096#L26 call #t~ret0 := fact(~n - 1);< 972106#$Ultimate##0 ~n := #in~n; 972107#L25 assume !(~n <= 0); 972096#L26 call #t~ret0 := fact(~n - 1);< 972106#$Ultimate##0 ~n := #in~n; 972116#L25 assume ~n <= 0;#res := 1; 972115#factFINAL assume true; 972112#factEXIT >#66#return; 972110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 972108#factFINAL assume true; 972105#factEXIT >#66#return; 972103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 972101#factFINAL assume true; 972095#factEXIT >#66#return; 972093#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 972091#factFINAL assume true; 972085#factEXIT >#74#return; 972083#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 972084#$Ultimate##0 ~n := #in~n; 972104#L25 assume ~n <= 0;#res := 1; 972102#factFINAL assume true; 972082#factEXIT >#76#return; 969593#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 972069#$Ultimate##0 ~n := #in~n; 972301#L25 assume !(~n <= 0); 972226#L26 call #t~ret0 := fact(~n - 1);< 972232#$Ultimate##0 ~n := #in~n; 972247#L25 assume !(~n <= 0); 972230#L26 call #t~ret0 := fact(~n - 1);< 972244#$Ultimate##0 ~n := #in~n; 972247#L25 assume !(~n <= 0); 972230#L26 call #t~ret0 := fact(~n - 1);< 972244#$Ultimate##0 ~n := #in~n; 972288#L25 assume ~n <= 0;#res := 1; 972287#factFINAL assume true; 972243#factEXIT >#66#return; 972241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 972239#factFINAL assume true; 972236#factEXIT >#66#return; 972235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 972234#factFINAL assume true; 972225#factEXIT >#66#return; 969592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969594#factFINAL assume true; 972120#factEXIT >#78#return; 972063#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 972061#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 972059#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 972058#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 972057#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 972056#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 972055#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 972053#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 971993#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 972000#$Ultimate##0 ~n := #in~n; 972051#L25 assume !(~n <= 0); 972022#L26 call #t~ret0 := fact(~n - 1);< 972049#$Ultimate##0 ~n := #in~n; 972650#L25 assume ~n <= 0;#res := 1; 972647#factFINAL assume true; 972630#factEXIT >#66#return; 972628#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 972626#factFINAL assume true; 972602#factEXIT >#68#return; 972547#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 971991#$Ultimate##0 ~n := #in~n; 972592#L25 assume ~n <= 0;#res := 1; 972554#factFINAL assume true; 972546#factEXIT >#70#return; 972548#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 972795#$Ultimate##0 ~n := #in~n; 972798#L25 assume !(~n <= 0); 972011#L26 call #t~ret0 := fact(~n - 1);< 972675#$Ultimate##0 ~n := #in~n; 972650#L25 assume ~n <= 0;#res := 1; 972647#factFINAL assume true; 972630#factEXIT >#66#return; 972636#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 972797#factFINAL assume true; 972794#factEXIT >#72#return; 972793#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 972791#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 972789#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 972788#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 972787#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 972484#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 972520#$Ultimate##0 ~n := #in~n; 972677#L25 assume !(~n <= 0); 972038#L26 call #t~ret0 := fact(~n - 1);< 972675#$Ultimate##0 ~n := #in~n; 972650#L25 assume ~n <= 0;#res := 1; 972647#factFINAL assume true; 972630#factEXIT >#66#return; 972639#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 972842#factFINAL assume true; 972841#factEXIT >#68#return; 972507#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 972517#$Ultimate##0 ~n := #in~n; 972743#L25 assume !(~n <= 0); 972632#L26 call #t~ret0 := fact(~n - 1);< 972649#$Ultimate##0 ~n := #in~n; 972650#L25 assume ~n <= 0;#res := 1; 972647#factFINAL assume true; 972630#factEXIT >#66#return; 972641#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 972588#factFINAL assume true; 972504#factEXIT >#70#return; 972446#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 972458#$Ultimate##0 ~n := #in~n; 973755#L25 assume ~n <= 0;#res := 1; 973754#factFINAL assume true; 972444#factEXIT >#72#return; 972453#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 972838#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 972835#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 972828#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 972812#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 972740#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 972741#$Ultimate##0 ~n := #in~n; 972748#L25 assume !(~n <= 0); 972024#L26 call #t~ret0 := fact(~n - 1);< 972747#$Ultimate##0 ~n := #in~n; 973001#L25 assume !(~n <= 0); 972023#L26 call #t~ret0 := fact(~n - 1);< 973137#$Ultimate##0 ~n := #in~n; 973145#L25 assume ~n <= 0;#res := 1; 973143#factFINAL assume true; 973135#factEXIT >#66#return; 973134#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973132#factFINAL assume true; 972010#factEXIT >#66#return; 972047#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 972744#factFINAL assume true; 972739#factEXIT >#74#return; 972695#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 972736#$Ultimate##0 ~n := #in~n; 972919#L25 assume !(~n <= 0); 972016#L26 call #t~ret0 := fact(~n - 1);< 972049#$Ultimate##0 ~n := #in~n; 972650#L25 assume ~n <= 0;#res := 1; 972647#factFINAL assume true; 972630#factEXIT >#66#return; 972640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 972750#factFINAL assume true; 972680#factEXIT >#76#return; 972696#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 972711#$Ultimate##0 ~n := #in~n; 972796#L25 assume !(~n <= 0); 972633#L26 call #t~ret0 := fact(~n - 1);< 972649#$Ultimate##0 ~n := #in~n; 972650#L25 assume ~n <= 0;#res := 1; 972647#factFINAL assume true; 972630#factEXIT >#66#return; 972640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 972750#factFINAL assume true; 972680#factEXIT >#78#return; 972679#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 972678#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 972676#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 972674#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 972672#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 972252#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 972623#$Ultimate##0 ~n := #in~n; 974652#L25 assume !(~n <= 0); 972607#L26 call #t~ret0 := fact(~n - 1);< 974639#$Ultimate##0 ~n := #in~n; 972785#L25 assume !(~n <= 0); 972616#L26 call #t~ret0 := fact(~n - 1);< 972784#$Ultimate##0 ~n := #in~n; 972785#L25 assume !(~n <= 0); 972616#L26 call #t~ret0 := fact(~n - 1);< 972784#$Ultimate##0 ~n := #in~n; 972792#L25 assume ~n <= 0;#res := 1; 972790#factFINAL assume true; 972781#factEXIT >#66#return; 972779#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 972771#factFINAL assume true; 972765#factEXIT >#66#return; 972764#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 972670#factFINAL assume true; 972652#factEXIT >#66#return; 972658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973746#factFINAL assume true; 972417#factEXIT >#74#return; 972388#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 972558#$Ultimate##0 ~n := #in~n; 974127#L25 assume !(~n <= 0); 972654#L26 call #t~ret0 := fact(~n - 1);< 973695#$Ultimate##0 ~n := #in~n; 972667#L25 assume ~n <= 0;#res := 1; 974339#factFINAL assume true; 973207#factEXIT >#66#return; 973210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973693#factFINAL assume true; 972416#factEXIT >#76#return; 972389#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 972557#$Ultimate##0 ~n := #in~n; 972669#L25 assume !(~n <= 0); 972608#L26 call #t~ret0 := fact(~n - 1);< 972666#$Ultimate##0 ~n := #in~n; 972664#L25 assume !(~n <= 0); 972653#L26 call #t~ret0 := fact(~n - 1);< 972661#$Ultimate##0 ~n := #in~n; 972792#L25 assume ~n <= 0;#res := 1; 972790#factFINAL assume true; 972781#factEXIT >#66#return; 972779#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 972771#factFINAL assume true; 972765#factEXIT >#66#return; 972768#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973667#factFINAL assume true; 972387#factEXIT >#78#return; 972386#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 972385#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 972384#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 972383#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 972382#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 972381#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 972380#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 972378#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 971994#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 972000#$Ultimate##0 ~n := #in~n; 972051#L25 assume !(~n <= 0); 972022#L26 call #t~ret0 := fact(~n - 1);< 972049#$Ultimate##0 ~n := #in~n; 973140#L25 assume !(~n <= 0); 972032#L26 call #t~ret0 := fact(~n - 1);< 972839#$Ultimate##0 ~n := #in~n; 973145#L25 assume ~n <= 0;#res := 1; 973143#factFINAL assume true; 973135#factEXIT >#66#return; 973134#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973132#factFINAL assume true; 972010#factEXIT >#66#return; 972009#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 972001#factFINAL assume true; 971992#factEXIT >#68#return; 971983#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 971990#$Ultimate##0 ~n := #in~n; 972008#L25 assume ~n <= 0;#res := 1; 972002#factFINAL assume true; 971981#factEXIT >#70#return; 971971#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 971980#$Ultimate##0 ~n := #in~n; 972060#L25 assume !(~n <= 0); 971575#L26 call #t~ret0 := fact(~n - 1);< 971913#$Ultimate##0 ~n := #in~n; 974935#L25 assume !(~n <= 0); 971610#L26 call #t~ret0 := fact(~n - 1);< 971612#$Ultimate##0 ~n := #in~n; 971618#L25 assume ~n <= 0;#res := 1; 971616#factFINAL assume true; 971609#factEXIT >#66#return; 971607#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 971583#factFINAL assume true; 971567#factEXIT >#66#return; 971582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 972050#factFINAL assume true; 971968#factEXIT >#72#return; 971979#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 972374#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 972373#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 972372#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 972371#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 971930#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 971939#$Ultimate##0 ~n := #in~n; 971967#L25 assume !(~n <= 0); 971572#L26 call #t~ret0 := fact(~n - 1);< 971913#$Ultimate##0 ~n := #in~n; 974935#L25 assume !(~n <= 0); 971610#L26 call #t~ret0 := fact(~n - 1);< 971612#$Ultimate##0 ~n := #in~n; 971618#L25 assume ~n <= 0;#res := 1; 971616#factFINAL assume true; 971609#factEXIT >#66#return; 971607#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 971583#factFINAL assume true; 971567#factEXIT >#66#return; 971578#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 971942#factFINAL assume true; 971920#factEXIT >#68#return; 971938#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 971958#$Ultimate##0 ~n := #in~n; 971963#L25 assume !(~n <= 0); 971681#L26 call #t~ret0 := fact(~n - 1);< 971688#$Ultimate##0 ~n := #in~n; 971706#L25 assume ~n <= 0;#res := 1; 971690#factFINAL assume true; 971677#factEXIT >#66#return; 971687#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 971959#factFINAL assume true; 971946#factEXIT >#70#return; 971948#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 971958#$Ultimate##0 ~n := #in~n; 971963#L25 assume !(~n <= 0); 971681#L26 call #t~ret0 := fact(~n - 1);< 971688#$Ultimate##0 ~n := #in~n; 971706#L25 assume ~n <= 0;#res := 1; 971690#factFINAL assume true; 971677#factEXIT >#66#return; 971687#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 971959#factFINAL assume true; 971946#factEXIT >#72#return; 971954#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 972370#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 972369#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 972368#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 972367#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 971924#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 971939#$Ultimate##0 ~n := #in~n; 971967#L25 assume !(~n <= 0); 971572#L26 call #t~ret0 := fact(~n - 1);< 971913#$Ultimate##0 ~n := #in~n; 974935#L25 assume !(~n <= 0); 971610#L26 call #t~ret0 := fact(~n - 1);< 971612#$Ultimate##0 ~n := #in~n; 971618#L25 assume ~n <= 0;#res := 1; 971616#factFINAL assume true; 971609#factEXIT >#66#return; 971607#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 971583#factFINAL assume true; 971567#factEXIT >#66#return; 971578#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 971942#factFINAL assume true; 971920#factEXIT >#68#return; 971559#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 971564#$Ultimate##0 ~n := #in~n; 971597#L25 assume !(~n <= 0); 971471#L26 call #t~ret0 := fact(~n - 1);< 971497#$Ultimate##0 ~n := #in~n; 971960#L25 assume !(~n <= 0); 971569#L26 call #t~ret0 := fact(~n - 1);< 971600#$Ultimate##0 ~n := #in~n; 971618#L25 assume ~n <= 0;#res := 1; 971616#factFINAL assume true; 971609#factEXIT >#66#return; 971607#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 971583#factFINAL assume true; 971567#factEXIT >#66#return; 971566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 971565#factFINAL assume true; 971557#factEXIT >#70#return; 971547#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 971555#$Ultimate##0 ~n := #in~n; 971615#L25 assume ~n <= 0;#res := 1; 971606#factFINAL assume true; 971543#factEXIT >#72#return; 971551#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 972365#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 972363#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 972361#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 971378#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 971353#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 971355#$Ultimate##0 ~n := #in~n; 971379#L25 assume !(~n <= 0); 971202#L26 call #t~ret0 := fact(~n - 1);< 971211#$Ultimate##0 ~n := #in~n; 971254#L25 assume !(~n <= 0); 971195#L26 call #t~ret0 := fact(~n - 1);< 971257#$Ultimate##0 ~n := #in~n; 971254#L25 assume !(~n <= 0); 971195#L26 call #t~ret0 := fact(~n - 1);< 971257#$Ultimate##0 ~n := #in~n; 969606#L25 assume ~n <= 0;#res := 1; 971259#factFINAL assume true; 971256#factEXIT >#66#return; 971250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 971243#factFINAL assume true; 971234#factEXIT >#66#return; 971227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 971212#factFINAL assume true; 971218#factEXIT >#66#return; 971233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 971356#factFINAL assume true; 971351#factEXIT >#74#return; 971246#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 971350#$Ultimate##0 ~n := #in~n; 972583#L25 assume !(~n <= 0); 971213#L26 call #t~ret0 := fact(~n - 1);< 971247#$Ultimate##0 ~n := #in~n; 971263#L25 assume !(~n <= 0); 971236#L26 call #t~ret0 := fact(~n - 1);< 971242#$Ultimate##0 ~n := #in~n; 969606#L25 assume ~n <= 0;#res := 1; 971259#factFINAL assume true; 971256#factEXIT >#66#return; 971250#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 971243#factFINAL assume true; 971234#factEXIT >#66#return; 971238#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 971333#factFINAL assume true; 971349#factEXIT >#76#return; 971317#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 971346#$Ultimate##0 ~n := #in~n; 971344#L25 assume !(~n <= 0); 971337#L26 call #t~ret0 := fact(~n - 1);< 971341#$Ultimate##0 ~n := #in~n; 974746#L25 assume ~n <= 0;#res := 1; 971342#factFINAL assume true; 971335#factEXIT >#66#return; 971338#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 971329#factFINAL assume true; 971312#factEXIT >#78#return; 971321#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 971856#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 971836#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 971827#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 971825#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 971822#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 971820#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 971816#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 969514#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 969515#$Ultimate##0 ~n := #in~n; 970951#L25 assume !(~n <= 0); 969936#L26 call #t~ret0 := fact(~n - 1);< 969940#$Ultimate##0 ~n := #in~n; 974920#L25 assume !(~n <= 0); 969949#L26 call #t~ret0 := fact(~n - 1);< 974903#$Ultimate##0 ~n := #in~n; 974919#L25 assume !(~n <= 0); 969987#L26 call #t~ret0 := fact(~n - 1);< 969999#$Ultimate##0 ~n := #in~n; 974918#L25 assume !(~n <= 0); 970006#L26 call #t~ret0 := fact(~n - 1);< 974917#$Ultimate##0 ~n := #in~n; 974897#L25 assume !(~n <= 0); 970031#L26 call #t~ret0 := fact(~n - 1);< 970032#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970285#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 971138#factFINAL assume true; 971137#factEXIT >#68#return; 970621#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 970623#$Ultimate##0 ~n := #in~n; 970625#L25 assume ~n <= 0;#res := 1; 970624#factFINAL assume true; 970610#factEXIT >#70#return; 970080#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 970078#$Ultimate##0 ~n := #in~n; 970083#L25 assume !(~n <= 0); 969893#L26 call #t~ret0 := fact(~n - 1);< 970045#$Ultimate##0 ~n := #in~n; 970044#L25 assume !(~n <= 0); 969879#L26 call #t~ret0 := fact(~n - 1);< 970043#$Ultimate##0 ~n := #in~n; 970041#L25 assume !(~n <= 0); 969878#L26 call #t~ret0 := fact(~n - 1);< 969996#$Ultimate##0 ~n := #in~n; 970037#L25 assume !(~n <= 0); 969875#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970288#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 971144#factFINAL assume true; 971133#factEXIT >#72#return; 970606#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 973170#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 973169#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 973168#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 973167#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970489#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970501#$Ultimate##0 ~n := #in~n; 970757#L25 assume !(~n <= 0); 970282#L26 call #t~ret0 := fact(~n - 1);< 969940#$Ultimate##0 ~n := #in~n; 974920#L25 assume !(~n <= 0); 969949#L26 call #t~ret0 := fact(~n - 1);< 974903#$Ultimate##0 ~n := #in~n; 974919#L25 assume !(~n <= 0); 969987#L26 call #t~ret0 := fact(~n - 1);< 969999#$Ultimate##0 ~n := #in~n; 974918#L25 assume !(~n <= 0); 970006#L26 call #t~ret0 := fact(~n - 1);< 974917#$Ultimate##0 ~n := #in~n; 974897#L25 assume !(~n <= 0); 970031#L26 call #t~ret0 := fact(~n - 1);< 970032#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970287#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970752#factFINAL assume true; 970488#factEXIT >#68#return; 970307#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 970359#$Ultimate##0 ~n := #in~n; 970985#L25 assume !(~n <= 0); 969685#L26 call #t~ret0 := fact(~n - 1);< 970481#$Ultimate##0 ~n := #in~n; 970706#L25 assume ~n <= 0;#res := 1; 970696#factFINAL assume true; 970478#factEXIT >#66#return; 970476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970358#factFINAL assume true; 970299#factEXIT >#70#return; 969973#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 970532#$Ultimate##0 ~n := #in~n; 971274#L25 assume !(~n <= 0); 969944#L26 call #t~ret0 := fact(~n - 1);< 969976#$Ultimate##0 ~n := #in~n; 974839#L25 assume !(~n <= 0); 969982#L26 call #t~ret0 := fact(~n - 1);< 969993#$Ultimate##0 ~n := #in~n; 974873#L25 assume !(~n <= 0); 970002#L26 call #t~ret0 := fact(~n - 1);< 970011#$Ultimate##0 ~n := #in~n; 974897#L25 assume !(~n <= 0); 970031#L26 call #t~ret0 := fact(~n - 1);< 970032#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970531#factFINAL assume true; 970504#factEXIT >#72#return; 970506#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 970799#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 970798#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 970797#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 970796#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970494#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970501#$Ultimate##0 ~n := #in~n; 970757#L25 assume !(~n <= 0); 970282#L26 call #t~ret0 := fact(~n - 1);< 969940#$Ultimate##0 ~n := #in~n; 974920#L25 assume !(~n <= 0); 969949#L26 call #t~ret0 := fact(~n - 1);< 974903#$Ultimate##0 ~n := #in~n; 974919#L25 assume !(~n <= 0); 969987#L26 call #t~ret0 := fact(~n - 1);< 969999#$Ultimate##0 ~n := #in~n; 974918#L25 assume !(~n <= 0); 970006#L26 call #t~ret0 := fact(~n - 1);< 974917#$Ultimate##0 ~n := #in~n; 974897#L25 assume !(~n <= 0); 970031#L26 call #t~ret0 := fact(~n - 1);< 970032#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970287#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970752#factFINAL assume true; 970488#factEXIT >#68#return; 970367#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 970792#$Ultimate##0 ~n := #in~n; 971026#L25 assume !(~n <= 0); 969894#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970009#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970485#factFINAL assume true; 970366#factEXIT >#70#return; 969998#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 970503#$Ultimate##0 ~n := #in~n; 970458#L25 assume !(~n <= 0); 969983#L26 call #t~ret0 := fact(~n - 1);< 969999#$Ultimate##0 ~n := #in~n; 974918#L25 assume !(~n <= 0); 970006#L26 call #t~ret0 := fact(~n - 1);< 974917#$Ultimate##0 ~n := #in~n; 974897#L25 assume !(~n <= 0); 970031#L26 call #t~ret0 := fact(~n - 1);< 970032#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969992#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970502#factFINAL assume true; 970394#factEXIT >#72#return; 970397#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 970790#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 970789#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 970787#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 970785#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970500#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970501#$Ultimate##0 ~n := #in~n; 970757#L25 assume !(~n <= 0); 970282#L26 call #t~ret0 := fact(~n - 1);< 969940#$Ultimate##0 ~n := #in~n; 974920#L25 assume !(~n <= 0); 969949#L26 call #t~ret0 := fact(~n - 1);< 974903#$Ultimate##0 ~n := #in~n; 974919#L25 assume !(~n <= 0); 969987#L26 call #t~ret0 := fact(~n - 1);< 969999#$Ultimate##0 ~n := #in~n; 974918#L25 assume !(~n <= 0); 970006#L26 call #t~ret0 := fact(~n - 1);< 974917#$Ultimate##0 ~n := #in~n; 974897#L25 assume !(~n <= 0); 970031#L26 call #t~ret0 := fact(~n - 1);< 970032#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970287#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970752#factFINAL assume true; 970488#factEXIT >#68#return; 969739#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 969855#$Ultimate##0 ~n := #in~n; 970447#L25 assume !(~n <= 0); 969871#L26 call #t~ret0 := fact(~n - 1);< 969996#$Ultimate##0 ~n := #in~n; 970037#L25 assume !(~n <= 0); 969875#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969992#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970502#factFINAL assume true; 970394#factEXIT >#70#return; 970016#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 970089#$Ultimate##0 ~n := #in~n; 970084#L25 assume !(~n <= 0); 970005#L26 call #t~ret0 := fact(~n - 1);< 970017#$Ultimate##0 ~n := #in~n; 974895#L25 assume !(~n <= 0); 970004#L26 call #t~ret0 := fact(~n - 1);< 970011#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970009#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970485#factFINAL assume true; 970366#factEXIT >#72#return; 970370#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 970782#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 970780#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 970778#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 970776#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970498#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970501#$Ultimate##0 ~n := #in~n; 970757#L25 assume !(~n <= 0); 970282#L26 call #t~ret0 := fact(~n - 1);< 969940#$Ultimate##0 ~n := #in~n; 974920#L25 assume !(~n <= 0); 969949#L26 call #t~ret0 := fact(~n - 1);< 974903#$Ultimate##0 ~n := #in~n; 974919#L25 assume !(~n <= 0); 969987#L26 call #t~ret0 := fact(~n - 1);< 969999#$Ultimate##0 ~n := #in~n; 974918#L25 assume !(~n <= 0); 970006#L26 call #t~ret0 := fact(~n - 1);< 974917#$Ultimate##0 ~n := #in~n; 974897#L25 assume !(~n <= 0); 970031#L26 call #t~ret0 := fact(~n - 1);< 970032#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970287#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970752#factFINAL assume true; 970488#factEXIT >#68#return; 969780#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 969855#$Ultimate##0 ~n := #in~n; 970447#L25 assume !(~n <= 0); 969871#L26 call #t~ret0 := fact(~n - 1);< 969996#$Ultimate##0 ~n := #in~n; 970037#L25 assume !(~n <= 0); 969875#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970531#factFINAL assume true; 970504#factEXIT >#70#return; 970305#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 970774#$Ultimate##0 ~n := #in~n; 970989#L25 assume !(~n <= 0); 970008#L26 call #t~ret0 := fact(~n - 1);< 974898#$Ultimate##0 ~n := #in~n; 970706#L25 assume ~n <= 0;#res := 1; 970696#factFINAL assume true; 970478#factEXIT >#66#return; 970476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970358#factFINAL assume true; 970299#factEXIT >#72#return; 970317#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 970772#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 970770#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 970768#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 970766#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970491#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970501#$Ultimate##0 ~n := #in~n; 970757#L25 assume !(~n <= 0); 970282#L26 call #t~ret0 := fact(~n - 1);< 969940#$Ultimate##0 ~n := #in~n; 974920#L25 assume !(~n <= 0); 969949#L26 call #t~ret0 := fact(~n - 1);< 974903#$Ultimate##0 ~n := #in~n; 974919#L25 assume !(~n <= 0); 969987#L26 call #t~ret0 := fact(~n - 1);< 969999#$Ultimate##0 ~n := #in~n; 974918#L25 assume !(~n <= 0); 970006#L26 call #t~ret0 := fact(~n - 1);< 974917#$Ultimate##0 ~n := #in~n; 974897#L25 assume !(~n <= 0); 970031#L26 call #t~ret0 := fact(~n - 1);< 970032#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970287#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970752#factFINAL assume true; 970488#factEXIT >#68#return; 969718#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 969855#$Ultimate##0 ~n := #in~n; 970447#L25 assume !(~n <= 0); 969871#L26 call #t~ret0 := fact(~n - 1);< 969996#$Ultimate##0 ~n := #in~n; 970037#L25 assume !(~n <= 0); 969875#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970284#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970444#factFINAL assume true; 969688#factEXIT >#70#return; 969651#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 969682#$Ultimate##0 ~n := #in~n; 974899#L25 assume ~n <= 0;#res := 1; 969683#factFINAL assume true; 969616#factEXIT >#72#return; 969677#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 972644#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 972643#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 972582#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 971650#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 971108#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 972580#$Ultimate##0 ~n := #in~n; 973293#L25 assume !(~n <= 0); 969492#L26 call #t~ret0 := fact(~n - 1);< 973292#$Ultimate##0 ~n := #in~n; 973291#L25 assume !(~n <= 0); 969491#L26 call #t~ret0 := fact(~n - 1);< 973290#$Ultimate##0 ~n := #in~n; 973289#L25 assume !(~n <= 0); 969490#L26 call #t~ret0 := fact(~n - 1);< 973288#$Ultimate##0 ~n := #in~n; 973286#L25 assume !(~n <= 0); 969502#L26 call #t~ret0 := fact(~n - 1);< 973265#$Ultimate##0 ~n := #in~n; 973279#L25 assume !(~n <= 0); 969501#L26 call #t~ret0 := fact(~n - 1);< 973284#$Ultimate##0 ~n := #in~n; 973279#L25 assume !(~n <= 0); 969501#L26 call #t~ret0 := fact(~n - 1);< 973284#$Ultimate##0 ~n := #in~n; 973279#L25 assume !(~n <= 0); 969501#L26 call #t~ret0 := fact(~n - 1);< 973284#$Ultimate##0 ~n := #in~n; 973279#L25 assume !(~n <= 0); 969501#L26 call #t~ret0 := fact(~n - 1);< 973284#$Ultimate##0 ~n := #in~n; 969603#L25 assume ~n <= 0;#res := 1; 973287#factFINAL assume true; 973283#factEXIT >#66#return; 973282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973281#factFINAL assume true; 973261#factEXIT >#66#return; 973259#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973258#factFINAL assume true; 973252#factEXIT >#66#return; 973251#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973250#factFINAL assume true; 973178#factEXIT >#66#return; 973176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973166#factFINAL assume true; 973156#factEXIT >#66#return; 973155#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973153#factFINAL assume true; 973148#factEXIT >#66#return; 973150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973315#factFINAL assume true; 973314#factEXIT >#66#return; 969503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973848#factFINAL assume true; 969487#factEXIT >#66#return; 969504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 971117#factFINAL assume true; 971112#factEXIT >#74#return; 971105#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 971110#$Ultimate##0 ~n := #in~n; 974676#L25 assume !(~n <= 0); 969494#L26 call #t~ret0 := fact(~n - 1);< 973151#$Ultimate##0 ~n := #in~n; 973279#L25 assume !(~n <= 0); 969501#L26 call #t~ret0 := fact(~n - 1);< 973284#$Ultimate##0 ~n := #in~n; 973279#L25 assume !(~n <= 0); 969501#L26 call #t~ret0 := fact(~n - 1);< 973284#$Ultimate##0 ~n := #in~n; 973279#L25 assume !(~n <= 0); 969501#L26 call #t~ret0 := fact(~n - 1);< 973284#$Ultimate##0 ~n := #in~n; 973279#L25 assume !(~n <= 0); 969501#L26 call #t~ret0 := fact(~n - 1);< 973284#$Ultimate##0 ~n := #in~n; 973279#L25 assume !(~n <= 0); 969501#L26 call #t~ret0 := fact(~n - 1);< 973284#$Ultimate##0 ~n := #in~n; 969603#L25 assume ~n <= 0;#res := 1; 973287#factFINAL assume true; 973283#factEXIT >#66#return; 973282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973281#factFINAL assume true; 973261#factEXIT >#66#return; 973259#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973258#factFINAL assume true; 973252#factEXIT >#66#return; 973251#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973250#factFINAL assume true; 973178#factEXIT >#66#return; 973176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973166#factFINAL assume true; 973156#factEXIT >#66#return; 973155#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973153#factFINAL assume true; 973148#factEXIT >#66#return; 973147#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973146#factFINAL assume true; 972579#factEXIT >#76#return; 969564#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 969613#$Ultimate##0 ~n := #in~n; 973893#L25 assume !(~n <= 0); 969563#L26 call #t~ret0 := fact(~n - 1);< 969569#$Ultimate##0 ~n := #in~n; 973629#L25 assume ~n <= 0;#res := 1; 973627#factFINAL assume true; 973626#factEXIT >#66#return; 973619#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973617#factFINAL assume true; 971085#factEXIT >#78#return; 971080#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 971079#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 971078#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 971077#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 971076#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 971075#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 971074#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 970856#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970692#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970695#$Ultimate##0 ~n := #in~n; 970927#L25 assume !(~n <= 0); 969870#L26 call #t~ret0 := fact(~n - 1);< 970244#$Ultimate##0 ~n := #in~n; 971275#L25 assume !(~n <= 0); 969889#L26 call #t~ret0 := fact(~n - 1);< 970263#$Ultimate##0 ~n := #in~n; 970279#L25 assume !(~n <= 0); 969887#L26 call #t~ret0 := fact(~n - 1);< 970265#$Ultimate##0 ~n := #in~n; 970250#L25 assume !(~n <= 0); 969885#L26 call #t~ret0 := fact(~n - 1);< 970245#$Ultimate##0 ~n := #in~n; 970345#L25 assume !(~n <= 0); 969884#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 969903#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969935#factFINAL assume true; 969867#factEXIT >#66#return; 969902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970917#factFINAL assume true; 970690#factEXIT >#68#return; 970617#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 970623#$Ultimate##0 ~n := #in~n; 970625#L25 assume ~n <= 0;#res := 1; 970624#factFINAL assume true; 970610#factEXIT >#70#return; 970240#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 970686#$Ultimate##0 ~n := #in~n; 970855#L25 assume !(~n <= 0); 969899#L26 call #t~ret0 := fact(~n - 1);< 970244#$Ultimate##0 ~n := #in~n; 971275#L25 assume !(~n <= 0); 969889#L26 call #t~ret0 := fact(~n - 1);< 970263#$Ultimate##0 ~n := #in~n; 970279#L25 assume !(~n <= 0); 969887#L26 call #t~ret0 := fact(~n - 1);< 970265#$Ultimate##0 ~n := #in~n; 970250#L25 assume !(~n <= 0); 969885#L26 call #t~ret0 := fact(~n - 1);< 970245#$Ultimate##0 ~n := #in~n; 970345#L25 assume !(~n <= 0); 969884#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 969905#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 971116#factFINAL assume true; 970684#factEXIT >#72#return; 970685#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 970852#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 970850#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 970848#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 970847#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970146#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970252#$Ultimate##0 ~n := #in~n; 970246#L25 assume !(~n <= 0); 969868#L26 call #t~ret0 := fact(~n - 1);< 970068#$Ultimate##0 ~n := #in~n; 970066#L25 assume !(~n <= 0); 969886#L26 call #t~ret0 := fact(~n - 1);< 970056#$Ultimate##0 ~n := #in~n; 970054#L25 assume !(~n <= 0); 969883#L26 call #t~ret0 := fact(~n - 1);< 970045#$Ultimate##0 ~n := #in~n; 970044#L25 assume !(~n <= 0); 969879#L26 call #t~ret0 := fact(~n - 1);< 970043#$Ultimate##0 ~n := #in~n; 970041#L25 assume !(~n <= 0); 969878#L26 call #t~ret0 := fact(~n - 1);< 969996#$Ultimate##0 ~n := #in~n; 970037#L25 assume !(~n <= 0); 969875#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 969903#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969935#factFINAL assume true; 969867#factEXIT >#66#return; 969900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970326#factFINAL assume true; 970278#factEXIT >#68#return; 969655#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 969686#$Ultimate##0 ~n := #in~n; 969684#L25 assume !(~n <= 0); 969685#L26 call #t~ret0 := fact(~n - 1);< 970481#$Ultimate##0 ~n := #in~n; 970706#L25 assume ~n <= 0;#res := 1; 970696#factFINAL assume true; 970478#factEXIT >#66#return; 970476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970358#factFINAL assume true; 970299#factEXIT >#70#return; 969858#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 970055#$Ultimate##0 ~n := #in~n; 970053#L25 assume !(~n <= 0); 969869#L26 call #t~ret0 := fact(~n - 1);< 970045#$Ultimate##0 ~n := #in~n; 970044#L25 assume !(~n <= 0); 969879#L26 call #t~ret0 := fact(~n - 1);< 970043#$Ultimate##0 ~n := #in~n; 970041#L25 assume !(~n <= 0); 969878#L26 call #t~ret0 := fact(~n - 1);< 969996#$Ultimate##0 ~n := #in~n; 970037#L25 assume !(~n <= 0); 969875#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 969903#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969935#factFINAL assume true; 969867#factEXIT >#66#return; 969901#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970324#factFINAL assume true; 970277#factEXIT >#72#return; 970131#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 970931#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 970930#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 970929#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 970928#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970181#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970252#$Ultimate##0 ~n := #in~n; 970246#L25 assume !(~n <= 0); 969868#L26 call #t~ret0 := fact(~n - 1);< 970068#$Ultimate##0 ~n := #in~n; 970066#L25 assume !(~n <= 0); 969886#L26 call #t~ret0 := fact(~n - 1);< 970056#$Ultimate##0 ~n := #in~n; 970054#L25 assume !(~n <= 0); 969883#L26 call #t~ret0 := fact(~n - 1);< 970045#$Ultimate##0 ~n := #in~n; 970044#L25 assume !(~n <= 0); 969879#L26 call #t~ret0 := fact(~n - 1);< 970043#$Ultimate##0 ~n := #in~n; 970041#L25 assume !(~n <= 0); 969878#L26 call #t~ret0 := fact(~n - 1);< 969996#$Ultimate##0 ~n := #in~n; 970037#L25 assume !(~n <= 0); 969875#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 969903#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969935#factFINAL assume true; 969867#factEXIT >#66#return; 969900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970326#factFINAL assume true; 970278#factEXIT >#68#return; 969635#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 969687#$Ultimate##0 ~n := #in~n; 970750#L25 assume !(~n <= 0); 969892#L26 call #t~ret0 := fact(~n - 1);< 970482#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970009#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970485#factFINAL assume true; 970366#factEXIT >#70#return; 969743#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 970042#$Ultimate##0 ~n := #in~n; 970040#L25 assume !(~n <= 0); 969872#L26 call #t~ret0 := fact(~n - 1);< 969996#$Ultimate##0 ~n := #in~n; 970037#L25 assume !(~n <= 0); 969875#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970531#factFINAL assume true; 970504#factEXIT >#72#return; 969843#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 970601#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 970599#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 970597#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 970595#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970223#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970252#$Ultimate##0 ~n := #in~n; 970246#L25 assume !(~n <= 0); 969868#L26 call #t~ret0 := fact(~n - 1);< 970068#$Ultimate##0 ~n := #in~n; 970066#L25 assume !(~n <= 0); 969886#L26 call #t~ret0 := fact(~n - 1);< 970056#$Ultimate##0 ~n := #in~n; 970054#L25 assume !(~n <= 0); 969883#L26 call #t~ret0 := fact(~n - 1);< 970045#$Ultimate##0 ~n := #in~n; 970044#L25 assume !(~n <= 0); 969879#L26 call #t~ret0 := fact(~n - 1);< 970043#$Ultimate##0 ~n := #in~n; 970041#L25 assume !(~n <= 0); 969878#L26 call #t~ret0 := fact(~n - 1);< 969996#$Ultimate##0 ~n := #in~n; 970037#L25 assume !(~n <= 0); 969875#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 969903#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969935#factFINAL assume true; 969867#factEXIT >#66#return; 969900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970326#factFINAL assume true; 970278#factEXIT >#68#return; 969670#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 969687#$Ultimate##0 ~n := #in~n; 970750#L25 assume !(~n <= 0); 969892#L26 call #t~ret0 := fact(~n - 1);< 970482#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969992#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970502#factFINAL assume true; 970394#factEXIT >#70#return; 969806#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 970325#$Ultimate##0 ~n := #in~n; 970857#L25 assume !(~n <= 0); 969882#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970531#factFINAL assume true; 970504#factEXIT >#72#return; 970525#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 970795#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 970794#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 970793#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 970791#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970193#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970252#$Ultimate##0 ~n := #in~n; 970246#L25 assume !(~n <= 0); 969868#L26 call #t~ret0 := fact(~n - 1);< 970068#$Ultimate##0 ~n := #in~n; 970066#L25 assume !(~n <= 0); 969886#L26 call #t~ret0 := fact(~n - 1);< 970056#$Ultimate##0 ~n := #in~n; 970054#L25 assume !(~n <= 0); 969883#L26 call #t~ret0 := fact(~n - 1);< 970045#$Ultimate##0 ~n := #in~n; 970044#L25 assume !(~n <= 0); 969879#L26 call #t~ret0 := fact(~n - 1);< 970043#$Ultimate##0 ~n := #in~n; 970041#L25 assume !(~n <= 0); 969878#L26 call #t~ret0 := fact(~n - 1);< 969996#$Ultimate##0 ~n := #in~n; 970037#L25 assume !(~n <= 0); 969875#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 969903#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969935#factFINAL assume true; 969867#factEXIT >#66#return; 969900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970326#factFINAL assume true; 970278#factEXIT >#68#return; 969659#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 969687#$Ultimate##0 ~n := #in~n; 970750#L25 assume !(~n <= 0); 969892#L26 call #t~ret0 := fact(~n - 1);< 970482#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970531#factFINAL assume true; 970504#factEXIT >#70#return; 969791#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 970325#$Ultimate##0 ~n := #in~n; 970857#L25 assume !(~n <= 0); 969882#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969992#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970502#factFINAL assume true; 970394#factEXIT >#72#return; 970393#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 970392#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 970391#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 970389#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 970387#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970210#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970252#$Ultimate##0 ~n := #in~n; 970246#L25 assume !(~n <= 0); 969868#L26 call #t~ret0 := fact(~n - 1);< 970068#$Ultimate##0 ~n := #in~n; 970066#L25 assume !(~n <= 0); 969886#L26 call #t~ret0 := fact(~n - 1);< 970056#$Ultimate##0 ~n := #in~n; 970054#L25 assume !(~n <= 0); 969883#L26 call #t~ret0 := fact(~n - 1);< 970045#$Ultimate##0 ~n := #in~n; 970044#L25 assume !(~n <= 0); 969879#L26 call #t~ret0 := fact(~n - 1);< 970043#$Ultimate##0 ~n := #in~n; 970041#L25 assume !(~n <= 0); 969878#L26 call #t~ret0 := fact(~n - 1);< 969996#$Ultimate##0 ~n := #in~n; 970037#L25 assume !(~n <= 0); 969875#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 969903#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969935#factFINAL assume true; 969867#factEXIT >#66#return; 969900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970326#factFINAL assume true; 970278#factEXIT >#68#return; 969641#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 969687#$Ultimate##0 ~n := #in~n; 970750#L25 assume !(~n <= 0); 969892#L26 call #t~ret0 := fact(~n - 1);< 970482#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970284#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970444#factFINAL assume true; 969688#factEXIT >#70#return; 969768#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 970325#$Ultimate##0 ~n := #in~n; 970857#L25 assume !(~n <= 0); 969882#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970009#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970485#factFINAL assume true; 970366#factEXIT >#72#return; 970365#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 970364#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 970363#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 970362#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 970361#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970191#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970252#$Ultimate##0 ~n := #in~n; 970246#L25 assume !(~n <= 0); 969868#L26 call #t~ret0 := fact(~n - 1);< 970068#$Ultimate##0 ~n := #in~n; 970066#L25 assume !(~n <= 0); 969886#L26 call #t~ret0 := fact(~n - 1);< 970056#$Ultimate##0 ~n := #in~n; 970054#L25 assume !(~n <= 0); 969883#L26 call #t~ret0 := fact(~n - 1);< 970045#$Ultimate##0 ~n := #in~n; 970044#L25 assume !(~n <= 0); 969879#L26 call #t~ret0 := fact(~n - 1);< 970043#$Ultimate##0 ~n := #in~n; 970041#L25 assume !(~n <= 0); 969878#L26 call #t~ret0 := fact(~n - 1);< 969996#$Ultimate##0 ~n := #in~n; 970037#L25 assume !(~n <= 0); 969875#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 969903#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969935#factFINAL assume true; 969867#factEXIT >#66#return; 969900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970326#factFINAL assume true; 970278#factEXIT >#68#return; 969668#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 969687#$Ultimate##0 ~n := #in~n; 970750#L25 assume !(~n <= 0); 969892#L26 call #t~ret0 := fact(~n - 1);< 970482#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 969903#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969935#factFINAL assume true; 969867#factEXIT >#66#return; 969901#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970324#factFINAL assume true; 970277#factEXIT >#70#return; 969705#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 969864#$Ultimate##0 ~n := #in~n; 970751#L25 assume !(~n <= 0); 969892#L26 call #t~ret0 := fact(~n - 1);< 970482#$Ultimate##0 ~n := #in~n; 970706#L25 assume ~n <= 0;#res := 1; 970696#factFINAL assume true; 970478#factEXIT >#66#return; 970476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970358#factFINAL assume true; 970299#factEXIT >#72#return; 970320#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 970455#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 970454#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 970453#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 970452#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970188#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970252#$Ultimate##0 ~n := #in~n; 970246#L25 assume !(~n <= 0); 969868#L26 call #t~ret0 := fact(~n - 1);< 970068#$Ultimate##0 ~n := #in~n; 970066#L25 assume !(~n <= 0); 969886#L26 call #t~ret0 := fact(~n - 1);< 970056#$Ultimate##0 ~n := #in~n; 970054#L25 assume !(~n <= 0); 969883#L26 call #t~ret0 := fact(~n - 1);< 970045#$Ultimate##0 ~n := #in~n; 970044#L25 assume !(~n <= 0); 969879#L26 call #t~ret0 := fact(~n - 1);< 970043#$Ultimate##0 ~n := #in~n; 970041#L25 assume !(~n <= 0); 969878#L26 call #t~ret0 := fact(~n - 1);< 969996#$Ultimate##0 ~n := #in~n; 970037#L25 assume !(~n <= 0); 969875#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 969903#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969935#factFINAL assume true; 969867#factEXIT >#66#return; 969900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970326#factFINAL assume true; 970278#factEXIT >#68#return; 969929#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 970135#$Ultimate##0 ~n := #in~n; 970446#L25 assume !(~n <= 0); 969877#L26 call #t~ret0 := fact(~n - 1);< 969934#$Ultimate##0 ~n := #in~n; 970949#L25 assume !(~n <= 0); 969873#L26 call #t~ret0 := fact(~n - 1);< 970244#$Ultimate##0 ~n := #in~n; 971275#L25 assume !(~n <= 0); 969889#L26 call #t~ret0 := fact(~n - 1);< 970263#$Ultimate##0 ~n := #in~n; 970279#L25 assume !(~n <= 0); 969887#L26 call #t~ret0 := fact(~n - 1);< 970265#$Ultimate##0 ~n := #in~n; 970250#L25 assume !(~n <= 0); 969885#L26 call #t~ret0 := fact(~n - 1);< 970245#$Ultimate##0 ~n := #in~n; 970345#L25 assume !(~n <= 0); 969884#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 969903#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969935#factFINAL assume true; 969867#factEXIT >#66#return; 969901#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970324#factFINAL assume true; 970277#factEXIT >#70#return; 969648#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 969687#$Ultimate##0 ~n := #in~n; 970750#L25 assume ~n <= 0;#res := 1; 969683#factFINAL assume true; 969616#factEXIT >#72#return; 969675#L30-3 [2023-02-18 08:59:04,045 INFO L750 eck$LassoCheckResult]: Loop: 969675#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 971405#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 971403#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 971401#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 971399#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 971102#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 969482#$Ultimate##0 ~n := #in~n; 973246#L25 assume !(~n <= 0); 969489#L26 call #t~ret0 := fact(~n - 1);< 973244#$Ultimate##0 ~n := #in~n; 973243#L25 assume !(~n <= 0); 969488#L26 call #t~ret0 := fact(~n - 1);< 973154#$Ultimate##0 ~n := #in~n; 973247#L25 assume !(~n <= 0); 969500#L26 call #t~ret0 := fact(~n - 1);< 973159#$Ultimate##0 ~n := #in~n; 973295#L25 assume !(~n <= 0); 969499#L26 call #t~ret0 := fact(~n - 1);< 973181#$Ultimate##0 ~n := #in~n; 973296#L25 assume !(~n <= 0); 969498#L26 call #t~ret0 := fact(~n - 1);< 973254#$Ultimate##0 ~n := #in~n; 973277#L25 assume !(~n <= 0); 969497#L26 call #t~ret0 := fact(~n - 1);< 973265#$Ultimate##0 ~n := #in~n; 973279#L25 assume !(~n <= 0); 969501#L26 call #t~ret0 := fact(~n - 1);< 973284#$Ultimate##0 ~n := #in~n; 969603#L25 assume ~n <= 0;#res := 1; 973287#factFINAL assume true; 973283#factEXIT >#66#return; 973282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973281#factFINAL assume true; 973261#factEXIT >#66#return; 973259#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973258#factFINAL assume true; 973252#factEXIT >#66#return; 973251#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973250#factFINAL assume true; 973178#factEXIT >#66#return; 973176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973166#factFINAL assume true; 973156#factEXIT >#66#return; 973155#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973153#factFINAL assume true; 973148#factEXIT >#66#return; 973150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973315#factFINAL assume true; 973314#factEXIT >#66#return; 973313#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973312#factFINAL assume true; 971086#factEXIT >#74#return; 971059#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 972578#$Ultimate##0 ~n := #in~n; 973187#L25 assume !(~n <= 0); 973149#L26 call #t~ret0 := fact(~n - 1);< 973162#$Ultimate##0 ~n := #in~n; 973161#L25 assume !(~n <= 0); 973157#L26 call #t~ret0 := fact(~n - 1);< 973160#$Ultimate##0 ~n := #in~n; 973184#L25 assume !(~n <= 0); 973179#L26 call #t~ret0 := fact(~n - 1);< 973182#$Ultimate##0 ~n := #in~n; 973256#L25 assume !(~n <= 0); 973253#L26 call #t~ret0 := fact(~n - 1);< 973255#$Ultimate##0 ~n := #in~n; 973280#L25 assume !(~n <= 0); 973262#L26 call #t~ret0 := fact(~n - 1);< 973264#$Ultimate##0 ~n := #in~n; 973285#L25 assume !(~n <= 0); 969602#L26 call #t~ret0 := fact(~n - 1);< 969601#$Ultimate##0 ~n := #in~n; 969603#L25 assume ~n <= 0;#res := 1; 973287#factFINAL assume true; 973283#factEXIT >#66#return; 973282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973281#factFINAL assume true; 973261#factEXIT >#66#return; 973259#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973258#factFINAL assume true; 973252#factEXIT >#66#return; 973251#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973250#factFINAL assume true; 973178#factEXIT >#66#return; 973176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973166#factFINAL assume true; 973156#factEXIT >#66#return; 973155#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973153#factFINAL assume true; 973148#factEXIT >#66#return; 973147#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973146#factFINAL assume true; 972579#factEXIT >#76#return; 969567#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 969613#$Ultimate##0 ~n := #in~n; 973893#L25 assume !(~n <= 0); 969563#L26 call #t~ret0 := fact(~n - 1);< 969569#$Ultimate##0 ~n := #in~n; 973629#L25 assume ~n <= 0;#res := 1; 973627#factFINAL assume true; 973626#factEXIT >#66#return; 973619#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 973617#factFINAL assume true; 971085#factEXIT >#78#return; 971082#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 974798#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 974796#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 974794#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 974792#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 974790#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 974788#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 974786#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970816#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970817#$Ultimate##0 ~n := #in~n; 971111#L25 assume !(~n <= 0); 970233#L26 call #t~ret0 := fact(~n - 1);< 970238#$Ultimate##0 ~n := #in~n; 971815#L25 assume !(~n <= 0); 970256#L26 call #t~ret0 := fact(~n - 1);< 970262#$Ultimate##0 ~n := #in~n; 974921#L25 assume !(~n <= 0); 970281#L26 call #t~ret0 := fact(~n - 1);< 969940#$Ultimate##0 ~n := #in~n; 974920#L25 assume !(~n <= 0); 969949#L26 call #t~ret0 := fact(~n - 1);< 974903#$Ultimate##0 ~n := #in~n; 974919#L25 assume !(~n <= 0); 969987#L26 call #t~ret0 := fact(~n - 1);< 969999#$Ultimate##0 ~n := #in~n; 974918#L25 assume !(~n <= 0); 970006#L26 call #t~ret0 := fact(~n - 1);< 974917#$Ultimate##0 ~n := #in~n; 974897#L25 assume !(~n <= 0); 970031#L26 call #t~ret0 := fact(~n - 1);< 970032#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 970236#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970819#factFINAL assume true; 970812#factEXIT >#68#return; 970611#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 970623#$Ultimate##0 ~n := #in~n; 970625#L25 assume ~n <= 0;#res := 1; 970624#factFINAL assume true; 970610#factEXIT >#70#return; 970242#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 970686#$Ultimate##0 ~n := #in~n; 970855#L25 assume !(~n <= 0); 969899#L26 call #t~ret0 := fact(~n - 1);< 970244#$Ultimate##0 ~n := #in~n; 971275#L25 assume !(~n <= 0); 969889#L26 call #t~ret0 := fact(~n - 1);< 970263#$Ultimate##0 ~n := #in~n; 970279#L25 assume !(~n <= 0); 969887#L26 call #t~ret0 := fact(~n - 1);< 970265#$Ultimate##0 ~n := #in~n; 970250#L25 assume !(~n <= 0); 969885#L26 call #t~ret0 := fact(~n - 1);< 970245#$Ultimate##0 ~n := #in~n; 970345#L25 assume !(~n <= 0); 969884#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 969905#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 971116#factFINAL assume true; 970684#factEXIT >#72#return; 970609#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 970967#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 970965#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 970962#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 970959#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970141#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970227#$Ultimate##0 ~n := #in~n; 970247#L25 assume !(~n <= 0); 970231#L26 call #t~ret0 := fact(~n - 1);< 970238#$Ultimate##0 ~n := #in~n; 971815#L25 assume !(~n <= 0); 970256#L26 call #t~ret0 := fact(~n - 1);< 970262#$Ultimate##0 ~n := #in~n; 974921#L25 assume !(~n <= 0); 970281#L26 call #t~ret0 := fact(~n - 1);< 969940#$Ultimate##0 ~n := #in~n; 974920#L25 assume !(~n <= 0); 969949#L26 call #t~ret0 := fact(~n - 1);< 974903#$Ultimate##0 ~n := #in~n; 974919#L25 assume !(~n <= 0); 969987#L26 call #t~ret0 := fact(~n - 1);< 969999#$Ultimate##0 ~n := #in~n; 974918#L25 assume !(~n <= 0); 970006#L26 call #t~ret0 := fact(~n - 1);< 974917#$Ultimate##0 ~n := #in~n; 974897#L25 assume !(~n <= 0); 970031#L26 call #t~ret0 := fact(~n - 1);< 970032#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 970229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970228#factFINAL assume true; 970136#factEXIT >#68#return; 970225#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 970359#$Ultimate##0 ~n := #in~n; 970985#L25 assume !(~n <= 0); 969685#L26 call #t~ret0 := fact(~n - 1);< 970481#$Ultimate##0 ~n := #in~n; 970706#L25 assume ~n <= 0;#res := 1; 970696#factFINAL assume true; 970478#factEXIT >#66#return; 970476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970358#factFINAL assume true; 970299#factEXIT >#70#return; 969862#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 969865#$Ultimate##0 ~n := #in~n; 971301#L25 assume !(~n <= 0); 969964#L26 call #t~ret0 := fact(~n - 1);< 970275#$Ultimate##0 ~n := #in~n; 974896#L25 assume !(~n <= 0); 969951#L26 call #t~ret0 := fact(~n - 1);< 969965#$Ultimate##0 ~n := #in~n; 974874#L25 assume !(~n <= 0); 969953#L26 call #t~ret0 := fact(~n - 1);< 969994#$Ultimate##0 ~n := #in~n; 974804#L25 assume !(~n <= 0); 969989#L26 call #t~ret0 := fact(~n - 1);< 970012#$Ultimate##0 ~n := #in~n; 970075#L25 assume !(~n <= 0); 970007#L26 call #t~ret0 := fact(~n - 1);< 970011#$Ultimate##0 ~n := #in~n; 974897#L25 assume !(~n <= 0); 970031#L26 call #t~ret0 := fact(~n - 1);< 970032#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 969866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969856#factFINAL assume true; 969863#factEXIT >#72#return; 970134#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 970842#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 970841#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 970840#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 970839#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970183#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970227#$Ultimate##0 ~n := #in~n; 970247#L25 assume !(~n <= 0); 970231#L26 call #t~ret0 := fact(~n - 1);< 970238#$Ultimate##0 ~n := #in~n; 971815#L25 assume !(~n <= 0); 970256#L26 call #t~ret0 := fact(~n - 1);< 970262#$Ultimate##0 ~n := #in~n; 974921#L25 assume !(~n <= 0); 970281#L26 call #t~ret0 := fact(~n - 1);< 969940#$Ultimate##0 ~n := #in~n; 974920#L25 assume !(~n <= 0); 969949#L26 call #t~ret0 := fact(~n - 1);< 974903#$Ultimate##0 ~n := #in~n; 974919#L25 assume !(~n <= 0); 969987#L26 call #t~ret0 := fact(~n - 1);< 969999#$Ultimate##0 ~n := #in~n; 974918#L25 assume !(~n <= 0); 970006#L26 call #t~ret0 := fact(~n - 1);< 974917#$Ultimate##0 ~n := #in~n; 974897#L25 assume !(~n <= 0); 970031#L26 call #t~ret0 := fact(~n - 1);< 970032#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 970229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970228#factFINAL assume true; 970136#factEXIT >#68#return; 969707#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 969864#$Ultimate##0 ~n := #in~n; 970751#L25 assume !(~n <= 0); 969892#L26 call #t~ret0 := fact(~n - 1);< 970482#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970009#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970485#factFINAL assume true; 970366#factEXIT >#70#return; 969741#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 970533#$Ultimate##0 ~n := #in~n; 971302#L25 assume !(~n <= 0); 969943#L26 call #t~ret0 := fact(~n - 1);< 969969#$Ultimate##0 ~n := #in~n; 970086#L25 assume !(~n <= 0); 969942#L26 call #t~ret0 := fact(~n - 1);< 970029#$Ultimate##0 ~n := #in~n; 970026#L25 assume !(~n <= 0); 969950#L26 call #t~ret0 := fact(~n - 1);< 970013#$Ultimate##0 ~n := #in~n; 970038#L25 assume !(~n <= 0); 969988#L26 call #t~ret0 := fact(~n - 1);< 970034#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970531#factFINAL assume true; 970504#factEXIT >#72#return; 969842#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 970963#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 970960#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 970958#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 970957#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970220#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970227#$Ultimate##0 ~n := #in~n; 970247#L25 assume !(~n <= 0); 970231#L26 call #t~ret0 := fact(~n - 1);< 970238#$Ultimate##0 ~n := #in~n; 971815#L25 assume !(~n <= 0); 970256#L26 call #t~ret0 := fact(~n - 1);< 970262#$Ultimate##0 ~n := #in~n; 974921#L25 assume !(~n <= 0); 970281#L26 call #t~ret0 := fact(~n - 1);< 969940#$Ultimate##0 ~n := #in~n; 974920#L25 assume !(~n <= 0); 969949#L26 call #t~ret0 := fact(~n - 1);< 974903#$Ultimate##0 ~n := #in~n; 974919#L25 assume !(~n <= 0); 969987#L26 call #t~ret0 := fact(~n - 1);< 969999#$Ultimate##0 ~n := #in~n; 974918#L25 assume !(~n <= 0); 970006#L26 call #t~ret0 := fact(~n - 1);< 974917#$Ultimate##0 ~n := #in~n; 974897#L25 assume !(~n <= 0); 970031#L26 call #t~ret0 := fact(~n - 1);< 970032#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 970229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970228#factFINAL assume true; 970136#factEXIT >#68#return; 969764#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 969864#$Ultimate##0 ~n := #in~n; 970751#L25 assume !(~n <= 0); 969892#L26 call #t~ret0 := fact(~n - 1);< 970482#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969992#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970502#factFINAL assume true; 970394#factEXIT >#70#return; 969807#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 970099#$Ultimate##0 ~n := #in~n; 970096#L25 assume !(~n <= 0); 969947#L26 call #t~ret0 := fact(~n - 1);< 970088#$Ultimate##0 ~n := #in~n; 970087#L25 assume !(~n <= 0); 969954#L26 call #t~ret0 := fact(~n - 1);< 970076#$Ultimate##0 ~n := #in~n; 970026#L25 assume !(~n <= 0); 969950#L26 call #t~ret0 := fact(~n - 1);< 970013#$Ultimate##0 ~n := #in~n; 970038#L25 assume !(~n <= 0); 969988#L26 call #t~ret0 := fact(~n - 1);< 970034#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970531#factFINAL assume true; 970504#factEXIT >#72#return; 970526#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 970956#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 970948#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 970947#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 970946#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970187#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970227#$Ultimate##0 ~n := #in~n; 970247#L25 assume !(~n <= 0); 970231#L26 call #t~ret0 := fact(~n - 1);< 970238#$Ultimate##0 ~n := #in~n; 971815#L25 assume !(~n <= 0); 970256#L26 call #t~ret0 := fact(~n - 1);< 970262#$Ultimate##0 ~n := #in~n; 974921#L25 assume !(~n <= 0); 970281#L26 call #t~ret0 := fact(~n - 1);< 969940#$Ultimate##0 ~n := #in~n; 974920#L25 assume !(~n <= 0); 969949#L26 call #t~ret0 := fact(~n - 1);< 974903#$Ultimate##0 ~n := #in~n; 974919#L25 assume !(~n <= 0); 969987#L26 call #t~ret0 := fact(~n - 1);< 969999#$Ultimate##0 ~n := #in~n; 974918#L25 assume !(~n <= 0); 970006#L26 call #t~ret0 := fact(~n - 1);< 974917#$Ultimate##0 ~n := #in~n; 974897#L25 assume !(~n <= 0); 970031#L26 call #t~ret0 := fact(~n - 1);< 970032#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 970229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970228#factFINAL assume true; 970136#factEXIT >#68#return; 969754#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 969864#$Ultimate##0 ~n := #in~n; 970751#L25 assume !(~n <= 0); 969892#L26 call #t~ret0 := fact(~n - 1);< 970482#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970531#factFINAL assume true; 970504#factEXIT >#70#return; 969792#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 970099#$Ultimate##0 ~n := #in~n; 970096#L25 assume !(~n <= 0); 969947#L26 call #t~ret0 := fact(~n - 1);< 970088#$Ultimate##0 ~n := #in~n; 970087#L25 assume !(~n <= 0); 969954#L26 call #t~ret0 := fact(~n - 1);< 970076#$Ultimate##0 ~n := #in~n; 970026#L25 assume !(~n <= 0); 969950#L26 call #t~ret0 := fact(~n - 1);< 970013#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969992#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970502#factFINAL assume true; 970394#factEXIT >#72#return; 970413#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 970942#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 970940#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 970939#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 970938#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970213#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970227#$Ultimate##0 ~n := #in~n; 970247#L25 assume !(~n <= 0); 970231#L26 call #t~ret0 := fact(~n - 1);< 970238#$Ultimate##0 ~n := #in~n; 971815#L25 assume !(~n <= 0); 970256#L26 call #t~ret0 := fact(~n - 1);< 970262#$Ultimate##0 ~n := #in~n; 974921#L25 assume !(~n <= 0); 970281#L26 call #t~ret0 := fact(~n - 1);< 969940#$Ultimate##0 ~n := #in~n; 974920#L25 assume !(~n <= 0); 969949#L26 call #t~ret0 := fact(~n - 1);< 974903#$Ultimate##0 ~n := #in~n; 974919#L25 assume !(~n <= 0); 969987#L26 call #t~ret0 := fact(~n - 1);< 969999#$Ultimate##0 ~n := #in~n; 974918#L25 assume !(~n <= 0); 970006#L26 call #t~ret0 := fact(~n - 1);< 974917#$Ultimate##0 ~n := #in~n; 974897#L25 assume !(~n <= 0); 970031#L26 call #t~ret0 := fact(~n - 1);< 970032#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 970229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970228#factFINAL assume true; 970136#factEXIT >#68#return; 969736#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 969864#$Ultimate##0 ~n := #in~n; 970751#L25 assume !(~n <= 0); 969892#L26 call #t~ret0 := fact(~n - 1);< 970482#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970284#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970444#factFINAL assume true; 969688#factEXIT >#70#return; 969759#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 970099#$Ultimate##0 ~n := #in~n; 970096#L25 assume !(~n <= 0); 969947#L26 call #t~ret0 := fact(~n - 1);< 970088#$Ultimate##0 ~n := #in~n; 970087#L25 assume !(~n <= 0); 969954#L26 call #t~ret0 := fact(~n - 1);< 970076#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970009#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970485#factFINAL assume true; 970366#factEXIT >#72#return; 970382#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 970390#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 970388#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 970386#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 970385#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970195#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970227#$Ultimate##0 ~n := #in~n; 970247#L25 assume !(~n <= 0); 970231#L26 call #t~ret0 := fact(~n - 1);< 970238#$Ultimate##0 ~n := #in~n; 971815#L25 assume !(~n <= 0); 970256#L26 call #t~ret0 := fact(~n - 1);< 970262#$Ultimate##0 ~n := #in~n; 974921#L25 assume !(~n <= 0); 970281#L26 call #t~ret0 := fact(~n - 1);< 969940#$Ultimate##0 ~n := #in~n; 974920#L25 assume !(~n <= 0); 969949#L26 call #t~ret0 := fact(~n - 1);< 974903#$Ultimate##0 ~n := #in~n; 974919#L25 assume !(~n <= 0); 969987#L26 call #t~ret0 := fact(~n - 1);< 969999#$Ultimate##0 ~n := #in~n; 974918#L25 assume !(~n <= 0); 970006#L26 call #t~ret0 := fact(~n - 1);< 974917#$Ultimate##0 ~n := #in~n; 974897#L25 assume !(~n <= 0); 970031#L26 call #t~ret0 := fact(~n - 1);< 970032#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 970229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970228#factFINAL assume true; 970136#factEXIT >#68#return; 969822#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 969864#$Ultimate##0 ~n := #in~n; 970751#L25 assume !(~n <= 0); 969892#L26 call #t~ret0 := fact(~n - 1);< 970482#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 970235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970442#factFINAL assume true; 970102#factEXIT >#70#return; 970094#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 970100#$Ultimate##0 ~n := #in~n; 970097#L25 assume !(~n <= 0); 969952#L26 call #t~ret0 := fact(~n - 1);< 970095#$Ultimate##0 ~n := #in~n; 970706#L25 assume ~n <= 0;#res := 1; 970696#factFINAL assume true; 970478#factEXIT >#66#return; 970476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970358#factFINAL assume true; 970299#factEXIT >#72#return; 970322#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 970969#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 970968#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 970937#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 970936#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 970185#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 970227#$Ultimate##0 ~n := #in~n; 970247#L25 assume !(~n <= 0); 970231#L26 call #t~ret0 := fact(~n - 1);< 970238#$Ultimate##0 ~n := #in~n; 971815#L25 assume !(~n <= 0); 970256#L26 call #t~ret0 := fact(~n - 1);< 970262#$Ultimate##0 ~n := #in~n; 974921#L25 assume !(~n <= 0); 970281#L26 call #t~ret0 := fact(~n - 1);< 969940#$Ultimate##0 ~n := #in~n; 974920#L25 assume !(~n <= 0); 969949#L26 call #t~ret0 := fact(~n - 1);< 974903#$Ultimate##0 ~n := #in~n; 974919#L25 assume !(~n <= 0); 969987#L26 call #t~ret0 := fact(~n - 1);< 969999#$Ultimate##0 ~n := #in~n; 974918#L25 assume !(~n <= 0); 970006#L26 call #t~ret0 := fact(~n - 1);< 974917#$Ultimate##0 ~n := #in~n; 974897#L25 assume !(~n <= 0); 970031#L26 call #t~ret0 := fact(~n - 1);< 970032#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 970229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970228#factFINAL assume true; 970136#factEXIT >#68#return; 969910#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 970135#$Ultimate##0 ~n := #in~n; 970446#L25 assume !(~n <= 0); 969877#L26 call #t~ret0 := fact(~n - 1);< 969934#$Ultimate##0 ~n := #in~n; 970949#L25 assume !(~n <= 0); 969873#L26 call #t~ret0 := fact(~n - 1);< 970244#$Ultimate##0 ~n := #in~n; 971275#L25 assume !(~n <= 0); 969889#L26 call #t~ret0 := fact(~n - 1);< 970263#$Ultimate##0 ~n := #in~n; 970279#L25 assume !(~n <= 0); 969887#L26 call #t~ret0 := fact(~n - 1);< 970265#$Ultimate##0 ~n := #in~n; 970250#L25 assume !(~n <= 0); 969885#L26 call #t~ret0 := fact(~n - 1);< 970245#$Ultimate##0 ~n := #in~n; 970345#L25 assume !(~n <= 0); 969884#L26 call #t~ret0 := fact(~n - 1);< 969979#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970085#L25 assume !(~n <= 0); 969874#L26 call #t~ret0 := fact(~n - 1);< 970033#$Ultimate##0 ~n := #in~n; 970039#L25 assume ~n <= 0;#res := 1; 970036#factFINAL assume true; 970030#factEXIT >#66#return; 970027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970014#factFINAL assume true; 970001#factEXIT >#66#return; 970000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969995#factFINAL assume true; 969981#factEXIT >#66#return; 969980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969968#factFINAL assume true; 969941#factEXIT >#66#return; 969957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970327#factFINAL assume true; 970280#factEXIT >#66#return; 970276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970267#factFINAL assume true; 970253#factEXIT >#66#return; 970248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970239#factFINAL assume true; 970230#factEXIT >#66#return; 969903#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 969935#factFINAL assume true; 969867#factEXIT >#66#return; 969901#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 970324#factFINAL assume true; 970277#factEXIT >#70#return; 969634#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 970101#$Ultimate##0 ~n := #in~n; 970098#L25 assume ~n <= 0;#res := 1; 969683#factFINAL assume true; 969616#factEXIT >#72#return; 969675#L30-3 [2023-02-18 08:59:04,045 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:59:04,045 INFO L85 PathProgramCache]: Analyzing trace with hash 604774840, now seen corresponding path program 81 times [2023-02-18 08:59:04,046 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:59:04,046 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1272213114] [2023-02-18 08:59:04,046 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:59:04,046 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:59:04,081 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:59:04,081 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [391675342] [2023-02-18 08:59:04,081 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:59:04,081 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:59:04,081 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:04,084 INFO L229 MonitoredProcess]: Starting monitored process 287 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:59:04,084 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (287)] Waiting until timeout for monitored process [2023-02-18 08:59:05,403 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 15 check-sat command(s) [2023-02-18 08:59:05,403 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:59:05,411 INFO L263 TraceCheckSpWp]: Trace formula consists of 1221 conjuncts, 33 conjunts are in the unsatisfiable core [2023-02-18 08:59:05,421 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:59:05,626 INFO L134 CoverageAnalysis]: Checked inductivity of 270284 backedges. 143119 proven. 893 refuted. 0 times theorem prover too weak. 126272 trivial. 0 not checked. [2023-02-18 08:59:05,626 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:59:05,968 INFO L134 CoverageAnalysis]: Checked inductivity of 270284 backedges. 9222 proven. 9543 refuted. 0 times theorem prover too weak. 251519 trivial. 0 not checked. [2023-02-18 08:59:05,968 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:59:05,968 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1272213114] [2023-02-18 08:59:05,968 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:59:05,968 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [391675342] [2023-02-18 08:59:05,968 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [391675342] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:59:05,968 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:59:05,969 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 28] total 32 [2023-02-18 08:59:05,969 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1261823056] [2023-02-18 08:59:05,969 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:59:05,969 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:59:05,969 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:59:05,969 INFO L85 PathProgramCache]: Analyzing trace with hash -2128565645, now seen corresponding path program 81 times [2023-02-18 08:59:05,970 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:59:05,970 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2035713427] [2023-02-18 08:59:05,970 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:59:05,970 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:59:05,994 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:59:05,994 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [75801795] [2023-02-18 08:59:05,994 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:59:05,994 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:59:05,994 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:05,996 INFO L229 MonitoredProcess]: Starting monitored process 288 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:59:05,997 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (288)] Waiting until timeout for monitored process [2023-02-18 08:59:07,083 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 16 check-sat command(s) [2023-02-18 08:59:07,083 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:59:07,088 INFO L263 TraceCheckSpWp]: Trace formula consists of 987 conjuncts, 33 conjunts are in the unsatisfiable core [2023-02-18 08:59:07,093 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:59:07,209 INFO L134 CoverageAnalysis]: Checked inductivity of 63383 backedges. 21241 proven. 557 refuted. 0 times theorem prover too weak. 41585 trivial. 0 not checked. [2023-02-18 08:59:07,210 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:59:07,592 INFO L134 CoverageAnalysis]: Checked inductivity of 63383 backedges. 6969 proven. 1782 refuted. 0 times theorem prover too weak. 54632 trivial. 0 not checked. [2023-02-18 08:59:07,592 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:59:07,592 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2035713427] [2023-02-18 08:59:07,592 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:59:07,594 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [75801795] [2023-02-18 08:59:07,594 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [75801795] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:59:07,594 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:59:07,594 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [21, 32] total 35 [2023-02-18 08:59:07,594 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [655717733] [2023-02-18 08:59:07,594 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:59:07,594 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:59:07,594 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:59:07,595 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 35 interpolants. [2023-02-18 08:59:07,595 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=168, Invalid=1022, Unknown=0, NotChecked=0, Total=1190 [2023-02-18 08:59:07,595 INFO L87 Difference]: Start difference. First operand 5485 states and 8765 transitions. cyclomatic complexity: 3325 Second operand has 35 states, 32 states have (on average 2.8125) internal successors, (90), 35 states have internal predecessors, (90), 20 states have call successors, (35), 2 states have call predecessors, (35), 15 states have return successors, (44), 18 states have call predecessors, (44), 20 states have call successors, (44) [2023-02-18 08:59:09,009 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:59:09,010 INFO L93 Difference]: Finished difference Result 5745 states and 9276 transitions. [2023-02-18 08:59:09,010 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 5745 states and 9276 transitions. [2023-02-18 08:59:09,041 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 879 [2023-02-18 08:59:09,081 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 5745 states to 5745 states and 9272 transitions. [2023-02-18 08:59:09,081 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 434 [2023-02-18 08:59:09,082 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 434 [2023-02-18 08:59:09,082 INFO L73 IsDeterministic]: Start isDeterministic. Operand 5745 states and 9272 transitions. [2023-02-18 08:59:09,082 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:59:09,082 INFO L218 hiAutomatonCegarLoop]: Abstraction has 5745 states and 9272 transitions. [2023-02-18 08:59:09,084 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 5745 states and 9272 transitions. [2023-02-18 08:59:09,147 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 5745 to 5485. [2023-02-18 08:59:09,152 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5485 states, 3338 states have (on average 1.0476333133612943) internal successors, (3497), 3336 states have internal predecessors, (3497), 1799 states have call successors, (1821), 503 states have call predecessors, (1821), 348 states have return successors, (3391), 1645 states have call predecessors, (3391), 1799 states have call successors, (3391) [2023-02-18 08:59:09,171 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5485 states to 5485 states and 8709 transitions. [2023-02-18 08:59:09,171 INFO L240 hiAutomatonCegarLoop]: Abstraction has 5485 states and 8709 transitions. [2023-02-18 08:59:09,172 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 20 states. [2023-02-18 08:59:09,172 INFO L428 stractBuchiCegarLoop]: Abstraction has 5485 states and 8709 transitions. [2023-02-18 08:59:09,172 INFO L335 stractBuchiCegarLoop]: ======== Iteration 94 ============ [2023-02-18 08:59:09,172 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 5485 states and 8709 transitions. [2023-02-18 08:59:09,185 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 863 [2023-02-18 08:59:09,185 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:59:09,185 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:59:09,192 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [318, 318, 237, 237, 237, 237, 81, 27, 26, 20, 20, 20, 20, 20, 20, 20, 19, 19, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 4, 4, 1, 1, 1, 1] [2023-02-18 08:59:09,192 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [154, 154, 127, 127, 127, 127, 27, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:59:09,193 INFO L748 eck$LassoCheckResult]: Stem: 998660#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 998607#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; 998608#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 998629#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; 998661#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1002522#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1002520#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1002517#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1002518#$Ultimate##0 ~n := #in~n; 1002638#L25 assume ~n <= 0;#res := 1; 1002636#factFINAL assume true; 1002516#factEXIT >#68#return; 1001995#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1001996#$Ultimate##0 ~n := #in~n; 1002000#L25 assume ~n <= 0;#res := 1; 1001998#factFINAL assume true; 1001994#factEXIT >#70#return; 1001992#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1001993#$Ultimate##0 ~n := #in~n; 1002383#L25 assume ~n <= 0;#res := 1; 1002382#factFINAL assume true; 1001991#factEXIT >#72#return; 1001989#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1001985#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1001983#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1001981#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1001980#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1001978#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1001979#$Ultimate##0 ~n := #in~n; 1001990#L25 assume !(~n <= 0); 1001987#L26 call #t~ret0 := fact(~n - 1);< 1001988#$Ultimate##0 ~n := #in~n; 1002352#L25 assume ~n <= 0;#res := 1; 1002350#factFINAL assume true; 1001986#factEXIT >#66#return; 1001984#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1001982#factFINAL assume true; 1001977#factEXIT >#74#return; 1001974#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1001975#$Ultimate##0 ~n := #in~n; 1002344#L25 assume ~n <= 0;#res := 1; 1002342#factFINAL assume true; 1001973#factEXIT >#76#return; 1001970#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1001971#$Ultimate##0 ~n := #in~n; 1002628#L25 assume !(~n <= 0); 1002022#L26 call #t~ret0 := fact(~n - 1);< 1002023#$Ultimate##0 ~n := #in~n; 1002032#L25 assume ~n <= 0;#res := 1; 1002030#factFINAL assume true; 1002021#factEXIT >#66#return; 1002019#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1002018#factFINAL assume true; 1001969#factEXIT >#78#return; 1001966#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1001959#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1001955#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1001951#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1001950#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1001935#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1001936#$Ultimate##0 ~n := #in~n; 1003414#L25 assume !(~n <= 0); 1001942#L26 call #t~ret0 := fact(~n - 1);< 1001947#$Ultimate##0 ~n := #in~n; 1002340#L25 assume !(~n <= 0); 1001944#L26 call #t~ret0 := fact(~n - 1);< 1002339#$Ultimate##0 ~n := #in~n; 1002343#L25 assume ~n <= 0;#res := 1; 1002341#factFINAL assume true; 1002338#factEXIT >#66#return; 1002337#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1002329#factFINAL assume true; 1001941#factEXIT >#66#return; 1001946#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1003308#factFINAL assume true; 1001934#factEXIT >#74#return; 1001911#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1001912#$Ultimate##0 ~n := #in~n; 1001917#L25 assume ~n <= 0;#res := 1; 1001915#factFINAL assume true; 1001910#factEXIT >#76#return; 1001908#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1001909#$Ultimate##0 ~n := #in~n; 1002348#L25 assume !(~n <= 0); 1001943#L26 call #t~ret0 := fact(~n - 1);< 1001947#$Ultimate##0 ~n := #in~n; 1002340#L25 assume !(~n <= 0); 1001944#L26 call #t~ret0 := fact(~n - 1);< 1002339#$Ultimate##0 ~n := #in~n; 1002343#L25 assume ~n <= 0;#res := 1; 1002341#factFINAL assume true; 1002338#factEXIT >#66#return; 1002337#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1002329#factFINAL assume true; 1001941#factEXIT >#66#return; 1001938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1001923#factFINAL assume true; 1001907#factEXIT >#78#return; 1001896#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1001891#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1001890#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1001889#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1001886#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1001883#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1001884#$Ultimate##0 ~n := #in~n; 1001925#L25 assume !(~n <= 0); 1001904#L26 call #t~ret0 := fact(~n - 1);< 1001906#$Ultimate##0 ~n := #in~n; 1001976#L25 assume !(~n <= 0); 1001905#L26 call #t~ret0 := fact(~n - 1);< 1001940#$Ultimate##0 ~n := #in~n; 1001976#L25 assume !(~n <= 0); 1001905#L26 call #t~ret0 := fact(~n - 1);< 1001940#$Ultimate##0 ~n := #in~n; 1001972#L25 assume ~n <= 0;#res := 1; 1001967#factFINAL assume true; 1001960#factEXIT >#66#return; 1001956#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1001952#factFINAL assume true; 1001939#factEXIT >#66#return; 1001937#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1001922#factFINAL assume true; 1001903#factEXIT >#66#return; 1001902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1001893#factFINAL assume true; 1001882#factEXIT >#74#return; 1001872#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1001873#$Ultimate##0 ~n := #in~n; 1001881#L25 assume ~n <= 0;#res := 1; 1001876#factFINAL assume true; 1001871#factEXIT >#76#return; 998640#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1001853#$Ultimate##0 ~n := #in~n; 1003310#L25 assume !(~n <= 0); 998556#L26 call #t~ret0 := fact(~n - 1);< 1001920#$Ultimate##0 ~n := #in~n; 1001963#L25 assume !(~n <= 0); 998554#L26 call #t~ret0 := fact(~n - 1);< 1001962#$Ultimate##0 ~n := #in~n; 1001963#L25 assume !(~n <= 0); 998554#L26 call #t~ret0 := fact(~n - 1);< 1001962#$Ultimate##0 ~n := #in~n; 1001965#L25 assume ~n <= 0;#res := 1; 1001964#factFINAL assume true; 1001961#factEXIT >#66#return; 1001957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1001953#factFINAL assume true; 1001949#factEXIT >#66#return; 1001933#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1001919#factFINAL assume true; 1001899#factEXIT >#66#return; 998560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 998641#factFINAL assume true; 1001852#factEXIT >#78#return; 1001844#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1001842#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1001840#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1001838#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1001836#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1001827#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1001815#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1001814#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1001698#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1001702#$Ultimate##0 ~n := #in~n; 1001812#L25 assume !(~n <= 0); 1001774#L26 call #t~ret0 := fact(~n - 1);< 1001808#$Ultimate##0 ~n := #in~n; 1001927#L25 assume ~n <= 0;#res := 1; 1002606#factFINAL assume true; 1002574#factEXIT >#66#return; 1002582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1002601#factFINAL assume true; 1002599#factEXIT >#68#return; 1002592#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1001690#$Ultimate##0 ~n := #in~n; 1002603#L25 assume ~n <= 0;#res := 1; 1002602#factFINAL assume true; 1002591#factEXIT >#70#return; 1002589#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1002590#$Ultimate##0 ~n := #in~n; 1002605#L25 assume !(~n <= 0); 1001786#L26 call #t~ret0 := fact(~n - 1);< 1002585#$Ultimate##0 ~n := #in~n; 1001927#L25 assume ~n <= 0;#res := 1; 1002606#factFINAL assume true; 1002574#factEXIT >#66#return; 1002583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1002604#factFINAL assume true; 1002588#factEXIT >#72#return; 1002586#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1002573#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1002571#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1002569#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1002568#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1002560#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1002567#$Ultimate##0 ~n := #in~n; 1002587#L25 assume !(~n <= 0); 1001781#L26 call #t~ret0 := fact(~n - 1);< 1002585#$Ultimate##0 ~n := #in~n; 1001927#L25 assume ~n <= 0;#res := 1; 1002606#factFINAL assume true; 1002574#factEXIT >#66#return; 1002572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1002570#factFINAL assume true; 1002559#factEXIT >#68#return; 1002540#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1002558#$Ultimate##0 ~n := #in~n; 1002633#L25 assume !(~n <= 0); 1002578#L26 call #t~ret0 := fact(~n - 1);< 1002607#$Ultimate##0 ~n := #in~n; 1001927#L25 assume ~n <= 0;#res := 1; 1002606#factFINAL assume true; 1002574#factEXIT >#66#return; 1002584#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1002626#factFINAL assume true; 1002538#factEXIT >#70#return; 1002525#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1002537#$Ultimate##0 ~n := #in~n; 1002635#L25 assume ~n <= 0;#res := 1; 1002634#factFINAL assume true; 1002523#factEXIT >#72#return; 1002521#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1002519#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1002515#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1002512#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1002511#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1002508#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1002510#$Ultimate##0 ~n := #in~n; 1002652#L25 assume !(~n <= 0); 1001785#L26 call #t~ret0 := fact(~n - 1);< 1002611#$Ultimate##0 ~n := #in~n; 1001954#L25 assume !(~n <= 0); 1001784#L26 call #t~ret0 := fact(~n - 1);< 1001834#$Ultimate##0 ~n := #in~n; 1001877#L25 assume ~n <= 0;#res := 1; 1001856#factFINAL assume true; 1001832#factEXIT >#66#return; 1001831#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1001819#factFINAL assume true; 1001769#factEXIT >#66#return; 1001805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1002656#factFINAL assume true; 1002655#factEXIT >#74#return; 1002451#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1002488#$Ultimate##0 ~n := #in~n; 1002608#L25 assume !(~n <= 0); 1001797#L26 call #t~ret0 := fact(~n - 1);< 1001808#$Ultimate##0 ~n := #in~n; 1001927#L25 assume ~n <= 0;#res := 1; 1002606#factFINAL assume true; 1002574#factEXIT >#66#return; 1002579#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1002906#factFINAL assume true; 1002482#factEXIT >#76#return; 1002481#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1002504#$Ultimate##0 ~n := #in~n; 1003313#L25 assume !(~n <= 0); 1002575#L26 call #t~ret0 := fact(~n - 1);< 1002607#$Ultimate##0 ~n := #in~n; 1001927#L25 assume ~n <= 0;#res := 1; 1002606#factFINAL assume true; 1002574#factEXIT >#66#return; 1002579#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1002906#factFINAL assume true; 1002482#factEXIT >#78#return; 1002485#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1002496#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1002495#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1002492#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1002491#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1001739#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1002428#$Ultimate##0 ~n := #in~n; 1003180#L25 assume !(~n <= 0); 1003035#L26 call #t~ret0 := fact(~n - 1);< 1003177#$Ultimate##0 ~n := #in~n; 1003106#L25 assume !(~n <= 0); 1003033#L26 call #t~ret0 := fact(~n - 1);< 1003103#$Ultimate##0 ~n := #in~n; 1003106#L25 assume !(~n <= 0); 1003033#L26 call #t~ret0 := fact(~n - 1);< 1003103#$Ultimate##0 ~n := #in~n; 1003113#L25 assume ~n <= 0;#res := 1; 1003112#factFINAL assume true; 1003100#factEXIT >#66#return; 1003099#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1003075#factFINAL assume true; 1003066#factEXIT >#66#return; 1003065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1003052#factFINAL assume true; 1003027#factEXIT >#66#return; 1003045#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1003318#factFINAL assume true; 1002299#factEXIT >#74#return; 1002290#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1002426#$Ultimate##0 ~n := #in~n; 1003172#L25 assume !(~n <= 0); 1003034#L26 call #t~ret0 := fact(~n - 1);< 1003171#$Ultimate##0 ~n := #in~n; 1003111#L25 assume ~n <= 0;#res := 1; 1003174#factFINAL assume true; 1003166#factEXIT >#66#return; 1003164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1003163#factFINAL assume true; 1002425#factEXIT >#76#return; 1002285#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1002298#$Ultimate##0 ~n := #in~n; 1003121#L25 assume !(~n <= 0); 1003042#L26 call #t~ret0 := fact(~n - 1);< 1003120#$Ultimate##0 ~n := #in~n; 1003119#L25 assume !(~n <= 0); 1003040#L26 call #t~ret0 := fact(~n - 1);< 1003115#$Ultimate##0 ~n := #in~n; 1003113#L25 assume ~n <= 0;#res := 1; 1003112#factFINAL assume true; 1003100#factEXIT >#66#return; 1003099#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1003075#factFINAL assume true; 1003066#factEXIT >#66#return; 1003069#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1003165#factFINAL assume true; 1002277#factEXIT >#78#return; 1002275#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1002273#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1002272#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1002271#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1002269#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1002267#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1002265#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1002263#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1001699#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1001702#$Ultimate##0 ~n := #in~n; 1001812#L25 assume !(~n <= 0); 1001774#L26 call #t~ret0 := fact(~n - 1);< 1001808#$Ultimate##0 ~n := #in~n; 1001913#L25 assume !(~n <= 0); 1001773#L26 call #t~ret0 := fact(~n - 1);< 1001885#$Ultimate##0 ~n := #in~n; 1001877#L25 assume ~n <= 0;#res := 1; 1001856#factFINAL assume true; 1001832#factEXIT >#66#return; 1001831#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1001819#factFINAL assume true; 1001769#factEXIT >#66#return; 1001765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1001761#factFINAL assume true; 1001694#factEXIT >#68#return; 1001684#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1001693#$Ultimate##0 ~n := #in~n; 1003513#L25 assume ~n <= 0;#res := 1; 1003511#factFINAL assume true; 1003510#factEXIT >#70#return; 1003246#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1003247#$Ultimate##0 ~n := #in~n; 1003518#L25 assume !(~n <= 0); 1000188#L26 call #t~ret0 := fact(~n - 1);< 1000203#$Ultimate##0 ~n := #in~n; 1002671#L25 assume !(~n <= 0); 1000214#L26 call #t~ret0 := fact(~n - 1);< 1000216#$Ultimate##0 ~n := #in~n; 1000534#L25 assume ~n <= 0;#res := 1; 1000533#factFINAL assume true; 1000213#factEXIT >#66#return; 1000211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000206#factFINAL assume true; 1000162#factEXIT >#66#return; 1000199#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1003517#factFINAL assume true; 1003499#factEXIT >#72#return; 1003505#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1003672#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1003668#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1003664#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1003659#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1000137#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1000155#$Ultimate##0 ~n := #in~n; 1000205#L25 assume !(~n <= 0); 1000185#L26 call #t~ret0 := fact(~n - 1);< 1000203#$Ultimate##0 ~n := #in~n; 1002671#L25 assume !(~n <= 0); 1000214#L26 call #t~ret0 := fact(~n - 1);< 1000216#$Ultimate##0 ~n := #in~n; 1000534#L25 assume ~n <= 0;#res := 1; 1000533#factFINAL assume true; 1000213#factEXIT >#66#return; 1000211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000206#factFINAL assume true; 1000162#factEXIT >#66#return; 1000161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000158#factFINAL assume true; 1000136#factEXIT >#68#return; 1000149#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1000568#$Ultimate##0 ~n := #in~n; 1003742#L25 assume !(~n <= 0); 1000575#L26 call #t~ret0 := fact(~n - 1);< 1000583#$Ultimate##0 ~n := #in~n; 1000587#L25 assume ~n <= 0;#res := 1; 1000584#factFINAL assume true; 1000571#factEXIT >#66#return; 1000570#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000569#factFINAL assume true; 1000556#factEXIT >#70#return; 1000562#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1000568#$Ultimate##0 ~n := #in~n; 1003742#L25 assume !(~n <= 0); 1000575#L26 call #t~ret0 := fact(~n - 1);< 1000583#$Ultimate##0 ~n := #in~n; 1000587#L25 assume ~n <= 0;#res := 1; 1000584#factFINAL assume true; 1000571#factEXIT >#66#return; 1000570#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000569#factFINAL assume true; 1000556#factEXIT >#72#return; 1000567#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1003625#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1003623#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1003622#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1003621#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1000142#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1000155#$Ultimate##0 ~n := #in~n; 1000205#L25 assume !(~n <= 0); 1000185#L26 call #t~ret0 := fact(~n - 1);< 1000203#$Ultimate##0 ~n := #in~n; 1002671#L25 assume !(~n <= 0); 1000214#L26 call #t~ret0 := fact(~n - 1);< 1000216#$Ultimate##0 ~n := #in~n; 1000534#L25 assume ~n <= 0;#res := 1; 1000533#factFINAL assume true; 1000213#factEXIT >#66#return; 1000211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000206#factFINAL assume true; 1000162#factEXIT >#66#return; 1000161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000158#factFINAL assume true; 1000136#factEXIT >#68#return; 1000129#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1000135#$Ultimate##0 ~n := #in~n; 1000204#L25 assume !(~n <= 0); 1000183#L26 call #t~ret0 := fact(~n - 1);< 1000202#$Ultimate##0 ~n := #in~n; 1000219#L25 assume !(~n <= 0); 1000182#L26 call #t~ret0 := fact(~n - 1);< 1000217#$Ultimate##0 ~n := #in~n; 1000534#L25 assume ~n <= 0;#res := 1; 1000533#factFINAL assume true; 1000213#factEXIT >#66#return; 1000211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000206#factFINAL assume true; 1000162#factEXIT >#66#return; 1000160#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000159#factFINAL assume true; 1000128#factEXIT >#70#return; 1000121#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1000127#$Ultimate##0 ~n := #in~n; 1000530#L25 assume ~n <= 0;#res := 1; 1000528#factFINAL assume true; 1000115#factEXIT >#72#return; 1000124#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1003739#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1003737#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1003735#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1003733#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999909#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1000617#$Ultimate##0 ~n := #in~n; 1003744#L25 assume !(~n <= 0); 999875#L26 call #t~ret0 := fact(~n - 1);< 999884#$Ultimate##0 ~n := #in~n; 1003701#L25 assume !(~n <= 0); 999873#L26 call #t~ret0 := fact(~n - 1);< 1000476#$Ultimate##0 ~n := #in~n; 1003701#L25 assume !(~n <= 0); 999873#L26 call #t~ret0 := fact(~n - 1);< 1000476#$Ultimate##0 ~n := #in~n; 1003626#L25 assume ~n <= 0;#res := 1; 1003624#factFINAL assume true; 1000474#factEXIT >#66#return; 1000472#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999924#factFINAL assume true; 999913#factEXIT >#66#return; 999911#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999907#factFINAL assume true; 999892#factEXIT >#66#return; 999900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1003481#factFINAL assume true; 1000616#factEXIT >#74#return; 999925#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1000615#$Ultimate##0 ~n := #in~n; 1000654#L25 assume !(~n <= 0); 999896#L26 call #t~ret0 := fact(~n - 1);< 999928#$Ultimate##0 ~n := #in~n; 1003700#L25 assume !(~n <= 0); 999915#L26 call #t~ret0 := fact(~n - 1);< 999920#$Ultimate##0 ~n := #in~n; 1003626#L25 assume ~n <= 0;#res := 1; 1003624#factFINAL assume true; 1000474#factEXIT >#66#return; 1000472#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999924#factFINAL assume true; 999913#factEXIT >#66#return; 999918#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1003486#factFINAL assume true; 1000614#factEXIT >#76#return; 999940#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1000612#$Ultimate##0 ~n := #in~n; 1000611#L25 assume !(~n <= 0); 1000605#L26 call #t~ret0 := fact(~n - 1);< 1000607#$Ultimate##0 ~n := #in~n; 1003487#L25 assume ~n <= 0;#res := 1; 1000610#factFINAL assume true; 1000603#factEXIT >#66#return; 1000606#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1002305#factFINAL assume true; 999933#factEXIT >#78#return; 999941#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1000403#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 999887#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 999886#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 999885#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 999861#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 999859#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 999831#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999013#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999794#$Ultimate##0 ~n := #in~n; 1003652#L25 assume !(~n <= 0); 999010#L26 call #t~ret0 := fact(~n - 1);< 999015#$Ultimate##0 ~n := #in~n; 999412#L25 assume !(~n <= 0); 999021#L26 call #t~ret0 := fact(~n - 1);< 999406#$Ultimate##0 ~n := #in~n; 999405#L25 assume !(~n <= 0); 999060#L26 call #t~ret0 := fact(~n - 1);< 999074#$Ultimate##0 ~n := #in~n; 999402#L25 assume !(~n <= 0); 999081#L26 call #t~ret0 := fact(~n - 1);< 999401#$Ultimate##0 ~n := #in~n; 999332#L25 assume !(~n <= 0); 999105#L26 call #t~ret0 := fact(~n - 1);< 999107#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999427#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999795#factFINAL assume true; 999793#factEXIT >#68#return; 999686#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 999689#$Ultimate##0 ~n := #in~n; 999735#L25 assume ~n <= 0;#res := 1; 999734#factFINAL assume true; 999676#factEXIT >#70#return; 999465#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 999471#$Ultimate##0 ~n := #in~n; 999469#L25 assume !(~n <= 0); 998997#L26 call #t~ret0 := fact(~n - 1);< 999131#$Ultimate##0 ~n := #in~n; 999129#L25 assume !(~n <= 0); 998978#L26 call #t~ret0 := fact(~n - 1);< 999126#$Ultimate##0 ~n := #in~n; 999124#L25 assume !(~n <= 0); 998977#L26 call #t~ret0 := fact(~n - 1);< 999071#$Ultimate##0 ~n := #in~n; 999116#L25 assume !(~n <= 0); 998975#L26 call #t~ret0 := fact(~n - 1);< 999047#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000234#factFINAL assume true; 999792#factEXIT >#72#return; 999669#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 999807#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 999804#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 999801#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 999798#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999491#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999497#$Ultimate##0 ~n := #in~n; 999569#L25 assume !(~n <= 0); 999410#L26 call #t~ret0 := fact(~n - 1);< 999015#$Ultimate##0 ~n := #in~n; 999412#L25 assume !(~n <= 0); 999021#L26 call #t~ret0 := fact(~n - 1);< 999406#$Ultimate##0 ~n := #in~n; 999405#L25 assume !(~n <= 0); 999060#L26 call #t~ret0 := fact(~n - 1);< 999074#$Ultimate##0 ~n := #in~n; 999402#L25 assume !(~n <= 0); 999081#L26 call #t~ret0 := fact(~n - 1);< 999401#$Ultimate##0 ~n := #in~n; 999332#L25 assume !(~n <= 0); 999105#L26 call #t~ret0 := fact(~n - 1);< 999107#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999499#factFINAL assume true; 999482#factEXIT >#68#return; 999445#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 999778#$Ultimate##0 ~n := #in~n; 1000047#L25 assume !(~n <= 0); 999957#L26 call #t~ret0 := fact(~n - 1);< 1000004#$Ultimate##0 ~n := #in~n; 1000008#L25 assume ~n <= 0;#res := 1; 999994#factFINAL assume true; 999956#factEXIT >#66#return; 999954#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999945#factFINAL assume true; 999440#factEXIT >#70#return; 999048#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 999556#$Ultimate##0 ~n := #in~n; 1003693#L25 assume !(~n <= 0); 999019#L26 call #t~ret0 := fact(~n - 1);< 999054#$Ultimate##0 ~n := #in~n; 999433#L25 assume !(~n <= 0); 999057#L26 call #t~ret0 := fact(~n - 1);< 999432#$Ultimate##0 ~n := #in~n; 999423#L25 assume !(~n <= 0); 999077#L26 call #t~ret0 := fact(~n - 1);< 999109#$Ultimate##0 ~n := #in~n; 999332#L25 assume !(~n <= 0); 999105#L26 call #t~ret0 := fact(~n - 1);< 999107#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999555#factFINAL assume true; 999527#factEXIT >#72#return; 999544#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 999791#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 999789#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 999786#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 999783#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999489#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999497#$Ultimate##0 ~n := #in~n; 999569#L25 assume !(~n <= 0); 999410#L26 call #t~ret0 := fact(~n - 1);< 999015#$Ultimate##0 ~n := #in~n; 999412#L25 assume !(~n <= 0); 999021#L26 call #t~ret0 := fact(~n - 1);< 999406#$Ultimate##0 ~n := #in~n; 999405#L25 assume !(~n <= 0); 999060#L26 call #t~ret0 := fact(~n - 1);< 999074#$Ultimate##0 ~n := #in~n; 999402#L25 assume !(~n <= 0); 999081#L26 call #t~ret0 := fact(~n - 1);< 999401#$Ultimate##0 ~n := #in~n; 999332#L25 assume !(~n <= 0); 999105#L26 call #t~ret0 := fact(~n - 1);< 999107#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999499#factFINAL assume true; 999482#factEXIT >#68#return; 999496#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 999560#$Ultimate##0 ~n := #in~n; 1000114#L25 assume !(~n <= 0); 998990#L26 call #t~ret0 := fact(~n - 1);< 999047#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999083#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999559#factFINAL assume true; 999500#factEXIT >#70#return; 999072#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 999430#$Ultimate##0 ~n := #in~n; 999420#L25 assume !(~n <= 0); 999065#L26 call #t~ret0 := fact(~n - 1);< 999074#$Ultimate##0 ~n := #in~n; 999402#L25 assume !(~n <= 0); 999081#L26 call #t~ret0 := fact(~n - 1);< 999401#$Ultimate##0 ~n := #in~n; 999332#L25 assume !(~n <= 0); 999105#L26 call #t~ret0 := fact(~n - 1);< 999107#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999605#factFINAL assume true; 999584#factEXIT >#72#return; 999601#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 999761#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 999759#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 999757#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 999755#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999484#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999497#$Ultimate##0 ~n := #in~n; 999569#L25 assume !(~n <= 0); 999410#L26 call #t~ret0 := fact(~n - 1);< 999015#$Ultimate##0 ~n := #in~n; 999412#L25 assume !(~n <= 0); 999021#L26 call #t~ret0 := fact(~n - 1);< 999406#$Ultimate##0 ~n := #in~n; 999405#L25 assume !(~n <= 0); 999060#L26 call #t~ret0 := fact(~n - 1);< 999074#$Ultimate##0 ~n := #in~n; 999402#L25 assume !(~n <= 0); 999081#L26 call #t~ret0 := fact(~n - 1);< 999401#$Ultimate##0 ~n := #in~n; 999332#L25 assume !(~n <= 0); 999105#L26 call #t~ret0 := fact(~n - 1);< 999107#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999499#factFINAL assume true; 999482#factEXIT >#68#return; 998839#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 998902#$Ultimate##0 ~n := #in~n; 999972#L25 assume !(~n <= 0); 998989#L26 call #t~ret0 := fact(~n - 1);< 999071#$Ultimate##0 ~n := #in~n; 999116#L25 assume !(~n <= 0); 998975#L26 call #t~ret0 := fact(~n - 1);< 999047#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999605#factFINAL assume true; 999584#factEXIT >#70#return; 999090#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 999561#$Ultimate##0 ~n := #in~n; 1000529#L25 assume !(~n <= 0); 999080#L26 call #t~ret0 := fact(~n - 1);< 999085#$Ultimate##0 ~n := #in~n; 999330#L25 assume !(~n <= 0); 999078#L26 call #t~ret0 := fact(~n - 1);< 999109#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999083#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999559#factFINAL assume true; 999500#factEXIT >#72#return; 999516#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 999952#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 999951#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 999950#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 999949#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999486#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999497#$Ultimate##0 ~n := #in~n; 999569#L25 assume !(~n <= 0); 999410#L26 call #t~ret0 := fact(~n - 1);< 999015#$Ultimate##0 ~n := #in~n; 999412#L25 assume !(~n <= 0); 999021#L26 call #t~ret0 := fact(~n - 1);< 999406#$Ultimate##0 ~n := #in~n; 999405#L25 assume !(~n <= 0); 999060#L26 call #t~ret0 := fact(~n - 1);< 999074#$Ultimate##0 ~n := #in~n; 999402#L25 assume !(~n <= 0); 999081#L26 call #t~ret0 := fact(~n - 1);< 999401#$Ultimate##0 ~n := #in~n; 999332#L25 assume !(~n <= 0); 999105#L26 call #t~ret0 := fact(~n - 1);< 999107#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999499#factFINAL assume true; 999482#factEXIT >#68#return; 998858#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 998902#$Ultimate##0 ~n := #in~n; 999972#L25 assume !(~n <= 0); 998989#L26 call #t~ret0 := fact(~n - 1);< 999071#$Ultimate##0 ~n := #in~n; 999116#L25 assume !(~n <= 0); 998975#L26 call #t~ret0 := fact(~n - 1);< 999047#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999555#factFINAL assume true; 999527#factEXIT >#70#return; 999442#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 999526#$Ultimate##0 ~n := #in~n; 1000156#L25 assume !(~n <= 0); 998734#L26 call #t~ret0 := fact(~n - 1);< 999960#$Ultimate##0 ~n := #in~n; 1000008#L25 assume ~n <= 0;#res := 1; 999994#factFINAL assume true; 999956#factEXIT >#66#return; 999954#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999945#factFINAL assume true; 999440#factEXIT >#72#return; 999447#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1000411#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1000409#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1000407#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1000405#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999494#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999497#$Ultimate##0 ~n := #in~n; 999569#L25 assume !(~n <= 0); 999410#L26 call #t~ret0 := fact(~n - 1);< 999015#$Ultimate##0 ~n := #in~n; 999412#L25 assume !(~n <= 0); 999021#L26 call #t~ret0 := fact(~n - 1);< 999406#$Ultimate##0 ~n := #in~n; 999405#L25 assume !(~n <= 0); 999060#L26 call #t~ret0 := fact(~n - 1);< 999074#$Ultimate##0 ~n := #in~n; 999402#L25 assume !(~n <= 0); 999081#L26 call #t~ret0 := fact(~n - 1);< 999401#$Ultimate##0 ~n := #in~n; 999332#L25 assume !(~n <= 0); 999105#L26 call #t~ret0 := fact(~n - 1);< 999107#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999499#factFINAL assume true; 999482#factEXIT >#68#return; 998814#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 998902#$Ultimate##0 ~n := #in~n; 999972#L25 assume !(~n <= 0); 998989#L26 call #t~ret0 := fact(~n - 1);< 999071#$Ultimate##0 ~n := #in~n; 999116#L25 assume !(~n <= 0); 998975#L26 call #t~ret0 := fact(~n - 1);< 999047#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999425#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999774#factFINAL assume true; 998735#factEXIT >#70#return; 998693#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 998731#$Ultimate##0 ~n := #in~n; 998733#L25 assume ~n <= 0;#res := 1; 998732#factFINAL assume true; 998665#factEXIT >#72#return; 998724#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1003267#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1003266#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1003264#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1003263#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1000345#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1000858#$Ultimate##0 ~n := #in~n; 1000857#L25 assume !(~n <= 0); 1000704#L26 call #t~ret0 := fact(~n - 1);< 1000856#$Ultimate##0 ~n := #in~n; 1000855#L25 assume !(~n <= 0); 1000703#L26 call #t~ret0 := fact(~n - 1);< 1000854#$Ultimate##0 ~n := #in~n; 1000853#L25 assume !(~n <= 0); 1000710#L26 call #t~ret0 := fact(~n - 1);< 1000848#$Ultimate##0 ~n := #in~n; 1000788#L25 assume !(~n <= 0); 998549#L26 call #t~ret0 := fact(~n - 1);< 1000744#$Ultimate##0 ~n := #in~n; 1000782#L25 assume !(~n <= 0); 998547#L26 call #t~ret0 := fact(~n - 1);< 1000770#$Ultimate##0 ~n := #in~n; 1000782#L25 assume !(~n <= 0); 998547#L26 call #t~ret0 := fact(~n - 1);< 1000770#$Ultimate##0 ~n := #in~n; 1000782#L25 assume !(~n <= 0); 998547#L26 call #t~ret0 := fact(~n - 1);< 1000770#$Ultimate##0 ~n := #in~n; 1000782#L25 assume !(~n <= 0); 998547#L26 call #t~ret0 := fact(~n - 1);< 1000770#$Ultimate##0 ~n := #in~n; 1000776#L25 assume ~n <= 0;#res := 1; 1000821#factFINAL assume true; 1000767#factEXIT >#66#return; 1000766#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000742#factFINAL assume true; 1000715#factEXIT >#66#return; 1000717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1001359#factFINAL assume true; 998541#factEXIT >#66#return; 998552#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000781#factFINAL assume true; 1000779#factEXIT >#66#return; 1000778#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000772#factFINAL assume true; 1000728#factEXIT >#66#return; 1000730#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000764#factFINAL assume true; 1000762#factEXIT >#66#return; 1000760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000759#factFINAL assume true; 1000757#factEXIT >#66#return; 1000711#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000755#factFINAL assume true; 1000702#factEXIT >#66#return; 1000642#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000356#factFINAL assume true; 1000330#factEXIT >#74#return; 998654#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 998655#$Ultimate##0 ~n := #in~n; 1000945#L25 assume !(~n <= 0); 998550#L26 call #t~ret0 := fact(~n - 1);< 1000718#$Ultimate##0 ~n := #in~n; 1000782#L25 assume !(~n <= 0); 998547#L26 call #t~ret0 := fact(~n - 1);< 1000770#$Ultimate##0 ~n := #in~n; 1000782#L25 assume !(~n <= 0); 998547#L26 call #t~ret0 := fact(~n - 1);< 1000770#$Ultimate##0 ~n := #in~n; 1000782#L25 assume !(~n <= 0); 998547#L26 call #t~ret0 := fact(~n - 1);< 1000770#$Ultimate##0 ~n := #in~n; 1000782#L25 assume !(~n <= 0); 998547#L26 call #t~ret0 := fact(~n - 1);< 1000770#$Ultimate##0 ~n := #in~n; 1000782#L25 assume !(~n <= 0); 998547#L26 call #t~ret0 := fact(~n - 1);< 1000770#$Ultimate##0 ~n := #in~n; 1000776#L25 assume ~n <= 0;#res := 1; 1000821#factFINAL assume true; 1000767#factEXIT >#66#return; 1000766#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000742#factFINAL assume true; 1000715#factEXIT >#66#return; 1000717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1001359#factFINAL assume true; 998541#factEXIT >#66#return; 998552#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000781#factFINAL assume true; 1000779#factEXIT >#66#return; 1000778#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000772#factFINAL assume true; 1000728#factEXIT >#66#return; 1000730#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000764#factFINAL assume true; 1000762#factEXIT >#66#return; 1000763#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1001285#factFINAL assume true; 1000936#factEXIT >#76#return; 1000354#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1000663#$Ultimate##0 ~n := #in~n; 1000674#L25 assume !(~n <= 0); 1000672#L26 call #t~ret0 := fact(~n - 1);< 1000673#$Ultimate##0 ~n := #in~n; 1000977#L25 assume ~n <= 0;#res := 1; 1000975#factFINAL assume true; 1000671#factEXIT >#66#return; 1000670#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000664#factFINAL assume true; 1000661#factEXIT >#78#return; 998609#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 998610#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1000391#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1000389#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1000387#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1000385#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1000381#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 999738#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999692#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999695#$Ultimate##0 ~n := #in~n; 999731#L25 assume !(~n <= 0); 998986#L26 call #t~ret0 := fact(~n - 1);< 999309#$Ultimate##0 ~n := #in~n; 999363#L25 assume !(~n <= 0); 998983#L26 call #t~ret0 := fact(~n - 1);< 999331#$Ultimate##0 ~n := #in~n; 999329#L25 assume !(~n <= 0); 998982#L26 call #t~ret0 := fact(~n - 1);< 999323#$Ultimate##0 ~n := #in~n; 999324#L25 assume !(~n <= 0); 998980#L26 call #t~ret0 := fact(~n - 1);< 999308#$Ultimate##0 ~n := #in~n; 999368#L25 assume !(~n <= 0); 998995#L26 call #t~ret0 := fact(~n - 1);< 999047#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999009#factFINAL assume true; 998970#factEXIT >#66#return; 999007#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999698#factFINAL assume true; 999690#factEXIT >#68#return; 999679#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 999689#$Ultimate##0 ~n := #in~n; 999735#L25 assume ~n <= 0;#res := 1; 999734#factFINAL assume true; 999676#factEXIT >#70#return; 999333#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 999675#$Ultimate##0 ~n := #in~n; 1003696#L25 assume !(~n <= 0); 998979#L26 call #t~ret0 := fact(~n - 1);< 999309#$Ultimate##0 ~n := #in~n; 999363#L25 assume !(~n <= 0); 998983#L26 call #t~ret0 := fact(~n - 1);< 999331#$Ultimate##0 ~n := #in~n; 999329#L25 assume !(~n <= 0); 998982#L26 call #t~ret0 := fact(~n - 1);< 999323#$Ultimate##0 ~n := #in~n; 999324#L25 assume !(~n <= 0); 998980#L26 call #t~ret0 := fact(~n - 1);< 999308#$Ultimate##0 ~n := #in~n; 999368#L25 assume !(~n <= 0); 998995#L26 call #t~ret0 := fact(~n - 1);< 999047#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999741#factFINAL assume true; 999665#factEXIT >#72#return; 999666#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 999762#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 999760#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 999758#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 999756#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999269#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999313#$Ultimate##0 ~n := #in~n; 999311#L25 assume !(~n <= 0); 998985#L26 call #t~ret0 := fact(~n - 1);< 999162#$Ultimate##0 ~n := #in~n; 999158#L25 assume !(~n <= 0); 998981#L26 call #t~ret0 := fact(~n - 1);< 999145#$Ultimate##0 ~n := #in~n; 999142#L25 assume !(~n <= 0); 998994#L26 call #t~ret0 := fact(~n - 1);< 999131#$Ultimate##0 ~n := #in~n; 999129#L25 assume !(~n <= 0); 998978#L26 call #t~ret0 := fact(~n - 1);< 999126#$Ultimate##0 ~n := #in~n; 999124#L25 assume !(~n <= 0); 998977#L26 call #t~ret0 := fact(~n - 1);< 999071#$Ultimate##0 ~n := #in~n; 999116#L25 assume !(~n <= 0); 998975#L26 call #t~ret0 := fact(~n - 1);< 999047#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999009#factFINAL assume true; 998970#factEXIT >#66#return; 999006#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999973#factFINAL assume true; 999461#factEXIT >#68#return; 998690#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 999655#$Ultimate##0 ~n := #in~n; 1000046#L25 assume !(~n <= 0); 999957#L26 call #t~ret0 := fact(~n - 1);< 1000004#$Ultimate##0 ~n := #in~n; 1000008#L25 assume ~n <= 0;#res := 1; 999994#factFINAL assume true; 999956#factEXIT >#66#return; 999954#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999945#factFINAL assume true; 999440#factEXIT >#70#return; 998904#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 999144#$Ultimate##0 ~n := #in~n; 999141#L25 assume !(~n <= 0); 998971#L26 call #t~ret0 := fact(~n - 1);< 999131#$Ultimate##0 ~n := #in~n; 999129#L25 assume !(~n <= 0); 998978#L26 call #t~ret0 := fact(~n - 1);< 999126#$Ultimate##0 ~n := #in~n; 999124#L25 assume !(~n <= 0); 998977#L26 call #t~ret0 := fact(~n - 1);< 999071#$Ultimate##0 ~n := #in~n; 999116#L25 assume !(~n <= 0); 998975#L26 call #t~ret0 := fact(~n - 1);< 999047#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999009#factFINAL assume true; 998970#factEXIT >#66#return; 998940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 998969#factFINAL assume true; 999437#factEXIT >#72#return; 999201#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 999750#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 999746#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 999742#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 999736#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999292#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999313#$Ultimate##0 ~n := #in~n; 999311#L25 assume !(~n <= 0); 998985#L26 call #t~ret0 := fact(~n - 1);< 999162#$Ultimate##0 ~n := #in~n; 999158#L25 assume !(~n <= 0); 998981#L26 call #t~ret0 := fact(~n - 1);< 999145#$Ultimate##0 ~n := #in~n; 999142#L25 assume !(~n <= 0); 998994#L26 call #t~ret0 := fact(~n - 1);< 999131#$Ultimate##0 ~n := #in~n; 999129#L25 assume !(~n <= 0); 998978#L26 call #t~ret0 := fact(~n - 1);< 999126#$Ultimate##0 ~n := #in~n; 999124#L25 assume !(~n <= 0); 998977#L26 call #t~ret0 := fact(~n - 1);< 999071#$Ultimate##0 ~n := #in~n; 999116#L25 assume !(~n <= 0); 998975#L26 call #t~ret0 := fact(~n - 1);< 999047#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999009#factFINAL assume true; 998970#factEXIT >#66#return; 999006#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999973#factFINAL assume true; 999461#factEXIT >#68#return; 998718#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 999478#$Ultimate##0 ~n := #in~n; 999476#L25 assume !(~n <= 0); 999000#L26 call #t~ret0 := fact(~n - 1);< 999091#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999083#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999559#factFINAL assume true; 999500#factEXIT >#70#return; 998738#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 999125#$Ultimate##0 ~n := #in~n; 999121#L25 assume !(~n <= 0); 998974#L26 call #t~ret0 := fact(~n - 1);< 999071#$Ultimate##0 ~n := #in~n; 999116#L25 assume !(~n <= 0); 998975#L26 call #t~ret0 := fact(~n - 1);< 999047#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999555#factFINAL assume true; 999527#factEXIT >#72#return; 998874#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 999733#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 999732#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 999730#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 999729#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999250#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999313#$Ultimate##0 ~n := #in~n; 999311#L25 assume !(~n <= 0); 998985#L26 call #t~ret0 := fact(~n - 1);< 999162#$Ultimate##0 ~n := #in~n; 999158#L25 assume !(~n <= 0); 998981#L26 call #t~ret0 := fact(~n - 1);< 999145#$Ultimate##0 ~n := #in~n; 999142#L25 assume !(~n <= 0); 998994#L26 call #t~ret0 := fact(~n - 1);< 999131#$Ultimate##0 ~n := #in~n; 999129#L25 assume !(~n <= 0); 998978#L26 call #t~ret0 := fact(~n - 1);< 999126#$Ultimate##0 ~n := #in~n; 999124#L25 assume !(~n <= 0); 998977#L26 call #t~ret0 := fact(~n - 1);< 999071#$Ultimate##0 ~n := #in~n; 999116#L25 assume !(~n <= 0); 998975#L26 call #t~ret0 := fact(~n - 1);< 999047#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999009#factFINAL assume true; 998970#factEXIT >#66#return; 999006#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999973#factFINAL assume true; 999461#factEXIT >#68#return; 998679#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 999478#$Ultimate##0 ~n := #in~n; 999476#L25 assume !(~n <= 0); 999000#L26 call #t~ret0 := fact(~n - 1);< 999091#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999605#factFINAL assume true; 999584#factEXIT >#70#return; 998820#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 999372#$Ultimate##0 ~n := #in~n; 999371#L25 assume !(~n <= 0); 998992#L26 call #t~ret0 := fact(~n - 1);< 999047#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999555#factFINAL assume true; 999527#factEXIT >#72#return; 999542#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 999728#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 999727#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 999726#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 999725#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999216#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999313#$Ultimate##0 ~n := #in~n; 999311#L25 assume !(~n <= 0); 998985#L26 call #t~ret0 := fact(~n - 1);< 999162#$Ultimate##0 ~n := #in~n; 999158#L25 assume !(~n <= 0); 998981#L26 call #t~ret0 := fact(~n - 1);< 999145#$Ultimate##0 ~n := #in~n; 999142#L25 assume !(~n <= 0); 998994#L26 call #t~ret0 := fact(~n - 1);< 999131#$Ultimate##0 ~n := #in~n; 999129#L25 assume !(~n <= 0); 998978#L26 call #t~ret0 := fact(~n - 1);< 999126#$Ultimate##0 ~n := #in~n; 999124#L25 assume !(~n <= 0); 998977#L26 call #t~ret0 := fact(~n - 1);< 999071#$Ultimate##0 ~n := #in~n; 999116#L25 assume !(~n <= 0); 998975#L26 call #t~ret0 := fact(~n - 1);< 999047#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999297#factFINAL assume true; 999206#factEXIT >#68#return; 998695#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 999478#$Ultimate##0 ~n := #in~n; 999476#L25 assume !(~n <= 0); 999000#L26 call #t~ret0 := fact(~n - 1);< 999091#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999555#factFINAL assume true; 999527#factEXIT >#70#return; 998805#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 999372#$Ultimate##0 ~n := #in~n; 999371#L25 assume !(~n <= 0); 998992#L26 call #t~ret0 := fact(~n - 1);< 999047#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999605#factFINAL assume true; 999584#factEXIT >#72#return; 999586#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 999989#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 999988#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 999986#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 999984#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999280#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999296#$Ultimate##0 ~n := #in~n; 999310#L25 assume !(~n <= 0); 999300#L26 call #t~ret0 := fact(~n - 1);< 999305#$Ultimate##0 ~n := #in~n; 999397#L25 assume !(~n <= 0); 999315#L26 call #t~ret0 := fact(~n - 1);< 999322#$Ultimate##0 ~n := #in~n; 999415#L25 assume !(~n <= 0); 999411#L26 call #t~ret0 := fact(~n - 1);< 999015#$Ultimate##0 ~n := #in~n; 999412#L25 assume !(~n <= 0); 999021#L26 call #t~ret0 := fact(~n - 1);< 999406#$Ultimate##0 ~n := #in~n; 999405#L25 assume !(~n <= 0); 999060#L26 call #t~ret0 := fact(~n - 1);< 999074#$Ultimate##0 ~n := #in~n; 999402#L25 assume !(~n <= 0); 999081#L26 call #t~ret0 := fact(~n - 1);< 999401#$Ultimate##0 ~n := #in~n; 999332#L25 assume !(~n <= 0); 999105#L26 call #t~ret0 := fact(~n - 1);< 999107#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999297#factFINAL assume true; 999206#factEXIT >#68#return; 998755#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 999460#$Ultimate##0 ~n := #in~n; 999475#L25 assume !(~n <= 0); 999000#L26 call #t~ret0 := fact(~n - 1);< 999091#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999425#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999774#factFINAL assume true; 998735#factEXIT >#70#return; 998777#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 999198#$Ultimate##0 ~n := #in~n; 999195#L25 assume !(~n <= 0); 999025#L26 call #t~ret0 := fact(~n - 1);< 999123#$Ultimate##0 ~n := #in~n; 999120#L25 assume !(~n <= 0); 999031#L26 call #t~ret0 := fact(~n - 1);< 999115#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999083#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999559#factFINAL assume true; 999500#factEXIT >#72#return; 999508#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 999981#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 999980#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 999979#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 999977#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999222#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999296#$Ultimate##0 ~n := #in~n; 999310#L25 assume !(~n <= 0); 999300#L26 call #t~ret0 := fact(~n - 1);< 999305#$Ultimate##0 ~n := #in~n; 999397#L25 assume !(~n <= 0); 999315#L26 call #t~ret0 := fact(~n - 1);< 999322#$Ultimate##0 ~n := #in~n; 999415#L25 assume !(~n <= 0); 999411#L26 call #t~ret0 := fact(~n - 1);< 999015#$Ultimate##0 ~n := #in~n; 999412#L25 assume !(~n <= 0); 999021#L26 call #t~ret0 := fact(~n - 1);< 999406#$Ultimate##0 ~n := #in~n; 999405#L25 assume !(~n <= 0); 999060#L26 call #t~ret0 := fact(~n - 1);< 999074#$Ultimate##0 ~n := #in~n; 999402#L25 assume !(~n <= 0); 999081#L26 call #t~ret0 := fact(~n - 1);< 999401#$Ultimate##0 ~n := #in~n; 999332#L25 assume !(~n <= 0); 999105#L26 call #t~ret0 := fact(~n - 1);< 999107#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999297#factFINAL assume true; 999206#factEXIT >#68#return; 998869#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 999460#$Ultimate##0 ~n := #in~n; 999475#L25 assume !(~n <= 0); 999000#L26 call #t~ret0 := fact(~n - 1);< 999091#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999317#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999398#factFINAL assume true; 999325#factEXIT >#70#return; 999192#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 999199#$Ultimate##0 ~n := #in~n; 999196#L25 assume !(~n <= 0); 999026#L26 call #t~ret0 := fact(~n - 1);< 999194#$Ultimate##0 ~n := #in~n; 1000008#L25 assume ~n <= 0;#res := 1; 999994#factFINAL assume true; 999956#factEXIT >#66#return; 999954#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999945#factFINAL assume true; 999440#factEXIT >#72#return; 999439#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 999438#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 999436#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 999435#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 999434#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999213#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999296#$Ultimate##0 ~n := #in~n; 999310#L25 assume !(~n <= 0); 999300#L26 call #t~ret0 := fact(~n - 1);< 999305#$Ultimate##0 ~n := #in~n; 999397#L25 assume !(~n <= 0); 999315#L26 call #t~ret0 := fact(~n - 1);< 999322#$Ultimate##0 ~n := #in~n; 999415#L25 assume !(~n <= 0); 999411#L26 call #t~ret0 := fact(~n - 1);< 999015#$Ultimate##0 ~n := #in~n; 999412#L25 assume !(~n <= 0); 999021#L26 call #t~ret0 := fact(~n - 1);< 999406#$Ultimate##0 ~n := #in~n; 999405#L25 assume !(~n <= 0); 999060#L26 call #t~ret0 := fact(~n - 1);< 999074#$Ultimate##0 ~n := #in~n; 999402#L25 assume !(~n <= 0); 999081#L26 call #t~ret0 := fact(~n - 1);< 999401#$Ultimate##0 ~n := #in~n; 999332#L25 assume !(~n <= 0); 999105#L26 call #t~ret0 := fact(~n - 1);< 999107#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999297#factFINAL assume true; 999206#factEXIT >#68#return; 998923#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 999422#$Ultimate##0 ~n := #in~n; 999396#L25 assume !(~n <= 0); 999001#L26 call #t~ret0 := fact(~n - 1);< 999309#$Ultimate##0 ~n := #in~n; 999363#L25 assume !(~n <= 0); 998983#L26 call #t~ret0 := fact(~n - 1);< 999331#$Ultimate##0 ~n := #in~n; 999329#L25 assume !(~n <= 0); 998982#L26 call #t~ret0 := fact(~n - 1);< 999323#$Ultimate##0 ~n := #in~n; 999324#L25 assume !(~n <= 0); 998980#L26 call #t~ret0 := fact(~n - 1);< 999308#$Ultimate##0 ~n := #in~n; 999368#L25 assume !(~n <= 0); 998995#L26 call #t~ret0 := fact(~n - 1);< 999047#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999009#factFINAL assume true; 998970#factEXIT >#66#return; 998940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 998969#factFINAL assume true; 999437#factEXIT >#70#return; 998697#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 999200#$Ultimate##0 ~n := #in~n; 999197#L25 assume ~n <= 0;#res := 1; 998732#factFINAL assume true; 998665#factEXIT >#72#return; 998725#L30-3 [2023-02-18 08:59:09,193 INFO L750 eck$LassoCheckResult]: Loop: 998725#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1000976#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1000974#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1000972#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1000667#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1000353#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 998538#$Ultimate##0 ~n := #in~n; 1001249#L25 assume !(~n <= 0); 1000708#L26 call #t~ret0 := fact(~n - 1);< 1000712#$Ultimate##0 ~n := #in~n; 1001270#L25 assume !(~n <= 0); 1000707#L26 call #t~ret0 := fact(~n - 1);< 1000756#$Ultimate##0 ~n := #in~n; 1000925#L25 assume !(~n <= 0); 1000706#L26 call #t~ret0 := fact(~n - 1);< 1000773#$Ultimate##0 ~n := #in~n; 1000933#L25 assume !(~n <= 0); 1000705#L26 call #t~ret0 := fact(~n - 1);< 1000780#$Ultimate##0 ~n := #in~n; 1000860#L25 assume !(~n <= 0); 998546#L26 call #t~ret0 := fact(~n - 1);< 1000786#$Ultimate##0 ~n := #in~n; 1000785#L25 assume !(~n <= 0); 998544#L26 call #t~ret0 := fact(~n - 1);< 1000744#$Ultimate##0 ~n := #in~n; 1000782#L25 assume !(~n <= 0); 998547#L26 call #t~ret0 := fact(~n - 1);< 1000770#$Ultimate##0 ~n := #in~n; 1000776#L25 assume ~n <= 0;#res := 1; 1000821#factFINAL assume true; 1000767#factEXIT >#66#return; 1000766#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000742#factFINAL assume true; 1000715#factEXIT >#66#return; 1000717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1001359#factFINAL assume true; 998541#factEXIT >#66#return; 998552#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000781#factFINAL assume true; 1000779#factEXIT >#66#return; 1000778#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000772#factFINAL assume true; 1000728#factEXIT >#66#return; 1000730#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000764#factFINAL assume true; 1000762#factEXIT >#66#return; 1000760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000759#factFINAL assume true; 1000757#factEXIT >#66#return; 1000758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000939#factFINAL assume true; 1000665#factEXIT >#74#return; 1000324#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1000733#$Ultimate##0 ~n := #in~n; 1000732#L25 assume !(~n <= 0); 1000729#L26 call #t~ret0 := fact(~n - 1);< 1000731#$Ultimate##0 ~n := #in~n; 1000849#L25 assume !(~n <= 0); 998613#L26 call #t~ret0 := fact(~n - 1);< 998652#$Ultimate##0 ~n := #in~n; 998643#L25 assume !(~n <= 0); 998548#L26 call #t~ret0 := fact(~n - 1);< 998614#$Ultimate##0 ~n := #in~n; 1000787#L25 assume !(~n <= 0); 998545#L26 call #t~ret0 := fact(~n - 1);< 1000743#$Ultimate##0 ~n := #in~n; 1000824#L25 assume !(~n <= 0); 1000716#L26 call #t~ret0 := fact(~n - 1);< 1000769#$Ultimate##0 ~n := #in~n; 1000774#L25 assume !(~n <= 0); 1000768#L26 call #t~ret0 := fact(~n - 1);< 1000771#$Ultimate##0 ~n := #in~n; 1000776#L25 assume ~n <= 0;#res := 1; 1000821#factFINAL assume true; 1000767#factEXIT >#66#return; 1000766#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000742#factFINAL assume true; 1000715#factEXIT >#66#return; 1000717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1001359#factFINAL assume true; 998541#factEXIT >#66#return; 998552#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000781#factFINAL assume true; 1000779#factEXIT >#66#return; 1000778#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000772#factFINAL assume true; 1000728#factEXIT >#66#return; 1000730#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000764#factFINAL assume true; 1000762#factEXIT >#66#return; 1000763#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1001285#factFINAL assume true; 1000936#factEXIT >#76#return; 1000662#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1000663#$Ultimate##0 ~n := #in~n; 1000674#L25 assume !(~n <= 0); 1000672#L26 call #t~ret0 := fact(~n - 1);< 1000673#$Ultimate##0 ~n := #in~n; 1000977#L25 assume ~n <= 0;#res := 1; 1000975#factFINAL assume true; 1000671#factEXIT >#66#return; 1000670#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000664#factFINAL assume true; 1000661#factEXIT >#78#return; 1000660#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1003262#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1003261#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1003260#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1003259#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1003258#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1003257#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1000532#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999307#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 998604#$Ultimate##0 ~n := #in~n; 1000643#L25 assume !(~n <= 0); 999301#L26 call #t~ret0 := fact(~n - 1);< 999305#$Ultimate##0 ~n := #in~n; 999397#L25 assume !(~n <= 0); 999315#L26 call #t~ret0 := fact(~n - 1);< 999322#$Ultimate##0 ~n := #in~n; 999415#L25 assume !(~n <= 0); 999411#L26 call #t~ret0 := fact(~n - 1);< 999015#$Ultimate##0 ~n := #in~n; 999412#L25 assume !(~n <= 0); 999021#L26 call #t~ret0 := fact(~n - 1);< 999406#$Ultimate##0 ~n := #in~n; 999405#L25 assume !(~n <= 0); 999060#L26 call #t~ret0 := fact(~n - 1);< 999074#$Ultimate##0 ~n := #in~n; 999402#L25 assume !(~n <= 0); 999081#L26 call #t~ret0 := fact(~n - 1);< 999401#$Ultimate##0 ~n := #in~n; 999332#L25 assume !(~n <= 0); 999105#L26 call #t~ret0 := fact(~n - 1);< 999107#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999303#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1000241#factFINAL assume true; 1000239#factEXIT >#68#return; 999677#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 999689#$Ultimate##0 ~n := #in~n; 999735#L25 assume ~n <= 0;#res := 1; 999734#factFINAL assume true; 999676#factEXIT >#70#return; 999334#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 999675#$Ultimate##0 ~n := #in~n; 1003696#L25 assume !(~n <= 0); 998979#L26 call #t~ret0 := fact(~n - 1);< 999309#$Ultimate##0 ~n := #in~n; 999363#L25 assume !(~n <= 0); 998983#L26 call #t~ret0 := fact(~n - 1);< 999331#$Ultimate##0 ~n := #in~n; 999329#L25 assume !(~n <= 0); 998982#L26 call #t~ret0 := fact(~n - 1);< 999323#$Ultimate##0 ~n := #in~n; 999324#L25 assume !(~n <= 0); 998980#L26 call #t~ret0 := fact(~n - 1);< 999308#$Ultimate##0 ~n := #in~n; 999368#L25 assume !(~n <= 0); 998995#L26 call #t~ret0 := fact(~n - 1);< 999047#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999741#factFINAL assume true; 999665#factEXIT >#72#return; 999668#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1000235#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1000232#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1000233#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1000505#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999268#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999296#$Ultimate##0 ~n := #in~n; 999310#L25 assume !(~n <= 0); 999300#L26 call #t~ret0 := fact(~n - 1);< 999305#$Ultimate##0 ~n := #in~n; 999397#L25 assume !(~n <= 0); 999315#L26 call #t~ret0 := fact(~n - 1);< 999322#$Ultimate##0 ~n := #in~n; 999415#L25 assume !(~n <= 0); 999411#L26 call #t~ret0 := fact(~n - 1);< 999015#$Ultimate##0 ~n := #in~n; 999412#L25 assume !(~n <= 0); 999021#L26 call #t~ret0 := fact(~n - 1);< 999406#$Ultimate##0 ~n := #in~n; 999405#L25 assume !(~n <= 0); 999060#L26 call #t~ret0 := fact(~n - 1);< 999074#$Ultimate##0 ~n := #in~n; 999402#L25 assume !(~n <= 0); 999081#L26 call #t~ret0 := fact(~n - 1);< 999401#$Ultimate##0 ~n := #in~n; 999332#L25 assume !(~n <= 0); 999105#L26 call #t~ret0 := fact(~n - 1);< 999107#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999297#factFINAL assume true; 999206#factEXIT >#68#return; 999295#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 999778#$Ultimate##0 ~n := #in~n; 1000047#L25 assume !(~n <= 0); 999957#L26 call #t~ret0 := fact(~n - 1);< 1000004#$Ultimate##0 ~n := #in~n; 1000008#L25 assume ~n <= 0;#res := 1; 999994#factFINAL assume true; 999956#factEXIT >#66#return; 999954#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999945#factFINAL assume true; 999440#factEXIT >#70#return; 998938#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 998939#$Ultimate##0 ~n := #in~n; 1003730#L25 assume !(~n <= 0); 999038#L26 call #t~ret0 := fact(~n - 1);< 999374#$Ultimate##0 ~n := #in~n; 999370#L25 assume !(~n <= 0); 999029#L26 call #t~ret0 := fact(~n - 1);< 999041#$Ultimate##0 ~n := #in~n; 999971#L25 assume !(~n <= 0); 999028#L26 call #t~ret0 := fact(~n - 1);< 999069#$Ultimate##0 ~n := #in~n; 1000007#L25 assume !(~n <= 0); 999063#L26 call #t~ret0 := fact(~n - 1);< 999086#$Ultimate##0 ~n := #in~n; 999113#L25 assume !(~n <= 0); 999082#L26 call #t~ret0 := fact(~n - 1);< 999109#$Ultimate##0 ~n := #in~n; 999332#L25 assume !(~n <= 0); 999105#L26 call #t~ret0 := fact(~n - 1);< 999107#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999317#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999398#factFINAL assume true; 999325#factEXIT >#72#return; 999202#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1000246#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1000245#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1000243#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1000242#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999290#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999296#$Ultimate##0 ~n := #in~n; 999310#L25 assume !(~n <= 0); 999300#L26 call #t~ret0 := fact(~n - 1);< 999305#$Ultimate##0 ~n := #in~n; 999397#L25 assume !(~n <= 0); 999315#L26 call #t~ret0 := fact(~n - 1);< 999322#$Ultimate##0 ~n := #in~n; 999415#L25 assume !(~n <= 0); 999411#L26 call #t~ret0 := fact(~n - 1);< 999015#$Ultimate##0 ~n := #in~n; 999412#L25 assume !(~n <= 0); 999021#L26 call #t~ret0 := fact(~n - 1);< 999406#$Ultimate##0 ~n := #in~n; 999405#L25 assume !(~n <= 0); 999060#L26 call #t~ret0 := fact(~n - 1);< 999074#$Ultimate##0 ~n := #in~n; 999402#L25 assume !(~n <= 0); 999081#L26 call #t~ret0 := fact(~n - 1);< 999401#$Ultimate##0 ~n := #in~n; 999332#L25 assume !(~n <= 0); 999105#L26 call #t~ret0 := fact(~n - 1);< 999107#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999297#factFINAL assume true; 999206#factEXIT >#68#return; 998794#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 999460#$Ultimate##0 ~n := #in~n; 999475#L25 assume !(~n <= 0); 999000#L26 call #t~ret0 := fact(~n - 1);< 999091#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999083#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999559#factFINAL assume true; 999500#factEXIT >#70#return; 998739#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 999400#$Ultimate##0 ~n := #in~n; 999399#L25 assume !(~n <= 0); 999018#L26 call #t~ret0 := fact(~n - 1);< 999044#$Ultimate##0 ~n := #in~n; 999117#L25 assume !(~n <= 0); 999017#L26 call #t~ret0 := fact(~n - 1);< 999103#$Ultimate##0 ~n := #in~n; 999100#L25 assume !(~n <= 0); 999024#L26 call #t~ret0 := fact(~n - 1);< 999087#$Ultimate##0 ~n := #in~n; 999112#L25 assume !(~n <= 0); 999062#L26 call #t~ret0 := fact(~n - 1);< 999108#$Ultimate##0 ~n := #in~n; 999113#L25 assume !(~n <= 0); 999082#L26 call #t~ret0 := fact(~n - 1);< 999109#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999425#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999774#factFINAL assume true; 998735#factEXIT >#72#return; 998875#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1000984#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1000983#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1000982#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1000981#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999249#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999296#$Ultimate##0 ~n := #in~n; 999310#L25 assume !(~n <= 0); 999300#L26 call #t~ret0 := fact(~n - 1);< 999305#$Ultimate##0 ~n := #in~n; 999397#L25 assume !(~n <= 0); 999315#L26 call #t~ret0 := fact(~n - 1);< 999322#$Ultimate##0 ~n := #in~n; 999415#L25 assume !(~n <= 0); 999411#L26 call #t~ret0 := fact(~n - 1);< 999015#$Ultimate##0 ~n := #in~n; 999412#L25 assume !(~n <= 0); 999021#L26 call #t~ret0 := fact(~n - 1);< 999406#$Ultimate##0 ~n := #in~n; 999405#L25 assume !(~n <= 0); 999060#L26 call #t~ret0 := fact(~n - 1);< 999074#$Ultimate##0 ~n := #in~n; 999402#L25 assume !(~n <= 0); 999081#L26 call #t~ret0 := fact(~n - 1);< 999401#$Ultimate##0 ~n := #in~n; 999332#L25 assume !(~n <= 0); 999105#L26 call #t~ret0 := fact(~n - 1);< 999107#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999297#factFINAL assume true; 999206#factEXIT >#68#return; 998749#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 999460#$Ultimate##0 ~n := #in~n; 999475#L25 assume !(~n <= 0); 999000#L26 call #t~ret0 := fact(~n - 1);< 999091#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999605#factFINAL assume true; 999584#factEXIT >#70#return; 998818#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 999198#$Ultimate##0 ~n := #in~n; 999195#L25 assume !(~n <= 0); 999025#L26 call #t~ret0 := fact(~n - 1);< 999123#$Ultimate##0 ~n := #in~n; 999120#L25 assume !(~n <= 0); 999031#L26 call #t~ret0 := fact(~n - 1);< 999115#$Ultimate##0 ~n := #in~n; 999100#L25 assume !(~n <= 0); 999024#L26 call #t~ret0 := fact(~n - 1);< 999087#$Ultimate##0 ~n := #in~n; 999112#L25 assume !(~n <= 0); 999062#L26 call #t~ret0 := fact(~n - 1);< 999108#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999555#factFINAL assume true; 999527#factEXIT >#72#return; 999537#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 999993#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 999992#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 999991#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 999990#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999217#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999296#$Ultimate##0 ~n := #in~n; 999310#L25 assume !(~n <= 0); 999300#L26 call #t~ret0 := fact(~n - 1);< 999305#$Ultimate##0 ~n := #in~n; 999397#L25 assume !(~n <= 0); 999315#L26 call #t~ret0 := fact(~n - 1);< 999322#$Ultimate##0 ~n := #in~n; 999415#L25 assume !(~n <= 0); 999411#L26 call #t~ret0 := fact(~n - 1);< 999015#$Ultimate##0 ~n := #in~n; 999412#L25 assume !(~n <= 0); 999021#L26 call #t~ret0 := fact(~n - 1);< 999406#$Ultimate##0 ~n := #in~n; 999405#L25 assume !(~n <= 0); 999060#L26 call #t~ret0 := fact(~n - 1);< 999074#$Ultimate##0 ~n := #in~n; 999402#L25 assume !(~n <= 0); 999081#L26 call #t~ret0 := fact(~n - 1);< 999401#$Ultimate##0 ~n := #in~n; 999332#L25 assume !(~n <= 0); 999105#L26 call #t~ret0 := fact(~n - 1);< 999107#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999297#factFINAL assume true; 999206#factEXIT >#68#return; 998772#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 999460#$Ultimate##0 ~n := #in~n; 999475#L25 assume !(~n <= 0); 999000#L26 call #t~ret0 := fact(~n - 1);< 999091#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999555#factFINAL assume true; 999527#factEXIT >#70#return; 998816#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 999198#$Ultimate##0 ~n := #in~n; 999195#L25 assume !(~n <= 0); 999025#L26 call #t~ret0 := fact(~n - 1);< 999123#$Ultimate##0 ~n := #in~n; 999120#L25 assume !(~n <= 0); 999031#L26 call #t~ret0 := fact(~n - 1);< 999115#$Ultimate##0 ~n := #in~n; 999100#L25 assume !(~n <= 0); 999024#L26 call #t~ret0 := fact(~n - 1);< 999087#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999605#factFINAL assume true; 999584#factEXIT >#72#return; 999586#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 999989#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 999988#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 999986#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 999984#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999280#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999296#$Ultimate##0 ~n := #in~n; 999310#L25 assume !(~n <= 0); 999300#L26 call #t~ret0 := fact(~n - 1);< 999305#$Ultimate##0 ~n := #in~n; 999397#L25 assume !(~n <= 0); 999315#L26 call #t~ret0 := fact(~n - 1);< 999322#$Ultimate##0 ~n := #in~n; 999415#L25 assume !(~n <= 0); 999411#L26 call #t~ret0 := fact(~n - 1);< 999015#$Ultimate##0 ~n := #in~n; 999412#L25 assume !(~n <= 0); 999021#L26 call #t~ret0 := fact(~n - 1);< 999406#$Ultimate##0 ~n := #in~n; 999405#L25 assume !(~n <= 0); 999060#L26 call #t~ret0 := fact(~n - 1);< 999074#$Ultimate##0 ~n := #in~n; 999402#L25 assume !(~n <= 0); 999081#L26 call #t~ret0 := fact(~n - 1);< 999401#$Ultimate##0 ~n := #in~n; 999332#L25 assume !(~n <= 0); 999105#L26 call #t~ret0 := fact(~n - 1);< 999107#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999297#factFINAL assume true; 999206#factEXIT >#68#return; 998755#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 999460#$Ultimate##0 ~n := #in~n; 999475#L25 assume !(~n <= 0); 999000#L26 call #t~ret0 := fact(~n - 1);< 999091#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999425#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999774#factFINAL assume true; 998735#factEXIT >#70#return; 998777#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 999198#$Ultimate##0 ~n := #in~n; 999195#L25 assume !(~n <= 0); 999025#L26 call #t~ret0 := fact(~n - 1);< 999123#$Ultimate##0 ~n := #in~n; 999120#L25 assume !(~n <= 0); 999031#L26 call #t~ret0 := fact(~n - 1);< 999115#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999083#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999559#factFINAL assume true; 999500#factEXIT >#72#return; 999508#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 999981#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 999980#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 999979#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 999977#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999222#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999296#$Ultimate##0 ~n := #in~n; 999310#L25 assume !(~n <= 0); 999300#L26 call #t~ret0 := fact(~n - 1);< 999305#$Ultimate##0 ~n := #in~n; 999397#L25 assume !(~n <= 0); 999315#L26 call #t~ret0 := fact(~n - 1);< 999322#$Ultimate##0 ~n := #in~n; 999415#L25 assume !(~n <= 0); 999411#L26 call #t~ret0 := fact(~n - 1);< 999015#$Ultimate##0 ~n := #in~n; 999412#L25 assume !(~n <= 0); 999021#L26 call #t~ret0 := fact(~n - 1);< 999406#$Ultimate##0 ~n := #in~n; 999405#L25 assume !(~n <= 0); 999060#L26 call #t~ret0 := fact(~n - 1);< 999074#$Ultimate##0 ~n := #in~n; 999402#L25 assume !(~n <= 0); 999081#L26 call #t~ret0 := fact(~n - 1);< 999401#$Ultimate##0 ~n := #in~n; 999332#L25 assume !(~n <= 0); 999105#L26 call #t~ret0 := fact(~n - 1);< 999107#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999297#factFINAL assume true; 999206#factEXIT >#68#return; 998869#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 999460#$Ultimate##0 ~n := #in~n; 999475#L25 assume !(~n <= 0); 999000#L26 call #t~ret0 := fact(~n - 1);< 999091#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999317#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999398#factFINAL assume true; 999325#factEXIT >#70#return; 999192#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 999199#$Ultimate##0 ~n := #in~n; 999196#L25 assume !(~n <= 0); 999026#L26 call #t~ret0 := fact(~n - 1);< 999194#$Ultimate##0 ~n := #in~n; 1000008#L25 assume ~n <= 0;#res := 1; 999994#factFINAL assume true; 999956#factEXIT >#66#return; 999954#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999945#factFINAL assume true; 999440#factEXIT >#72#return; 999439#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 999438#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 999436#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 999435#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 999434#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 999213#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 999296#$Ultimate##0 ~n := #in~n; 999310#L25 assume !(~n <= 0); 999300#L26 call #t~ret0 := fact(~n - 1);< 999305#$Ultimate##0 ~n := #in~n; 999397#L25 assume !(~n <= 0); 999315#L26 call #t~ret0 := fact(~n - 1);< 999322#$Ultimate##0 ~n := #in~n; 999415#L25 assume !(~n <= 0); 999411#L26 call #t~ret0 := fact(~n - 1);< 999015#$Ultimate##0 ~n := #in~n; 999412#L25 assume !(~n <= 0); 999021#L26 call #t~ret0 := fact(~n - 1);< 999406#$Ultimate##0 ~n := #in~n; 999405#L25 assume !(~n <= 0); 999060#L26 call #t~ret0 := fact(~n - 1);< 999074#$Ultimate##0 ~n := #in~n; 999402#L25 assume !(~n <= 0); 999081#L26 call #t~ret0 := fact(~n - 1);< 999401#$Ultimate##0 ~n := #in~n; 999332#L25 assume !(~n <= 0); 999105#L26 call #t~ret0 := fact(~n - 1);< 999107#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999297#factFINAL assume true; 999206#factEXIT >#68#return; 998923#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 999422#$Ultimate##0 ~n := #in~n; 999396#L25 assume !(~n <= 0); 999001#L26 call #t~ret0 := fact(~n - 1);< 999309#$Ultimate##0 ~n := #in~n; 999363#L25 assume !(~n <= 0); 998983#L26 call #t~ret0 := fact(~n - 1);< 999331#$Ultimate##0 ~n := #in~n; 999329#L25 assume !(~n <= 0); 998982#L26 call #t~ret0 := fact(~n - 1);< 999323#$Ultimate##0 ~n := #in~n; 999324#L25 assume !(~n <= 0); 998980#L26 call #t~ret0 := fact(~n - 1);< 999308#$Ultimate##0 ~n := #in~n; 999368#L25 assume !(~n <= 0); 998995#L26 call #t~ret0 := fact(~n - 1);< 999047#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999118#L25 assume !(~n <= 0); 998973#L26 call #t~ret0 := fact(~n - 1);< 999106#$Ultimate##0 ~n := #in~n; 999114#L25 assume ~n <= 0;#res := 1; 999111#factFINAL assume true; 999104#factEXIT >#66#return; 999101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999088#factFINAL assume true; 999076#factEXIT >#66#return; 999075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999070#factFINAL assume true; 999056#factEXIT >#66#return; 999055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999043#factFINAL assume true; 999016#factEXIT >#66#return; 999032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999463#factFINAL assume true; 999424#factEXIT >#66#return; 999419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999373#factFINAL assume true; 999314#factEXIT >#66#return; 999312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999306#factFINAL assume true; 999299#factEXIT >#66#return; 999003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 999009#factFINAL assume true; 998970#factEXIT >#66#return; 998940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 998969#factFINAL assume true; 999437#factEXIT >#70#return; 998697#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 999200#$Ultimate##0 ~n := #in~n; 999197#L25 assume ~n <= 0;#res := 1; 998732#factFINAL assume true; 998665#factEXIT >#72#return; 998725#L30-3 [2023-02-18 08:59:09,193 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:59:09,193 INFO L85 PathProgramCache]: Analyzing trace with hash 1909473048, now seen corresponding path program 82 times [2023-02-18 08:59:09,193 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:59:09,194 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [78168638] [2023-02-18 08:59:09,194 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:59:09,194 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:59:09,230 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:59:09,230 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1231298248] [2023-02-18 08:59:09,231 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:59:09,231 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:59:09,231 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:09,233 INFO L229 MonitoredProcess]: Starting monitored process 289 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:59:09,234 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (289)] Waiting until timeout for monitored process [2023-02-18 08:59:10,590 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:59:10,590 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:59:10,606 INFO L263 TraceCheckSpWp]: Trace formula consists of 4255 conjuncts, 15 conjunts are in the unsatisfiable core [2023-02-18 08:59:10,617 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:59:10,681 INFO L134 CoverageAnalysis]: Checked inductivity of 259718 backedges. 100624 proven. 338 refuted. 0 times theorem prover too weak. 158756 trivial. 0 not checked. [2023-02-18 08:59:10,682 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:59:10,899 INFO L134 CoverageAnalysis]: Checked inductivity of 259718 backedges. 2392 proven. 4635 refuted. 0 times theorem prover too weak. 252691 trivial. 0 not checked. [2023-02-18 08:59:10,900 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:59:10,900 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [78168638] [2023-02-18 08:59:10,900 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:59:10,900 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1231298248] [2023-02-18 08:59:10,900 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1231298248] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:59:10,900 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:59:10,900 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 16 [2023-02-18 08:59:10,900 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [622569852] [2023-02-18 08:59:10,900 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:59:10,901 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:59:10,901 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:59:10,901 INFO L85 PathProgramCache]: Analyzing trace with hash 1721178691, now seen corresponding path program 82 times [2023-02-18 08:59:10,901 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:59:10,901 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [73865513] [2023-02-18 08:59:10,901 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:59:10,901 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:59:10,926 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:59:10,926 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [31641172] [2023-02-18 08:59:10,926 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 08:59:10,926 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:59:10,926 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:10,929 INFO L229 MonitoredProcess]: Starting monitored process 290 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:59:10,929 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (290)] Waiting until timeout for monitored process [2023-02-18 08:59:12,002 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 08:59:12,002 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:59:12,009 INFO L263 TraceCheckSpWp]: Trace formula consists of 1991 conjuncts, 27 conjunts are in the unsatisfiable core [2023-02-18 08:59:12,015 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:59:12,123 INFO L134 CoverageAnalysis]: Checked inductivity of 63383 backedges. 6131 proven. 211 refuted. 0 times theorem prover too weak. 57041 trivial. 0 not checked. [2023-02-18 08:59:12,123 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:59:12,387 INFO L134 CoverageAnalysis]: Checked inductivity of 63383 backedges. 5519 proven. 284 refuted. 0 times theorem prover too weak. 57580 trivial. 0 not checked. [2023-02-18 08:59:12,387 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:59:12,387 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [73865513] [2023-02-18 08:59:12,387 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:59:12,387 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [31641172] [2023-02-18 08:59:12,387 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [31641172] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:59:12,387 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:59:12,387 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 27] total 28 [2023-02-18 08:59:12,387 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1898109544] [2023-02-18 08:59:12,387 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:59:12,388 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:59:12,388 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:59:12,388 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 28 interpolants. [2023-02-18 08:59:12,388 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=153, Invalid=603, Unknown=0, NotChecked=0, Total=756 [2023-02-18 08:59:12,388 INFO L87 Difference]: Start difference. First operand 5485 states and 8709 transitions. cyclomatic complexity: 3269 Second operand has 28 states, 27 states have (on average 3.3333333333333335) internal successors, (90), 28 states have internal predecessors, (90), 19 states have call successors, (38), 2 states have call predecessors, (38), 10 states have return successors, (44), 18 states have call predecessors, (44), 19 states have call successors, (44) [2023-02-18 08:59:13,790 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:59:13,790 INFO L93 Difference]: Finished difference Result 7130 states and 12899 transitions. [2023-02-18 08:59:13,790 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 7130 states and 12899 transitions. [2023-02-18 08:59:13,837 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 1001 [2023-02-18 08:59:13,898 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 7130 states to 7130 states and 12897 transitions. [2023-02-18 08:59:13,898 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 495 [2023-02-18 08:59:13,899 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 495 [2023-02-18 08:59:13,899 INFO L73 IsDeterministic]: Start isDeterministic. Operand 7130 states and 12897 transitions. [2023-02-18 08:59:13,899 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:59:13,899 INFO L218 hiAutomatonCegarLoop]: Abstraction has 7130 states and 12897 transitions. [2023-02-18 08:59:13,903 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 7130 states and 12897 transitions. [2023-02-18 08:59:13,987 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 7130 to 5485. [2023-02-18 08:59:13,992 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5485 states, 3338 states have (on average 1.0476333133612943) internal successors, (3497), 3336 states have internal predecessors, (3497), 1799 states have call successors, (1821), 503 states have call predecessors, (1821), 348 states have return successors, (3360), 1645 states have call predecessors, (3360), 1799 states have call successors, (3360) [2023-02-18 08:59:14,011 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5485 states to 5485 states and 8678 transitions. [2023-02-18 08:59:14,011 INFO L240 hiAutomatonCegarLoop]: Abstraction has 5485 states and 8678 transitions. [2023-02-18 08:59:14,012 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 21 states. [2023-02-18 08:59:14,012 INFO L428 stractBuchiCegarLoop]: Abstraction has 5485 states and 8678 transitions. [2023-02-18 08:59:14,012 INFO L335 stractBuchiCegarLoop]: ======== Iteration 95 ============ [2023-02-18 08:59:14,012 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 5485 states and 8678 transitions. [2023-02-18 08:59:14,025 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 863 [2023-02-18 08:59:14,025 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:59:14,025 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:59:14,032 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [321, 321, 240, 240, 240, 240, 81, 27, 26, 20, 20, 20, 20, 20, 20, 20, 19, 19, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 4, 4, 1, 1, 1, 1] [2023-02-18 08:59:14,032 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [152, 152, 125, 125, 125, 125, 27, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:59:14,033 INFO L748 eck$LassoCheckResult]: Stem: 1028856#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 1028786#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; 1028787#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 1028809#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; 1028797#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1028798#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1033594#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1028784#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1028785#$Ultimate##0 ~n := #in~n; 1033543#L25 assume ~n <= 0;#res := 1; 1033542#factFINAL assume true; 1033541#factEXIT >#68#return; 1028844#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1028845#$Ultimate##0 ~n := #in~n; 1033385#L25 assume ~n <= 0;#res := 1; 1033382#factFINAL assume true; 1033381#factEXIT >#70#return; 1028776#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1028777#$Ultimate##0 ~n := #in~n; 1033839#L25 assume ~n <= 0;#res := 1; 1033838#factFINAL assume true; 1033836#factEXIT >#72#return; 1033837#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1034007#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1034006#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1034004#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1034001#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1033975#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1033976#$Ultimate##0 ~n := #in~n; 1034005#L25 assume !(~n <= 0); 1033996#L26 call #t~ret0 := fact(~n - 1);< 1033997#$Ultimate##0 ~n := #in~n; 1034003#L25 assume ~n <= 0;#res := 1; 1034000#factFINAL assume true; 1033995#factEXIT >#66#return; 1033993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1033991#factFINAL assume true; 1033974#factEXIT >#74#return; 1033971#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1033972#$Ultimate##0 ~n := #in~n; 1033985#L25 assume ~n <= 0;#res := 1; 1033984#factFINAL assume true; 1033970#factEXIT >#76#return; 1033964#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1033965#$Ultimate##0 ~n := #in~n; 1034002#L25 assume !(~n <= 0); 1033980#L26 call #t~ret0 := fact(~n - 1);< 1033981#$Ultimate##0 ~n := #in~n; 1033999#L25 assume ~n <= 0;#res := 1; 1033987#factFINAL assume true; 1033979#factEXIT >#66#return; 1033969#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1033968#factFINAL assume true; 1033963#factEXIT >#78#return; 1033959#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1033953#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1033951#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1033949#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1033947#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1033929#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1033930#$Ultimate##0 ~n := #in~n; 1033943#L25 assume !(~n <= 0); 1033912#L26 call #t~ret0 := fact(~n - 1);< 1033916#$Ultimate##0 ~n := #in~n; 1033941#L25 assume !(~n <= 0); 1033911#L26 call #t~ret0 := fact(~n - 1);< 1033939#$Ultimate##0 ~n := #in~n; 1033944#L25 assume ~n <= 0;#res := 1; 1033942#factFINAL assume true; 1033938#factEXIT >#66#return; 1033936#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1033935#factFINAL assume true; 1033910#factEXIT >#66#return; 1033915#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1034015#factFINAL assume true; 1033928#factEXIT >#74#return; 1033925#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1033926#$Ultimate##0 ~n := #in~n; 1033940#L25 assume ~n <= 0;#res := 1; 1033937#factFINAL assume true; 1033924#factEXIT >#76#return; 1033903#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1033904#$Ultimate##0 ~n := #in~n; 1033921#L25 assume !(~n <= 0); 1033913#L26 call #t~ret0 := fact(~n - 1);< 1033916#$Ultimate##0 ~n := #in~n; 1033941#L25 assume !(~n <= 0); 1033911#L26 call #t~ret0 := fact(~n - 1);< 1033939#$Ultimate##0 ~n := #in~n; 1033944#L25 assume ~n <= 0;#res := 1; 1033942#factFINAL assume true; 1033938#factEXIT >#66#return; 1033936#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1033935#factFINAL assume true; 1033910#factEXIT >#66#return; 1033909#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1033907#factFINAL assume true; 1033902#factEXIT >#78#return; 1033900#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1033896#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1033894#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1033892#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1033889#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1033877#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1033878#$Ultimate##0 ~n := #in~n; 1033922#L25 assume !(~n <= 0); 1033918#L26 call #t~ret0 := fact(~n - 1);< 1033920#$Ultimate##0 ~n := #in~n; 1033958#L25 assume !(~n <= 0); 1033919#L26 call #t~ret0 := fact(~n - 1);< 1033932#$Ultimate##0 ~n := #in~n; 1033958#L25 assume !(~n <= 0); 1033919#L26 call #t~ret0 := fact(~n - 1);< 1033932#$Ultimate##0 ~n := #in~n; 1033955#L25 assume ~n <= 0;#res := 1; 1033954#factFINAL assume true; 1033952#factEXIT >#66#return; 1033950#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1033948#factFINAL assume true; 1033931#factEXIT >#66#return; 1033927#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1033923#factFINAL assume true; 1033917#factEXIT >#66#return; 1033899#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1033888#factFINAL assume true; 1033876#factEXIT >#74#return; 1033872#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1033873#$Ultimate##0 ~n := #in~n; 1033887#L25 assume ~n <= 0;#res := 1; 1033875#factFINAL assume true; 1033871#factEXIT >#76#return; 1028822#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1033869#$Ultimate##0 ~n := #in~n; 1033898#L25 assume !(~n <= 0); 1033882#L26 call #t~ret0 := fact(~n - 1);< 1033886#$Ultimate##0 ~n := #in~n; 1033908#L25 assume !(~n <= 0); 1033880#L26 call #t~ret0 := fact(~n - 1);< 1033906#$Ultimate##0 ~n := #in~n; 1033908#L25 assume !(~n <= 0); 1033880#L26 call #t~ret0 := fact(~n - 1);< 1033906#$Ultimate##0 ~n := #in~n; 1033934#L25 assume ~n <= 0;#res := 1; 1033933#factFINAL assume true; 1033905#factEXIT >#66#return; 1033901#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1033897#factFINAL assume true; 1033895#factEXIT >#66#return; 1033893#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1033891#factFINAL assume true; 1033879#factEXIT >#66#return; 1028821#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1028823#factFINAL assume true; 1033867#factEXIT >#78#return; 1033865#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1028789#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1033862#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1033860#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1028807#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1028808#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1032330#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1031833#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1031740#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1031745#$Ultimate##0 ~n := #in~n; 1031824#L25 assume !(~n <= 0); 1031797#L26 call #t~ret0 := fact(~n - 1);< 1031822#$Ultimate##0 ~n := #in~n; 1031865#L25 assume ~n <= 0;#res := 1; 1031938#factFINAL assume true; 1031922#factEXIT >#66#return; 1031921#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1031919#factFINAL assume true; 1031918#factEXIT >#68#return; 1031909#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1031735#$Ultimate##0 ~n := #in~n; 1031917#L25 assume ~n <= 0;#res := 1; 1031916#factFINAL assume true; 1031908#factEXIT >#70#return; 1031891#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1031903#$Ultimate##0 ~n := #in~n; 1031902#L25 assume !(~n <= 0); 1031790#L26 call #t~ret0 := fact(~n - 1);< 1031892#$Ultimate##0 ~n := #in~n; 1031865#L25 assume ~n <= 0;#res := 1; 1031938#factFINAL assume true; 1031922#factEXIT >#66#return; 1031932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1032447#factFINAL assume true; 1032446#factEXIT >#72#return; 1032445#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1032444#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1032443#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1032441#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1032440#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1031957#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1031976#$Ultimate##0 ~n := #in~n; 1031967#L25 assume !(~n <= 0); 1031800#L26 call #t~ret0 := fact(~n - 1);< 1031892#$Ultimate##0 ~n := #in~n; 1031865#L25 assume ~n <= 0;#res := 1; 1031938#factFINAL assume true; 1031922#factEXIT >#66#return; 1031931#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1032439#factFINAL assume true; 1032438#factEXIT >#68#return; 1032423#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1032435#$Ultimate##0 ~n := #in~n; 1032442#L25 assume !(~n <= 0); 1031926#L26 call #t~ret0 := fact(~n - 1);< 1031956#$Ultimate##0 ~n := #in~n; 1031865#L25 assume ~n <= 0;#res := 1; 1031938#factFINAL assume true; 1031922#factEXIT >#66#return; 1031928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1032437#factFINAL assume true; 1032415#factEXIT >#70#return; 1032404#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1032413#$Ultimate##0 ~n := #in~n; 1032436#L25 assume ~n <= 0;#res := 1; 1032414#factFINAL assume true; 1032399#factEXIT >#72#return; 1032398#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1032397#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1032396#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1032395#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1032394#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1032000#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1032393#$Ultimate##0 ~n := #in~n; 1032392#L25 assume !(~n <= 0); 1031801#L26 call #t~ret0 := fact(~n - 1);< 1032001#$Ultimate##0 ~n := #in~n; 1032010#L25 assume !(~n <= 0); 1031799#L26 call #t~ret0 := fact(~n - 1);< 1031839#$Ultimate##0 ~n := #in~n; 1031845#L25 assume ~n <= 0;#res := 1; 1031842#factFINAL assume true; 1031836#factEXIT >#66#return; 1031834#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1031825#factFINAL assume true; 1031783#factEXIT >#66#return; 1031820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1032853#factFINAL assume true; 1032852#factEXIT >#74#return; 1031944#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1031970#$Ultimate##0 ~n := #in~n; 1031966#L25 assume !(~n <= 0); 1031791#L26 call #t~ret0 := fact(~n - 1);< 1031822#$Ultimate##0 ~n := #in~n; 1031865#L25 assume ~n <= 0;#res := 1; 1031938#factFINAL assume true; 1031922#factEXIT >#66#return; 1031927#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1032884#factFINAL assume true; 1032831#factEXIT >#76#return; 1032808#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1032845#$Ultimate##0 ~n := #in~n; 1032887#L25 assume !(~n <= 0); 1031925#L26 call #t~ret0 := fact(~n - 1);< 1031956#$Ultimate##0 ~n := #in~n; 1031865#L25 assume ~n <= 0;#res := 1; 1031938#factFINAL assume true; 1031922#factEXIT >#66#return; 1031927#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1032884#factFINAL assume true; 1032831#factEXIT >#78#return; 1032836#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1032844#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1032843#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1032842#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1032814#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1032685#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1032778#$Ultimate##0 ~n := #in~n; 1032988#L25 assume !(~n <= 0); 1032733#L26 call #t~ret0 := fact(~n - 1);< 1032749#$Ultimate##0 ~n := #in~n; 1032766#L25 assume !(~n <= 0); 1032729#L26 call #t~ret0 := fact(~n - 1);< 1032754#$Ultimate##0 ~n := #in~n; 1032766#L25 assume !(~n <= 0); 1032729#L26 call #t~ret0 := fact(~n - 1);< 1032754#$Ultimate##0 ~n := #in~n; 1032757#L25 assume ~n <= 0;#res := 1; 1032755#factFINAL assume true; 1032751#factEXIT >#66#return; 1032750#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1032746#factFINAL assume true; 1032724#factEXIT >#66#return; 1032744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1032861#factFINAL assume true; 1032817#factEXIT >#66#return; 1032819#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1032813#factFINAL assume true; 1032797#factEXIT >#74#return; 1032699#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1032765#$Ultimate##0 ~n := #in~n; 1032883#L25 assume !(~n <= 0); 1032727#L26 call #t~ret0 := fact(~n - 1);< 1032825#$Ultimate##0 ~n := #in~n; 1032759#L25 assume ~n <= 0;#res := 1; 1032866#factFINAL assume true; 1032821#factEXIT >#66#return; 1032812#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1032795#factFINAL assume true; 1032786#factEXIT >#76#return; 1032713#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1032719#$Ultimate##0 ~n := #in~n; 1032789#L25 assume !(~n <= 0); 1032737#L26 call #t~ret0 := fact(~n - 1);< 1032780#$Ultimate##0 ~n := #in~n; 1032767#L25 assume !(~n <= 0); 1032735#L26 call #t~ret0 := fact(~n - 1);< 1032764#$Ultimate##0 ~n := #in~n; 1032757#L25 assume ~n <= 0;#res := 1; 1032755#factFINAL assume true; 1032751#factEXIT >#66#return; 1032750#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1032746#factFINAL assume true; 1032724#factEXIT >#66#return; 1032723#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1032720#factFINAL assume true; 1032679#factEXIT >#78#return; 1032678#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1032677#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1032676#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1032670#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1032668#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1032664#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1032663#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1032662#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1031741#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1031745#$Ultimate##0 ~n := #in~n; 1031824#L25 assume !(~n <= 0); 1031797#L26 call #t~ret0 := fact(~n - 1);< 1031822#$Ultimate##0 ~n := #in~n; 1031852#L25 assume !(~n <= 0); 1031808#L26 call #t~ret0 := fact(~n - 1);< 1031847#$Ultimate##0 ~n := #in~n; 1031845#L25 assume ~n <= 0;#res := 1; 1031842#factFINAL assume true; 1031836#factEXIT >#66#return; 1031834#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1031825#factFINAL assume true; 1031783#factEXIT >#66#return; 1031780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1031776#factFINAL assume true; 1031737#factEXIT >#68#return; 1031729#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1031734#$Ultimate##0 ~n := #in~n; 1031778#L25 assume ~n <= 0;#res := 1; 1031775#factFINAL assume true; 1031725#factEXIT >#70#return; 1031716#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1031723#$Ultimate##0 ~n := #in~n; 1031773#L25 assume !(~n <= 0); 1031112#L26 call #t~ret0 := fact(~n - 1);< 1031124#$Ultimate##0 ~n := #in~n; 1031182#L25 assume !(~n <= 0); 1031177#L26 call #t~ret0 := fact(~n - 1);< 1031180#$Ultimate##0 ~n := #in~n; 1031234#L25 assume ~n <= 0;#res := 1; 1031232#factFINAL assume true; 1031176#factEXIT >#66#return; 1031175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1031133#factFINAL assume true; 1031108#factEXIT >#66#return; 1031119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1031770#factFINAL assume true; 1031711#factEXIT >#72#return; 1031722#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1033125#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1033124#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1033123#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1033121#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1031135#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1031654#$Ultimate##0 ~n := #in~n; 1032585#L25 assume !(~n <= 0); 1031111#L26 call #t~ret0 := fact(~n - 1);< 1031124#$Ultimate##0 ~n := #in~n; 1031182#L25 assume !(~n <= 0); 1031177#L26 call #t~ret0 := fact(~n - 1);< 1031180#$Ultimate##0 ~n := #in~n; 1031234#L25 assume ~n <= 0;#res := 1; 1031232#factFINAL assume true; 1031176#factEXIT >#66#return; 1031175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1031133#factFINAL assume true; 1031108#factEXIT >#66#return; 1031118#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1031882#factFINAL assume true; 1031647#factEXIT >#68#return; 1031649#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1031687#$Ultimate##0 ~n := #in~n; 1031766#L25 assume !(~n <= 0); 1030952#L26 call #t~ret0 := fact(~n - 1);< 1030970#$Ultimate##0 ~n := #in~n; 1031014#L25 assume ~n <= 0;#res := 1; 1031004#factFINAL assume true; 1030948#factEXIT >#66#return; 1030968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1031689#factFINAL assume true; 1031675#factEXIT >#70#return; 1031677#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1031687#$Ultimate##0 ~n := #in~n; 1031766#L25 assume !(~n <= 0); 1030952#L26 call #t~ret0 := fact(~n - 1);< 1030970#$Ultimate##0 ~n := #in~n; 1031014#L25 assume ~n <= 0;#res := 1; 1031004#factFINAL assume true; 1030948#factEXIT >#66#return; 1030968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1031689#factFINAL assume true; 1031675#factEXIT >#72#return; 1031682#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1033114#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1033112#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1033110#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1033108#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1031144#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1031654#$Ultimate##0 ~n := #in~n; 1032585#L25 assume !(~n <= 0); 1031111#L26 call #t~ret0 := fact(~n - 1);< 1031124#$Ultimate##0 ~n := #in~n; 1031182#L25 assume !(~n <= 0); 1031177#L26 call #t~ret0 := fact(~n - 1);< 1031180#$Ultimate##0 ~n := #in~n; 1031234#L25 assume ~n <= 0;#res := 1; 1031232#factFINAL assume true; 1031176#factEXIT >#66#return; 1031175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1031133#factFINAL assume true; 1031108#factEXIT >#66#return; 1031118#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1031882#factFINAL assume true; 1031647#factEXIT >#68#return; 1031273#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1031497#$Ultimate##0 ~n := #in~n; 1031498#L25 assume !(~n <= 0); 1031037#L26 call #t~ret0 := fact(~n - 1);< 1031125#$Ultimate##0 ~n := #in~n; 1031270#L25 assume !(~n <= 0); 1031115#L26 call #t~ret0 := fact(~n - 1);< 1031181#$Ultimate##0 ~n := #in~n; 1031234#L25 assume ~n <= 0;#res := 1; 1031232#factFINAL assume true; 1031176#factEXIT >#66#return; 1031175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1031133#factFINAL assume true; 1031108#factEXIT >#66#return; 1031123#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1031879#factFINAL assume true; 1031571#factEXIT >#70#return; 1031559#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1031570#$Ultimate##0 ~n := #in~n; 1031858#L25 assume ~n <= 0;#res := 1; 1031857#factFINAL assume true; 1031558#factEXIT >#72#return; 1031566#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1033107#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1033105#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1033103#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1033101#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1030883#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1030885#$Ultimate##0 ~n := #in~n; 1030884#L25 assume !(~n <= 0); 1030796#L26 call #t~ret0 := fact(~n - 1);< 1030827#$Ultimate##0 ~n := #in~n; 1030866#L25 assume !(~n <= 0); 1030794#L26 call #t~ret0 := fact(~n - 1);< 1030842#$Ultimate##0 ~n := #in~n; 1030866#L25 assume !(~n <= 0); 1030794#L26 call #t~ret0 := fact(~n - 1);< 1030842#$Ultimate##0 ~n := #in~n; 1030864#L25 assume ~n <= 0;#res := 1; 1030863#factFINAL assume true; 1030839#factEXIT >#66#return; 1030837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030829#factFINAL assume true; 1030820#factEXIT >#66#return; 1030819#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030813#factFINAL assume true; 1030788#factEXIT >#66#return; 1030811#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1033094#factFINAL assume true; 1033091#factEXIT >#74#return; 1030831#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1033090#$Ultimate##0 ~n := #in~n; 1033119#L25 assume !(~n <= 0); 1030799#L26 call #t~ret0 := fact(~n - 1);< 1030833#$Ultimate##0 ~n := #in~n; 1030838#L25 assume !(~n <= 0); 1030821#L26 call #t~ret0 := fact(~n - 1);< 1030828#$Ultimate##0 ~n := #in~n; 1030864#L25 assume ~n <= 0;#res := 1; 1030863#factFINAL assume true; 1030839#factEXIT >#66#return; 1030837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030829#factFINAL assume true; 1030820#factEXIT >#66#return; 1030825#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1033084#factFINAL assume true; 1033085#factEXIT >#76#return; 1030860#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1033086#$Ultimate##0 ~n := #in~n; 1033118#L25 assume !(~n <= 0); 1033096#L26 call #t~ret0 := fact(~n - 1);< 1033099#$Ultimate##0 ~n := #in~n; 1030868#L25 assume ~n <= 0;#res := 1; 1033116#factFINAL assume true; 1033095#factEXIT >#66#return; 1033093#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1033092#factFINAL assume true; 1030849#factEXIT >#78#return; 1028760#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1028810#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1028811#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1028842#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1028805#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1028806#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1030656#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1030655#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029671#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029714#$Ultimate##0 ~n := #in~n; 1029712#L25 assume !(~n <= 0); 1029660#L26 call #t~ret0 := fact(~n - 1);< 1029664#$Ultimate##0 ~n := #in~n; 1030524#L25 assume !(~n <= 0); 1029189#L26 call #t~ret0 := fact(~n - 1);< 1029206#$Ultimate##0 ~n := #in~n; 1030521#L25 assume !(~n <= 0); 1029216#L26 call #t~ret0 := fact(~n - 1);< 1029226#$Ultimate##0 ~n := #in~n; 1030518#L25 assume !(~n <= 0); 1029230#L26 call #t~ret0 := fact(~n - 1);< 1029720#$Ultimate##0 ~n := #in~n; 1029344#L25 assume !(~n <= 0); 1029256#L26 call #t~ret0 := fact(~n - 1);< 1029257#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029663#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030471#factFINAL assume true; 1030466#factEXIT >#68#return; 1029875#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1029880#$Ultimate##0 ~n := #in~n; 1030375#L25 assume ~n <= 0;#res := 1; 1030131#factFINAL assume true; 1029867#factEXIT >#70#return; 1029347#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1029423#$Ultimate##0 ~n := #in~n; 1029345#L25 assume !(~n <= 0); 1029129#L26 call #t~ret0 := fact(~n - 1);< 1029276#$Ultimate##0 ~n := #in~n; 1029274#L25 assume !(~n <= 0); 1029126#L26 call #t~ret0 := fact(~n - 1);< 1029271#$Ultimate##0 ~n := #in~n; 1029267#L25 assume !(~n <= 0); 1029122#L26 call #t~ret0 := fact(~n - 1);< 1029223#$Ultimate##0 ~n := #in~n; 1029264#L25 assume !(~n <= 0); 1029119#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030467#factFINAL assume true; 1030465#factEXIT >#72#return; 1029859#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1030653#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1030651#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1030649#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1030639#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029475#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029481#$Ultimate##0 ~n := #in~n; 1029674#L25 assume !(~n <= 0); 1029658#L26 call #t~ret0 := fact(~n - 1);< 1029664#$Ultimate##0 ~n := #in~n; 1030524#L25 assume !(~n <= 0); 1029189#L26 call #t~ret0 := fact(~n - 1);< 1029206#$Ultimate##0 ~n := #in~n; 1030521#L25 assume !(~n <= 0); 1029216#L26 call #t~ret0 := fact(~n - 1);< 1029226#$Ultimate##0 ~n := #in~n; 1030518#L25 assume !(~n <= 0); 1029230#L26 call #t~ret0 := fact(~n - 1);< 1029720#$Ultimate##0 ~n := #in~n; 1029344#L25 assume !(~n <= 0); 1029256#L26 call #t~ret0 := fact(~n - 1);< 1029257#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029631#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029614#factFINAL assume true; 1029464#factEXIT >#68#return; 1029480#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1029710#$Ultimate##0 ~n := #in~n; 1029999#L25 assume !(~n <= 0); 1029716#L26 call #t~ret0 := fact(~n - 1);< 1029719#$Ultimate##0 ~n := #in~n; 1030248#L25 assume ~n <= 0;#res := 1; 1030056#factFINAL assume true; 1029715#factEXIT >#66#return; 1029713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029709#factFINAL assume true; 1029679#factEXIT >#70#return; 1029696#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1029952#$Ultimate##0 ~n := #in~n; 1030318#L25 assume !(~n <= 0); 1029191#L26 call #t~ret0 := fact(~n - 1);< 1030317#$Ultimate##0 ~n := #in~n; 1030314#L25 assume !(~n <= 0); 1029218#L26 call #t~ret0 := fact(~n - 1);< 1030313#$Ultimate##0 ~n := #in~n; 1030312#L25 assume !(~n <= 0); 1029233#L26 call #t~ret0 := fact(~n - 1);< 1029259#$Ultimate##0 ~n := #in~n; 1029344#L25 assume !(~n <= 0); 1029256#L26 call #t~ret0 := fact(~n - 1);< 1029257#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030092#factFINAL assume true; 1029734#factEXIT >#72#return; 1029750#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1030460#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1030458#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1029726#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1029508#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029476#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029481#$Ultimate##0 ~n := #in~n; 1029674#L25 assume !(~n <= 0); 1029658#L26 call #t~ret0 := fact(~n - 1);< 1029664#$Ultimate##0 ~n := #in~n; 1030524#L25 assume !(~n <= 0); 1029189#L26 call #t~ret0 := fact(~n - 1);< 1029206#$Ultimate##0 ~n := #in~n; 1030521#L25 assume !(~n <= 0); 1029216#L26 call #t~ret0 := fact(~n - 1);< 1029226#$Ultimate##0 ~n := #in~n; 1030518#L25 assume !(~n <= 0); 1029230#L26 call #t~ret0 := fact(~n - 1);< 1029720#$Ultimate##0 ~n := #in~n; 1029344#L25 assume !(~n <= 0); 1029256#L26 call #t~ret0 := fact(~n - 1);< 1029257#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029631#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029614#factFINAL assume true; 1029464#factEXIT >#68#return; 1029430#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1029437#$Ultimate##0 ~n := #in~n; 1029434#L25 assume !(~n <= 0); 1029108#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029236#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029616#factFINAL assume true; 1029482#factEXIT >#70#return; 1029225#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1029463#$Ultimate##0 ~n := #in~n; 1029673#L25 assume !(~n <= 0); 1029217#L26 call #t~ret0 := fact(~n - 1);< 1029226#$Ultimate##0 ~n := #in~n; 1030518#L25 assume !(~n <= 0); 1029230#L26 call #t~ret0 := fact(~n - 1);< 1029720#$Ultimate##0 ~n := #in~n; 1029344#L25 assume !(~n <= 0); 1029256#L26 call #t~ret0 := fact(~n - 1);< 1029257#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029461#factFINAL assume true; 1029438#factEXIT >#72#return; 1029458#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1029780#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1029779#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1029766#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1029505#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029470#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029481#$Ultimate##0 ~n := #in~n; 1029674#L25 assume !(~n <= 0); 1029658#L26 call #t~ret0 := fact(~n - 1);< 1029664#$Ultimate##0 ~n := #in~n; 1030524#L25 assume !(~n <= 0); 1029189#L26 call #t~ret0 := fact(~n - 1);< 1029206#$Ultimate##0 ~n := #in~n; 1030521#L25 assume !(~n <= 0); 1029216#L26 call #t~ret0 := fact(~n - 1);< 1029226#$Ultimate##0 ~n := #in~n; 1030518#L25 assume !(~n <= 0); 1029230#L26 call #t~ret0 := fact(~n - 1);< 1029720#$Ultimate##0 ~n := #in~n; 1029344#L25 assume !(~n <= 0); 1029256#L26 call #t~ret0 := fact(~n - 1);< 1029257#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029631#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029614#factFINAL assume true; 1029464#factEXIT >#68#return; 1028983#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1029097#$Ultimate##0 ~n := #in~n; 1029762#L25 assume !(~n <= 0); 1029116#L26 call #t~ret0 := fact(~n - 1);< 1029223#$Ultimate##0 ~n := #in~n; 1029264#L25 assume !(~n <= 0); 1029119#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029461#factFINAL assume true; 1029438#factEXIT >#70#return; 1029243#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1029435#$Ultimate##0 ~n := #in~n; 1029432#L25 assume !(~n <= 0); 1029234#L26 call #t~ret0 := fact(~n - 1);< 1029239#$Ultimate##0 ~n := #in~n; 1030072#L25 assume !(~n <= 0); 1029232#L26 call #t~ret0 := fact(~n - 1);< 1029259#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029236#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029616#factFINAL assume true; 1029482#factEXIT >#72#return; 1029501#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1029778#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1029776#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1029774#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1029772#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029468#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029481#$Ultimate##0 ~n := #in~n; 1029674#L25 assume !(~n <= 0); 1029658#L26 call #t~ret0 := fact(~n - 1);< 1029664#$Ultimate##0 ~n := #in~n; 1030524#L25 assume !(~n <= 0); 1029189#L26 call #t~ret0 := fact(~n - 1);< 1029206#$Ultimate##0 ~n := #in~n; 1030521#L25 assume !(~n <= 0); 1029216#L26 call #t~ret0 := fact(~n - 1);< 1029226#$Ultimate##0 ~n := #in~n; 1030518#L25 assume !(~n <= 0); 1029230#L26 call #t~ret0 := fact(~n - 1);< 1029720#$Ultimate##0 ~n := #in~n; 1029344#L25 assume !(~n <= 0); 1029256#L26 call #t~ret0 := fact(~n - 1);< 1029257#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029631#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029614#factFINAL assume true; 1029464#factEXIT >#68#return; 1028960#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1029097#$Ultimate##0 ~n := #in~n; 1029762#L25 assume !(~n <= 0); 1029116#L26 call #t~ret0 := fact(~n - 1);< 1029223#$Ultimate##0 ~n := #in~n; 1029264#L25 assume !(~n <= 0); 1029119#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030092#factFINAL assume true; 1029734#factEXIT >#70#return; 1029682#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1030003#$Ultimate##0 ~n := #in~n; 1030254#L25 assume !(~n <= 0); 1029229#L26 call #t~ret0 := fact(~n - 1);< 1030249#$Ultimate##0 ~n := #in~n; 1030248#L25 assume ~n <= 0;#res := 1; 1030056#factFINAL assume true; 1029715#factEXIT >#66#return; 1029713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029709#factFINAL assume true; 1029679#factEXIT >#72#return; 1029685#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1030287#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1030286#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1030285#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1030284#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029469#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029481#$Ultimate##0 ~n := #in~n; 1029674#L25 assume !(~n <= 0); 1029658#L26 call #t~ret0 := fact(~n - 1);< 1029664#$Ultimate##0 ~n := #in~n; 1030524#L25 assume !(~n <= 0); 1029189#L26 call #t~ret0 := fact(~n - 1);< 1029206#$Ultimate##0 ~n := #in~n; 1030521#L25 assume !(~n <= 0); 1029216#L26 call #t~ret0 := fact(~n - 1);< 1029226#$Ultimate##0 ~n := #in~n; 1030518#L25 assume !(~n <= 0); 1029230#L26 call #t~ret0 := fact(~n - 1);< 1029720#$Ultimate##0 ~n := #in~n; 1029344#L25 assume !(~n <= 0); 1029256#L26 call #t~ret0 := fact(~n - 1);< 1029257#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029631#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029614#factFINAL assume true; 1029464#factEXIT >#68#return; 1029024#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1029097#$Ultimate##0 ~n := #in~n; 1029762#L25 assume !(~n <= 0); 1029116#L26 call #t~ret0 := fact(~n - 1);< 1029223#$Ultimate##0 ~n := #in~n; 1029264#L25 assume !(~n <= 0); 1029119#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029098#factFINAL assume true; 1028930#factEXIT >#70#return; 1028915#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1030001#$Ultimate##0 ~n := #in~n; 1030002#L25 assume ~n <= 0;#res := 1; 1028927#factFINAL assume true; 1028860#factEXIT >#72#return; 1028919#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1030647#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1030645#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1030643#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1030641#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1030051#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1030371#$Ultimate##0 ~n := #in~n; 1030369#L25 assume !(~n <= 0); 1030270#L26 call #t~ret0 := fact(~n - 1);< 1030368#$Ultimate##0 ~n := #in~n; 1030367#L25 assume !(~n <= 0); 1030269#L26 call #t~ret0 := fact(~n - 1);< 1030366#$Ultimate##0 ~n := #in~n; 1030364#L25 assume !(~n <= 0); 1030268#L26 call #t~ret0 := fact(~n - 1);< 1030360#$Ultimate##0 ~n := #in~n; 1030359#L25 assume !(~n <= 0); 1030266#L26 call #t~ret0 := fact(~n - 1);< 1030340#$Ultimate##0 ~n := #in~n; 1030352#L25 assume !(~n <= 0); 1030264#L26 call #t~ret0 := fact(~n - 1);< 1030351#$Ultimate##0 ~n := #in~n; 1030352#L25 assume !(~n <= 0); 1030264#L26 call #t~ret0 := fact(~n - 1);< 1030351#$Ultimate##0 ~n := #in~n; 1030352#L25 assume !(~n <= 0); 1030264#L26 call #t~ret0 := fact(~n - 1);< 1030351#$Ultimate##0 ~n := #in~n; 1030352#L25 assume !(~n <= 0); 1030264#L26 call #t~ret0 := fact(~n - 1);< 1030351#$Ultimate##0 ~n := #in~n; 1030355#L25 assume ~n <= 0;#res := 1; 1030354#factFINAL assume true; 1030350#factEXIT >#66#return; 1030349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030347#factFINAL assume true; 1030338#factEXIT >#66#return; 1030336#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030334#factFINAL assume true; 1030329#factEXIT >#66#return; 1030328#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030327#factFINAL assume true; 1030321#factEXIT >#66#return; 1030320#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030315#factFINAL assume true; 1030306#factEXIT >#66#return; 1030305#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030301#factFINAL assume true; 1030289#factEXIT >#66#return; 1030291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030544#factFINAL assume true; 1030542#factEXIT >#66#return; 1030273#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030723#factFINAL assume true; 1030259#factEXIT >#66#return; 1030258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030157#factFINAL assume true; 1030143#factEXIT >#74#return; 1030042#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1030141#$Ultimate##0 ~n := #in~n; 1030358#L25 assume !(~n <= 0); 1030260#L26 call #t~ret0 := fact(~n - 1);< 1030353#$Ultimate##0 ~n := #in~n; 1030352#L25 assume !(~n <= 0); 1030264#L26 call #t~ret0 := fact(~n - 1);< 1030351#$Ultimate##0 ~n := #in~n; 1030352#L25 assume !(~n <= 0); 1030264#L26 call #t~ret0 := fact(~n - 1);< 1030351#$Ultimate##0 ~n := #in~n; 1030352#L25 assume !(~n <= 0); 1030264#L26 call #t~ret0 := fact(~n - 1);< 1030351#$Ultimate##0 ~n := #in~n; 1030352#L25 assume !(~n <= 0); 1030264#L26 call #t~ret0 := fact(~n - 1);< 1030351#$Ultimate##0 ~n := #in~n; 1030352#L25 assume !(~n <= 0); 1030264#L26 call #t~ret0 := fact(~n - 1);< 1030351#$Ultimate##0 ~n := #in~n; 1030355#L25 assume ~n <= 0;#res := 1; 1030354#factFINAL assume true; 1030350#factEXIT >#66#return; 1030349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030347#factFINAL assume true; 1030338#factEXIT >#66#return; 1030336#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030334#factFINAL assume true; 1030329#factEXIT >#66#return; 1030328#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030327#factFINAL assume true; 1030321#factEXIT >#66#return; 1030320#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030315#factFINAL assume true; 1030306#factEXIT >#66#return; 1030305#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030301#factFINAL assume true; 1030289#factEXIT >#66#return; 1030288#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030282#factFINAL assume true; 1030140#factEXIT >#76#return; 1029901#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1030026#$Ultimate##0 ~n := #in~n; 1030150#L25 assume !(~n <= 0); 1030145#L26 call #t~ret0 := fact(~n - 1);< 1030147#$Ultimate##0 ~n := #in~n; 1030154#L25 assume ~n <= 0;#res := 1; 1030152#factFINAL assume true; 1030144#factEXIT >#66#return; 1030142#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030138#factFINAL assume true; 1029898#factEXIT >#78#return; 1029905#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1032494#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1032490#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1032482#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1030771#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1029889#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1029887#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1029885#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029420#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029419#$Ultimate##0 ~n := #in~n; 1029422#L25 assume !(~n <= 0); 1029363#L26 call #t~ret0 := fact(~n - 1);< 1029369#$Ultimate##0 ~n := #in~n; 1029367#L25 assume !(~n <= 0); 1029107#L26 call #t~ret0 := fact(~n - 1);< 1029357#$Ultimate##0 ~n := #in~n; 1029356#L25 assume !(~n <= 0); 1029106#L26 call #t~ret0 := fact(~n - 1);< 1029355#$Ultimate##0 ~n := #in~n; 1029354#L25 assume !(~n <= 0); 1029105#L26 call #t~ret0 := fact(~n - 1);< 1029352#$Ultimate##0 ~n := #in~n; 1029343#L25 assume !(~n <= 0); 1029104#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029790#factFINAL assume true; 1029651#factEXIT >#66#return; 1029652#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030136#factFINAL assume true; 1029881#factEXIT >#68#return; 1029873#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1029880#$Ultimate##0 ~n := #in~n; 1030375#L25 assume ~n <= 0;#res := 1; 1030131#factFINAL assume true; 1029867#factEXIT >#70#return; 1029373#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1029424#$Ultimate##0 ~n := #in~n; 1029418#L25 assume !(~n <= 0); 1029362#L26 call #t~ret0 := fact(~n - 1);< 1029369#$Ultimate##0 ~n := #in~n; 1029367#L25 assume !(~n <= 0); 1029107#L26 call #t~ret0 := fact(~n - 1);< 1029357#$Ultimate##0 ~n := #in~n; 1029356#L25 assume !(~n <= 0); 1029106#L26 call #t~ret0 := fact(~n - 1);< 1029355#$Ultimate##0 ~n := #in~n; 1029354#L25 assume !(~n <= 0); 1029105#L26 call #t~ret0 := fact(~n - 1);< 1029352#$Ultimate##0 ~n := #in~n; 1029343#L25 assume !(~n <= 0); 1029104#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030601#factFINAL assume true; 1029857#factEXIT >#72#return; 1029856#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1029855#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1029854#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1029853#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1029852#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029534#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029642#$Ultimate##0 ~n := #in~n; 1029641#L25 assume !(~n <= 0); 1029305#L26 call #t~ret0 := fact(~n - 1);< 1029331#$Ultimate##0 ~n := #in~n; 1029328#L25 assume !(~n <= 0); 1029127#L26 call #t~ret0 := fact(~n - 1);< 1029293#$Ultimate##0 ~n := #in~n; 1029290#L25 assume !(~n <= 0); 1029120#L26 call #t~ret0 := fact(~n - 1);< 1029276#$Ultimate##0 ~n := #in~n; 1029274#L25 assume !(~n <= 0); 1029126#L26 call #t~ret0 := fact(~n - 1);< 1029271#$Ultimate##0 ~n := #in~n; 1029267#L25 assume !(~n <= 0); 1029122#L26 call #t~ret0 := fact(~n - 1);< 1029223#$Ultimate##0 ~n := #in~n; 1029264#L25 assume !(~n <= 0); 1029119#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029790#factFINAL assume true; 1029651#factEXIT >#66#return; 1029653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030068#factFINAL assume true; 1029722#factEXIT >#68#return; 1028881#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1029711#$Ultimate##0 ~n := #in~n; 1030000#L25 assume !(~n <= 0); 1029716#L26 call #t~ret0 := fact(~n - 1);< 1029719#$Ultimate##0 ~n := #in~n; 1030248#L25 assume ~n <= 0;#res := 1; 1030056#factFINAL assume true; 1029715#factEXIT >#66#return; 1029713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029709#factFINAL assume true; 1029679#factEXIT >#70#return; 1029281#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1029292#$Ultimate##0 ~n := #in~n; 1029289#L25 assume !(~n <= 0); 1029132#L26 call #t~ret0 := fact(~n - 1);< 1029276#$Ultimate##0 ~n := #in~n; 1029274#L25 assume !(~n <= 0); 1029126#L26 call #t~ret0 := fact(~n - 1);< 1029271#$Ultimate##0 ~n := #in~n; 1029267#L25 assume !(~n <= 0); 1029122#L26 call #t~ret0 := fact(~n - 1);< 1029223#$Ultimate##0 ~n := #in~n; 1029264#L25 assume !(~n <= 0); 1029119#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029790#factFINAL assume true; 1029651#factEXIT >#66#return; 1029645#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029620#factFINAL assume true; 1029509#factEXIT >#72#return; 1029511#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1029839#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1029838#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1029837#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1029836#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029542#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029642#$Ultimate##0 ~n := #in~n; 1029641#L25 assume !(~n <= 0); 1029305#L26 call #t~ret0 := fact(~n - 1);< 1029331#$Ultimate##0 ~n := #in~n; 1029328#L25 assume !(~n <= 0); 1029127#L26 call #t~ret0 := fact(~n - 1);< 1029293#$Ultimate##0 ~n := #in~n; 1029290#L25 assume !(~n <= 0); 1029120#L26 call #t~ret0 := fact(~n - 1);< 1029276#$Ultimate##0 ~n := #in~n; 1029274#L25 assume !(~n <= 0); 1029126#L26 call #t~ret0 := fact(~n - 1);< 1029271#$Ultimate##0 ~n := #in~n; 1029267#L25 assume !(~n <= 0); 1029122#L26 call #t~ret0 := fact(~n - 1);< 1029223#$Ultimate##0 ~n := #in~n; 1029264#L25 assume !(~n <= 0); 1029119#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029790#factFINAL assume true; 1029651#factEXIT >#66#return; 1029653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030068#factFINAL assume true; 1029722#factEXIT >#68#return; 1028872#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1028926#$Ultimate##0 ~n := #in~n; 1028928#L25 assume !(~n <= 0); 1028929#L26 call #t~ret0 := fact(~n - 1);< 1029242#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029236#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029616#factFINAL assume true; 1029482#factEXIT >#70#return; 1028964#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1029273#$Ultimate##0 ~n := #in~n; 1029269#L25 assume !(~n <= 0); 1029135#L26 call #t~ret0 := fact(~n - 1);< 1029223#$Ultimate##0 ~n := #in~n; 1029264#L25 assume !(~n <= 0); 1029119#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030092#factFINAL assume true; 1029734#factEXIT >#72#return; 1029082#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1029824#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1029822#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1029821#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1029820#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029566#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029642#$Ultimate##0 ~n := #in~n; 1029641#L25 assume !(~n <= 0); 1029305#L26 call #t~ret0 := fact(~n - 1);< 1029331#$Ultimate##0 ~n := #in~n; 1029328#L25 assume !(~n <= 0); 1029127#L26 call #t~ret0 := fact(~n - 1);< 1029293#$Ultimate##0 ~n := #in~n; 1029290#L25 assume !(~n <= 0); 1029120#L26 call #t~ret0 := fact(~n - 1);< 1029276#$Ultimate##0 ~n := #in~n; 1029274#L25 assume !(~n <= 0); 1029126#L26 call #t~ret0 := fact(~n - 1);< 1029271#$Ultimate##0 ~n := #in~n; 1029267#L25 assume !(~n <= 0); 1029122#L26 call #t~ret0 := fact(~n - 1);< 1029223#$Ultimate##0 ~n := #in~n; 1029264#L25 assume !(~n <= 0); 1029119#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029790#factFINAL assume true; 1029651#factEXIT >#66#return; 1029653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030068#factFINAL assume true; 1029722#factEXIT >#68#return; 1028905#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1028926#$Ultimate##0 ~n := #in~n; 1028928#L25 assume !(~n <= 0); 1028929#L26 call #t~ret0 := fact(~n - 1);< 1029242#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029461#factFINAL assume true; 1029438#factEXIT >#70#return; 1028950#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1029462#$Ultimate##0 ~n := #in~n; 1029633#L25 assume !(~n <= 0); 1029110#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030092#factFINAL assume true; 1029734#factEXIT >#72#return; 1029740#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1029815#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1029814#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1029812#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1029810#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029598#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029642#$Ultimate##0 ~n := #in~n; 1029641#L25 assume !(~n <= 0); 1029305#L26 call #t~ret0 := fact(~n - 1);< 1029331#$Ultimate##0 ~n := #in~n; 1029328#L25 assume !(~n <= 0); 1029127#L26 call #t~ret0 := fact(~n - 1);< 1029293#$Ultimate##0 ~n := #in~n; 1029290#L25 assume !(~n <= 0); 1029120#L26 call #t~ret0 := fact(~n - 1);< 1029276#$Ultimate##0 ~n := #in~n; 1029274#L25 assume !(~n <= 0); 1029126#L26 call #t~ret0 := fact(~n - 1);< 1029271#$Ultimate##0 ~n := #in~n; 1029267#L25 assume !(~n <= 0); 1029122#L26 call #t~ret0 := fact(~n - 1);< 1029223#$Ultimate##0 ~n := #in~n; 1029264#L25 assume !(~n <= 0); 1029119#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029790#factFINAL assume true; 1029651#factEXIT >#66#return; 1029653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030068#factFINAL assume true; 1029722#factEXIT >#68#return; 1028867#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1028926#$Ultimate##0 ~n := #in~n; 1028928#L25 assume !(~n <= 0); 1028929#L26 call #t~ret0 := fact(~n - 1);< 1029242#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030092#factFINAL assume true; 1029734#factEXIT >#70#return; 1029063#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1029462#$Ultimate##0 ~n := #in~n; 1029633#L25 assume !(~n <= 0); 1029110#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029461#factFINAL assume true; 1029438#factEXIT >#72#return; 1029459#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1030088#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1030086#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1030085#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1030084#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029572#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029642#$Ultimate##0 ~n := #in~n; 1029641#L25 assume !(~n <= 0); 1029305#L26 call #t~ret0 := fact(~n - 1);< 1029331#$Ultimate##0 ~n := #in~n; 1029328#L25 assume !(~n <= 0); 1029127#L26 call #t~ret0 := fact(~n - 1);< 1029293#$Ultimate##0 ~n := #in~n; 1029290#L25 assume !(~n <= 0); 1029120#L26 call #t~ret0 := fact(~n - 1);< 1029276#$Ultimate##0 ~n := #in~n; 1029274#L25 assume !(~n <= 0); 1029126#L26 call #t~ret0 := fact(~n - 1);< 1029271#$Ultimate##0 ~n := #in~n; 1029267#L25 assume !(~n <= 0); 1029122#L26 call #t~ret0 := fact(~n - 1);< 1029223#$Ultimate##0 ~n := #in~n; 1029264#L25 assume !(~n <= 0); 1029119#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029790#factFINAL assume true; 1029651#factEXIT >#66#return; 1029653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030068#factFINAL assume true; 1029722#factEXIT >#68#return; 1028861#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1028926#$Ultimate##0 ~n := #in~n; 1028928#L25 assume !(~n <= 0); 1028929#L26 call #t~ret0 := fact(~n - 1);< 1029242#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029098#factFINAL assume true; 1028930#factEXIT >#70#return; 1029042#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1029462#$Ultimate##0 ~n := #in~n; 1029633#L25 assume !(~n <= 0); 1029110#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029236#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029616#factFINAL assume true; 1029482#factEXIT >#72#return; 1029487#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1030081#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1030080#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1030079#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1030078#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029581#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029642#$Ultimate##0 ~n := #in~n; 1029641#L25 assume !(~n <= 0); 1029305#L26 call #t~ret0 := fact(~n - 1);< 1029331#$Ultimate##0 ~n := #in~n; 1029328#L25 assume !(~n <= 0); 1029127#L26 call #t~ret0 := fact(~n - 1);< 1029293#$Ultimate##0 ~n := #in~n; 1029290#L25 assume !(~n <= 0); 1029120#L26 call #t~ret0 := fact(~n - 1);< 1029276#$Ultimate##0 ~n := #in~n; 1029274#L25 assume !(~n <= 0); 1029126#L26 call #t~ret0 := fact(~n - 1);< 1029271#$Ultimate##0 ~n := #in~n; 1029267#L25 assume !(~n <= 0); 1029122#L26 call #t~ret0 := fact(~n - 1);< 1029223#$Ultimate##0 ~n := #in~n; 1029264#L25 assume !(~n <= 0); 1029119#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029790#factFINAL assume true; 1029651#factEXIT >#66#return; 1029653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030068#factFINAL assume true; 1029722#factEXIT >#68#return; 1028888#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1028926#$Ultimate##0 ~n := #in~n; 1028928#L25 assume !(~n <= 0); 1028929#L26 call #t~ret0 := fact(~n - 1);< 1029242#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029707#factFINAL assume true; 1029699#factEXIT >#70#return; 1029018#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1029099#$Ultimate##0 ~n := #in~n; 1030054#L25 assume !(~n <= 0); 1028929#L26 call #t~ret0 := fact(~n - 1);< 1029242#$Ultimate##0 ~n := #in~n; 1030248#L25 assume ~n <= 0;#res := 1; 1030056#factFINAL assume true; 1029715#factEXIT >#66#return; 1029713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029709#factFINAL assume true; 1029679#factEXIT >#72#return; 1029690#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1030073#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1030071#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1030070#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1030069#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029528#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029642#$Ultimate##0 ~n := #in~n; 1029641#L25 assume !(~n <= 0); 1029305#L26 call #t~ret0 := fact(~n - 1);< 1029331#$Ultimate##0 ~n := #in~n; 1029328#L25 assume !(~n <= 0); 1029127#L26 call #t~ret0 := fact(~n - 1);< 1029293#$Ultimate##0 ~n := #in~n; 1029290#L25 assume !(~n <= 0); 1029120#L26 call #t~ret0 := fact(~n - 1);< 1029276#$Ultimate##0 ~n := #in~n; 1029274#L25 assume !(~n <= 0); 1029126#L26 call #t~ret0 := fact(~n - 1);< 1029271#$Ultimate##0 ~n := #in~n; 1029267#L25 assume !(~n <= 0); 1029122#L26 call #t~ret0 := fact(~n - 1);< 1029223#$Ultimate##0 ~n := #in~n; 1029264#L25 assume !(~n <= 0); 1029119#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029790#factFINAL assume true; 1029651#factEXIT >#66#return; 1029653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030068#factFINAL assume true; 1029722#factEXIT >#68#return; 1029399#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1029404#$Ultimate##0 ~n := #in~n; 1029403#L25 assume !(~n <= 0); 1029365#L26 call #t~ret0 := fact(~n - 1);< 1029369#$Ultimate##0 ~n := #in~n; 1029367#L25 assume !(~n <= 0); 1029107#L26 call #t~ret0 := fact(~n - 1);< 1029357#$Ultimate##0 ~n := #in~n; 1029356#L25 assume !(~n <= 0); 1029106#L26 call #t~ret0 := fact(~n - 1);< 1029355#$Ultimate##0 ~n := #in~n; 1029354#L25 assume !(~n <= 0); 1029105#L26 call #t~ret0 := fact(~n - 1);< 1029352#$Ultimate##0 ~n := #in~n; 1029343#L25 assume !(~n <= 0); 1029104#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029609#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029516#factFINAL assume true; 1029514#factEXIT >#70#return; 1028901#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1028926#$Ultimate##0 ~n := #in~n; 1028928#L25 assume ~n <= 0;#res := 1; 1028927#factFINAL assume true; 1028860#factEXIT >#72#return; 1028801#L30-3 [2023-02-18 08:59:14,033 INFO L750 eck$LassoCheckResult]: Loop: 1028801#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1028802#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1028819#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1030610#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1030148#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1030045#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1028752#$Ultimate##0 ~n := #in~n; 1030319#L25 assume !(~n <= 0); 1030267#L26 call #t~ret0 := fact(~n - 1);< 1030274#$Ultimate##0 ~n := #in~n; 1030615#L25 assume !(~n <= 0); 1030265#L26 call #t~ret0 := fact(~n - 1);< 1030302#$Ultimate##0 ~n := #in~n; 1030616#L25 assume !(~n <= 0); 1030263#L26 call #t~ret0 := fact(~n - 1);< 1030309#$Ultimate##0 ~n := #in~n; 1030617#L25 assume !(~n <= 0); 1030262#L26 call #t~ret0 := fact(~n - 1);< 1030324#$Ultimate##0 ~n := #in~n; 1030376#L25 assume !(~n <= 0); 1030261#L26 call #t~ret0 := fact(~n - 1);< 1030331#$Ultimate##0 ~n := #in~n; 1030378#L25 assume !(~n <= 0); 1030272#L26 call #t~ret0 := fact(~n - 1);< 1030340#$Ultimate##0 ~n := #in~n; 1030352#L25 assume !(~n <= 0); 1030264#L26 call #t~ret0 := fact(~n - 1);< 1030351#$Ultimate##0 ~n := #in~n; 1030355#L25 assume ~n <= 0;#res := 1; 1030354#factFINAL assume true; 1030350#factEXIT >#66#return; 1030349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030347#factFINAL assume true; 1030338#factEXIT >#66#return; 1030336#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030334#factFINAL assume true; 1030329#factEXIT >#66#return; 1030328#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030327#factFINAL assume true; 1030321#factEXIT >#66#return; 1030320#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030315#factFINAL assume true; 1030306#factEXIT >#66#return; 1030305#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030301#factFINAL assume true; 1030289#factEXIT >#66#return; 1030291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030544#factFINAL assume true; 1030542#factEXIT >#66#return; 1030540#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030539#factFINAL assume true; 1030038#factEXIT >#74#return; 1029991#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1030034#$Ultimate##0 ~n := #in~n; 1030295#L25 assume !(~n <= 0); 1030290#L26 call #t~ret0 := fact(~n - 1);< 1030293#$Ultimate##0 ~n := #in~n; 1030311#L25 assume !(~n <= 0); 1030307#L26 call #t~ret0 := fact(~n - 1);< 1030310#$Ultimate##0 ~n := #in~n; 1030326#L25 assume !(~n <= 0); 1030322#L26 call #t~ret0 := fact(~n - 1);< 1030325#$Ultimate##0 ~n := #in~n; 1030333#L25 assume !(~n <= 0); 1030330#L26 call #t~ret0 := fact(~n - 1);< 1030332#$Ultimate##0 ~n := #in~n; 1030343#L25 assume !(~n <= 0); 1028793#L26 call #t~ret0 := fact(~n - 1);< 1030341#$Ultimate##0 ~n := #in~n; 1030483#L25 assume !(~n <= 0); 1028792#L26 call #t~ret0 := fact(~n - 1);< 1028794#$Ultimate##0 ~n := #in~n; 1030355#L25 assume ~n <= 0;#res := 1; 1030354#factFINAL assume true; 1030350#factEXIT >#66#return; 1030349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030347#factFINAL assume true; 1030338#factEXIT >#66#return; 1030336#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030334#factFINAL assume true; 1030329#factEXIT >#66#return; 1030328#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030327#factFINAL assume true; 1030321#factEXIT >#66#return; 1030320#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030315#factFINAL assume true; 1030306#factEXIT >#66#return; 1030305#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030301#factFINAL assume true; 1030289#factEXIT >#66#return; 1030288#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030282#factFINAL assume true; 1030140#factEXIT >#76#return; 1029899#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1030026#$Ultimate##0 ~n := #in~n; 1030150#L25 assume !(~n <= 0); 1030145#L26 call #t~ret0 := fact(~n - 1);< 1030147#$Ultimate##0 ~n := #in~n; 1030154#L25 assume ~n <= 0;#res := 1; 1030152#factFINAL assume true; 1030144#factEXIT >#66#return; 1030142#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030138#factFINAL assume true; 1029898#factEXIT >#78#return; 1029904#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1030431#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1030429#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1030427#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1030425#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1030423#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1030422#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1030421#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1030006#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1030011#$Ultimate##0 ~n := #in~n; 1030009#L25 assume !(~n <= 0); 1029624#L26 call #t~ret0 := fact(~n - 1);< 1029639#$Ultimate##0 ~n := #in~n; 1030005#L25 assume !(~n <= 0); 1029124#L26 call #t~ret0 := fact(~n - 1);< 1029666#$Ultimate##0 ~n := #in~n; 1030525#L25 assume !(~n <= 0); 1029659#L26 call #t~ret0 := fact(~n - 1);< 1029664#$Ultimate##0 ~n := #in~n; 1030524#L25 assume !(~n <= 0); 1029189#L26 call #t~ret0 := fact(~n - 1);< 1029206#$Ultimate##0 ~n := #in~n; 1030521#L25 assume !(~n <= 0); 1029216#L26 call #t~ret0 := fact(~n - 1);< 1029226#$Ultimate##0 ~n := #in~n; 1030518#L25 assume !(~n <= 0); 1029230#L26 call #t~ret0 := fact(~n - 1);< 1029720#$Ultimate##0 ~n := #in~n; 1029344#L25 assume !(~n <= 0); 1029256#L26 call #t~ret0 := fact(~n - 1);< 1029257#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029627#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030452#factFINAL assume true; 1030406#factEXIT >#68#return; 1029868#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1029880#$Ultimate##0 ~n := #in~n; 1030375#L25 assume ~n <= 0;#res := 1; 1030131#factFINAL assume true; 1029867#factEXIT >#70#return; 1029370#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1029424#$Ultimate##0 ~n := #in~n; 1029418#L25 assume !(~n <= 0); 1029362#L26 call #t~ret0 := fact(~n - 1);< 1029369#$Ultimate##0 ~n := #in~n; 1029367#L25 assume !(~n <= 0); 1029107#L26 call #t~ret0 := fact(~n - 1);< 1029357#$Ultimate##0 ~n := #in~n; 1029356#L25 assume !(~n <= 0); 1029106#L26 call #t~ret0 := fact(~n - 1);< 1029355#$Ultimate##0 ~n := #in~n; 1029354#L25 assume !(~n <= 0); 1029105#L26 call #t~ret0 := fact(~n - 1);< 1029352#$Ultimate##0 ~n := #in~n; 1029343#L25 assume !(~n <= 0); 1029104#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030601#factFINAL assume true; 1029857#factEXIT >#72#return; 1029860#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1030401#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1030400#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1030399#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1030398#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029533#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029608#$Ultimate##0 ~n := #in~n; 1029644#L25 assume !(~n <= 0); 1029623#L26 call #t~ret0 := fact(~n - 1);< 1029639#$Ultimate##0 ~n := #in~n; 1030005#L25 assume !(~n <= 0); 1029124#L26 call #t~ret0 := fact(~n - 1);< 1029666#$Ultimate##0 ~n := #in~n; 1030525#L25 assume !(~n <= 0); 1029659#L26 call #t~ret0 := fact(~n - 1);< 1029664#$Ultimate##0 ~n := #in~n; 1030524#L25 assume !(~n <= 0); 1029189#L26 call #t~ret0 := fact(~n - 1);< 1029206#$Ultimate##0 ~n := #in~n; 1030521#L25 assume !(~n <= 0); 1029216#L26 call #t~ret0 := fact(~n - 1);< 1029226#$Ultimate##0 ~n := #in~n; 1030518#L25 assume !(~n <= 0); 1029230#L26 call #t~ret0 := fact(~n - 1);< 1029720#$Ultimate##0 ~n := #in~n; 1029344#L25 assume !(~n <= 0); 1029256#L26 call #t~ret0 := fact(~n - 1);< 1029257#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029615#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029611#factFINAL assume true; 1029517#factEXIT >#68#return; 1029606#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1029710#$Ultimate##0 ~n := #in~n; 1029999#L25 assume !(~n <= 0); 1029716#L26 call #t~ret0 := fact(~n - 1);< 1029719#$Ultimate##0 ~n := #in~n; 1030248#L25 assume ~n <= 0;#res := 1; 1030056#factFINAL assume true; 1029715#factEXIT >#66#return; 1029713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029709#factFINAL assume true; 1029679#factEXIT >#70#return; 1029308#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1029416#$Ultimate##0 ~n := #in~n; 1029417#L25 assume !(~n <= 0); 1029103#L26 call #t~ret0 := fact(~n - 1);< 1029294#$Ultimate##0 ~n := #in~n; 1029291#L25 assume !(~n <= 0); 1029183#L26 call #t~ret0 := fact(~n - 1);< 1029277#$Ultimate##0 ~n := #in~n; 1029275#L25 assume !(~n <= 0); 1029182#L26 call #t~ret0 := fact(~n - 1);< 1029272#$Ultimate##0 ~n := #in~n; 1029268#L25 assume !(~n <= 0); 1029212#L26 call #t~ret0 := fact(~n - 1);< 1029240#$Ultimate##0 ~n := #in~n; 1029265#L25 assume !(~n <= 0); 1029231#L26 call #t~ret0 := fact(~n - 1);< 1029259#$Ultimate##0 ~n := #in~n; 1029344#L25 assume !(~n <= 0); 1029256#L26 call #t~ret0 := fact(~n - 1);< 1029257#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029707#factFINAL assume true; 1029699#factEXIT >#72#return; 1029510#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1030111#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1030110#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1029792#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1029791#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029541#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029608#$Ultimate##0 ~n := #in~n; 1029644#L25 assume !(~n <= 0); 1029623#L26 call #t~ret0 := fact(~n - 1);< 1029639#$Ultimate##0 ~n := #in~n; 1030005#L25 assume !(~n <= 0); 1029124#L26 call #t~ret0 := fact(~n - 1);< 1029666#$Ultimate##0 ~n := #in~n; 1030525#L25 assume !(~n <= 0); 1029659#L26 call #t~ret0 := fact(~n - 1);< 1029664#$Ultimate##0 ~n := #in~n; 1030524#L25 assume !(~n <= 0); 1029189#L26 call #t~ret0 := fact(~n - 1);< 1029206#$Ultimate##0 ~n := #in~n; 1030521#L25 assume !(~n <= 0); 1029216#L26 call #t~ret0 := fact(~n - 1);< 1029226#$Ultimate##0 ~n := #in~n; 1030518#L25 assume !(~n <= 0); 1029230#L26 call #t~ret0 := fact(~n - 1);< 1029720#$Ultimate##0 ~n := #in~n; 1029344#L25 assume !(~n <= 0); 1029256#L26 call #t~ret0 := fact(~n - 1);< 1029257#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029615#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029611#factFINAL assume true; 1029517#factEXIT >#68#return; 1029031#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1029099#$Ultimate##0 ~n := #in~n; 1030054#L25 assume !(~n <= 0); 1028929#L26 call #t~ret0 := fact(~n - 1);< 1029242#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029236#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029616#factFINAL assume true; 1029482#factEXIT >#70#return; 1028965#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1029100#$Ultimate##0 ~n := #in~n; 1029802#L25 assume !(~n <= 0); 1029134#L26 call #t~ret0 := fact(~n - 1);< 1029200#$Ultimate##0 ~n := #in~n; 1029341#L25 assume !(~n <= 0); 1029190#L26 call #t~ret0 := fact(~n - 1);< 1029339#$Ultimate##0 ~n := #in~n; 1029338#L25 assume !(~n <= 0); 1029188#L26 call #t~ret0 := fact(~n - 1);< 1029238#$Ultimate##0 ~n := #in~n; 1029266#L25 assume !(~n <= 0); 1029211#L26 call #t~ret0 := fact(~n - 1);< 1029260#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030092#factFINAL assume true; 1029734#factEXIT >#72#return; 1029080#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1030516#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1030515#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1030457#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1030456#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029567#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029608#$Ultimate##0 ~n := #in~n; 1029644#L25 assume !(~n <= 0); 1029623#L26 call #t~ret0 := fact(~n - 1);< 1029639#$Ultimate##0 ~n := #in~n; 1030005#L25 assume !(~n <= 0); 1029124#L26 call #t~ret0 := fact(~n - 1);< 1029666#$Ultimate##0 ~n := #in~n; 1030525#L25 assume !(~n <= 0); 1029659#L26 call #t~ret0 := fact(~n - 1);< 1029664#$Ultimate##0 ~n := #in~n; 1030524#L25 assume !(~n <= 0); 1029189#L26 call #t~ret0 := fact(~n - 1);< 1029206#$Ultimate##0 ~n := #in~n; 1030521#L25 assume !(~n <= 0); 1029216#L26 call #t~ret0 := fact(~n - 1);< 1029226#$Ultimate##0 ~n := #in~n; 1030518#L25 assume !(~n <= 0); 1029230#L26 call #t~ret0 := fact(~n - 1);< 1029720#$Ultimate##0 ~n := #in~n; 1029344#L25 assume !(~n <= 0); 1029256#L26 call #t~ret0 := fact(~n - 1);< 1029257#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029615#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029611#factFINAL assume true; 1029517#factEXIT >#68#return; 1029050#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1029099#$Ultimate##0 ~n := #in~n; 1030054#L25 assume !(~n <= 0); 1028929#L26 call #t~ret0 := fact(~n - 1);< 1029242#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029461#factFINAL assume true; 1029438#factEXIT >#70#return; 1028963#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1029413#$Ultimate##0 ~n := #in~n; 1029410#L25 assume !(~n <= 0); 1029125#L26 call #t~ret0 := fact(~n - 1);< 1029353#$Ultimate##0 ~n := #in~n; 1029342#L25 assume !(~n <= 0); 1029185#L26 call #t~ret0 := fact(~n - 1);< 1029340#$Ultimate##0 ~n := #in~n; 1029338#L25 assume !(~n <= 0); 1029188#L26 call #t~ret0 := fact(~n - 1);< 1029238#$Ultimate##0 ~n := #in~n; 1029266#L25 assume !(~n <= 0); 1029211#L26 call #t~ret0 := fact(~n - 1);< 1029260#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030092#factFINAL assume true; 1029734#factEXIT >#72#return; 1029743#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1030414#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1030413#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1030412#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1030411#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029597#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029608#$Ultimate##0 ~n := #in~n; 1029644#L25 assume !(~n <= 0); 1029623#L26 call #t~ret0 := fact(~n - 1);< 1029639#$Ultimate##0 ~n := #in~n; 1030005#L25 assume !(~n <= 0); 1029124#L26 call #t~ret0 := fact(~n - 1);< 1029666#$Ultimate##0 ~n := #in~n; 1030525#L25 assume !(~n <= 0); 1029659#L26 call #t~ret0 := fact(~n - 1);< 1029664#$Ultimate##0 ~n := #in~n; 1030524#L25 assume !(~n <= 0); 1029189#L26 call #t~ret0 := fact(~n - 1);< 1029206#$Ultimate##0 ~n := #in~n; 1030521#L25 assume !(~n <= 0); 1029216#L26 call #t~ret0 := fact(~n - 1);< 1029226#$Ultimate##0 ~n := #in~n; 1030518#L25 assume !(~n <= 0); 1029230#L26 call #t~ret0 := fact(~n - 1);< 1029720#$Ultimate##0 ~n := #in~n; 1029344#L25 assume !(~n <= 0); 1029256#L26 call #t~ret0 := fact(~n - 1);< 1029257#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029615#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029611#factFINAL assume true; 1029517#factEXIT >#68#return; 1029038#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1029099#$Ultimate##0 ~n := #in~n; 1030054#L25 assume !(~n <= 0); 1028929#L26 call #t~ret0 := fact(~n - 1);< 1029242#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1030092#factFINAL assume true; 1029734#factEXIT >#70#return; 1029059#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1029413#$Ultimate##0 ~n := #in~n; 1029410#L25 assume !(~n <= 0); 1029125#L26 call #t~ret0 := fact(~n - 1);< 1029353#$Ultimate##0 ~n := #in~n; 1029342#L25 assume !(~n <= 0); 1029185#L26 call #t~ret0 := fact(~n - 1);< 1029340#$Ultimate##0 ~n := #in~n; 1029338#L25 assume !(~n <= 0); 1029188#L26 call #t~ret0 := fact(~n - 1);< 1029238#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029461#factFINAL assume true; 1029438#factEXIT >#72#return; 1029456#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1030405#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1030404#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1030403#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1030402#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029575#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029608#$Ultimate##0 ~n := #in~n; 1029644#L25 assume !(~n <= 0); 1029623#L26 call #t~ret0 := fact(~n - 1);< 1029639#$Ultimate##0 ~n := #in~n; 1030005#L25 assume !(~n <= 0); 1029124#L26 call #t~ret0 := fact(~n - 1);< 1029666#$Ultimate##0 ~n := #in~n; 1030525#L25 assume !(~n <= 0); 1029659#L26 call #t~ret0 := fact(~n - 1);< 1029664#$Ultimate##0 ~n := #in~n; 1030524#L25 assume !(~n <= 0); 1029189#L26 call #t~ret0 := fact(~n - 1);< 1029206#$Ultimate##0 ~n := #in~n; 1030521#L25 assume !(~n <= 0); 1029216#L26 call #t~ret0 := fact(~n - 1);< 1029226#$Ultimate##0 ~n := #in~n; 1030518#L25 assume !(~n <= 0); 1029230#L26 call #t~ret0 := fact(~n - 1);< 1029720#$Ultimate##0 ~n := #in~n; 1029344#L25 assume !(~n <= 0); 1029256#L26 call #t~ret0 := fact(~n - 1);< 1029257#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029615#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029611#factFINAL assume true; 1029517#factEXIT >#68#return; 1029016#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1029099#$Ultimate##0 ~n := #in~n; 1030054#L25 assume !(~n <= 0); 1028929#L26 call #t~ret0 := fact(~n - 1);< 1029242#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029098#factFINAL assume true; 1028930#factEXIT >#70#return; 1029036#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1029413#$Ultimate##0 ~n := #in~n; 1029410#L25 assume !(~n <= 0); 1029125#L26 call #t~ret0 := fact(~n - 1);< 1029353#$Ultimate##0 ~n := #in~n; 1029342#L25 assume !(~n <= 0); 1029185#L26 call #t~ret0 := fact(~n - 1);< 1029340#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029236#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029616#factFINAL assume true; 1029482#factEXIT >#72#return; 1029485#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1030388#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1030387#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1030386#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1030385#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029582#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029608#$Ultimate##0 ~n := #in~n; 1029644#L25 assume !(~n <= 0); 1029623#L26 call #t~ret0 := fact(~n - 1);< 1029639#$Ultimate##0 ~n := #in~n; 1030005#L25 assume !(~n <= 0); 1029124#L26 call #t~ret0 := fact(~n - 1);< 1029666#$Ultimate##0 ~n := #in~n; 1030525#L25 assume !(~n <= 0); 1029659#L26 call #t~ret0 := fact(~n - 1);< 1029664#$Ultimate##0 ~n := #in~n; 1030524#L25 assume !(~n <= 0); 1029189#L26 call #t~ret0 := fact(~n - 1);< 1029206#$Ultimate##0 ~n := #in~n; 1030521#L25 assume !(~n <= 0); 1029216#L26 call #t~ret0 := fact(~n - 1);< 1029226#$Ultimate##0 ~n := #in~n; 1030518#L25 assume !(~n <= 0); 1029230#L26 call #t~ret0 := fact(~n - 1);< 1029720#$Ultimate##0 ~n := #in~n; 1029344#L25 assume !(~n <= 0); 1029256#L26 call #t~ret0 := fact(~n - 1);< 1029257#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029615#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029611#factFINAL assume true; 1029517#factEXIT >#68#return; 1028973#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1029099#$Ultimate##0 ~n := #in~n; 1030054#L25 assume !(~n <= 0); 1028929#L26 call #t~ret0 := fact(~n - 1);< 1029242#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029707#factFINAL assume true; 1029699#factEXIT >#70#return; 1029407#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1029415#$Ultimate##0 ~n := #in~n; 1029412#L25 assume !(~n <= 0); 1029109#L26 call #t~ret0 := fact(~n - 1);< 1029409#$Ultimate##0 ~n := #in~n; 1030248#L25 assume ~n <= 0;#res := 1; 1030056#factFINAL assume true; 1029715#factEXIT >#66#return; 1029713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029709#factFINAL assume true; 1029679#factEXIT >#72#return; 1029697#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1030077#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1030076#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1030075#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1030074#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1029531#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1029608#$Ultimate##0 ~n := #in~n; 1029644#L25 assume !(~n <= 0); 1029623#L26 call #t~ret0 := fact(~n - 1);< 1029639#$Ultimate##0 ~n := #in~n; 1030005#L25 assume !(~n <= 0); 1029124#L26 call #t~ret0 := fact(~n - 1);< 1029666#$Ultimate##0 ~n := #in~n; 1030525#L25 assume !(~n <= 0); 1029659#L26 call #t~ret0 := fact(~n - 1);< 1029664#$Ultimate##0 ~n := #in~n; 1030524#L25 assume !(~n <= 0); 1029189#L26 call #t~ret0 := fact(~n - 1);< 1029206#$Ultimate##0 ~n := #in~n; 1030521#L25 assume !(~n <= 0); 1029216#L26 call #t~ret0 := fact(~n - 1);< 1029226#$Ultimate##0 ~n := #in~n; 1030518#L25 assume !(~n <= 0); 1029230#L26 call #t~ret0 := fact(~n - 1);< 1029720#$Ultimate##0 ~n := #in~n; 1029344#L25 assume !(~n <= 0); 1029256#L26 call #t~ret0 := fact(~n - 1);< 1029257#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029615#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029611#factFINAL assume true; 1029517#factEXIT >#68#return; 1029398#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1029404#$Ultimate##0 ~n := #in~n; 1029403#L25 assume !(~n <= 0); 1029365#L26 call #t~ret0 := fact(~n - 1);< 1029369#$Ultimate##0 ~n := #in~n; 1029367#L25 assume !(~n <= 0); 1029107#L26 call #t~ret0 := fact(~n - 1);< 1029357#$Ultimate##0 ~n := #in~n; 1029356#L25 assume !(~n <= 0); 1029106#L26 call #t~ret0 := fact(~n - 1);< 1029355#$Ultimate##0 ~n := #in~n; 1029354#L25 assume !(~n <= 0); 1029105#L26 call #t~ret0 := fact(~n - 1);< 1029352#$Ultimate##0 ~n := #in~n; 1029343#L25 assume !(~n <= 0); 1029104#L26 call #t~ret0 := fact(~n - 1);< 1029203#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029351#L25 assume !(~n <= 0); 1029118#L26 call #t~ret0 := fact(~n - 1);< 1029258#$Ultimate##0 ~n := #in~n; 1029263#L25 assume ~n <= 0;#res := 1; 1029262#factFINAL assume true; 1029255#factEXIT >#66#return; 1029253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029241#factFINAL assume true; 1029228#factEXIT >#66#return; 1029227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029222#factFINAL assume true; 1029208#factEXIT >#66#return; 1029207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029199#factFINAL assume true; 1029179#factEXIT >#66#return; 1029192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029669#factFINAL assume true; 1029657#factEXIT >#66#return; 1029178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029174#factFINAL assume true; 1029102#factEXIT >#66#return; 1029139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029648#factFINAL assume true; 1029622#factEXIT >#66#return; 1029609#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1029516#factFINAL assume true; 1029514#factEXIT >#70#return; 1028903#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1029414#$Ultimate##0 ~n := #in~n; 1029411#L25 assume ~n <= 0;#res := 1; 1028927#factFINAL assume true; 1028860#factEXIT >#72#return; 1028801#L30-3 [2023-02-18 08:59:14,033 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:59:14,033 INFO L85 PathProgramCache]: Analyzing trace with hash 1320327856, now seen corresponding path program 83 times [2023-02-18 08:59:14,033 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:59:14,033 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1503808989] [2023-02-18 08:59:14,034 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:59:14,034 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:59:14,070 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:59:14,071 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [178657957] [2023-02-18 08:59:14,071 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:59:14,071 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:59:14,071 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:14,075 INFO L229 MonitoredProcess]: Starting monitored process 291 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:59:14,075 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (291)] Waiting until timeout for monitored process [2023-02-18 08:59:15,140 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 24 check-sat command(s) [2023-02-18 08:59:15,140 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:59:15,144 INFO L263 TraceCheckSpWp]: Trace formula consists of 415 conjuncts, 39 conjunts are in the unsatisfiable core [2023-02-18 08:59:15,154 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:59:15,305 INFO L134 CoverageAnalysis]: Checked inductivity of 264974 backedges. 134479 proven. 567 refuted. 0 times theorem prover too weak. 129928 trivial. 0 not checked. [2023-02-18 08:59:15,305 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:59:15,970 INFO L134 CoverageAnalysis]: Checked inductivity of 264974 backedges. 16009 proven. 9491 refuted. 0 times theorem prover too weak. 239474 trivial. 0 not checked. [2023-02-18 08:59:15,971 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:59:15,971 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1503808989] [2023-02-18 08:59:15,971 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:59:15,971 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [178657957] [2023-02-18 08:59:15,971 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [178657957] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:59:15,971 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:59:15,971 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [23, 38] total 41 [2023-02-18 08:59:15,971 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1848849858] [2023-02-18 08:59:15,971 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:59:15,972 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:59:15,972 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:59:15,972 INFO L85 PathProgramCache]: Analyzing trace with hash 953365235, now seen corresponding path program 83 times [2023-02-18 08:59:15,972 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:59:15,972 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [942021575] [2023-02-18 08:59:15,972 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:59:15,972 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:59:15,998 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:59:15,998 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1694633798] [2023-02-18 08:59:15,998 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 08:59:15,998 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:59:15,998 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:16,001 INFO L229 MonitoredProcess]: Starting monitored process 292 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:59:16,001 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (292)] Waiting until timeout for monitored process [2023-02-18 08:59:17,491 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 74 check-sat command(s) [2023-02-18 08:59:17,491 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:59:17,499 INFO L263 TraceCheckSpWp]: Trace formula consists of 1710 conjuncts, 35 conjunts are in the unsatisfiable core [2023-02-18 08:59:17,504 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:59:17,626 INFO L134 CoverageAnalysis]: Checked inductivity of 61661 backedges. 32444 proven. 1415 refuted. 0 times theorem prover too weak. 27802 trivial. 0 not checked. [2023-02-18 08:59:17,627 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:59:18,022 INFO L134 CoverageAnalysis]: Checked inductivity of 61661 backedges. 1964 proven. 6067 refuted. 0 times theorem prover too weak. 53630 trivial. 0 not checked. [2023-02-18 08:59:18,023 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:59:18,023 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [942021575] [2023-02-18 08:59:18,023 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:59:18,023 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1694633798] [2023-02-18 08:59:18,023 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1694633798] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:59:18,023 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:59:18,023 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 32] total 39 [2023-02-18 08:59:18,023 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1965583147] [2023-02-18 08:59:18,023 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:59:18,023 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:59:18,024 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:59:18,024 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 39 interpolants. [2023-02-18 08:59:18,024 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=179, Invalid=1303, Unknown=0, NotChecked=0, Total=1482 [2023-02-18 08:59:18,024 INFO L87 Difference]: Start difference. First operand 5485 states and 8678 transitions. cyclomatic complexity: 3238 Second operand has 39 states, 35 states have (on average 2.8857142857142857) internal successors, (101), 39 states have internal predecessors, (101), 23 states have call successors, (42), 2 states have call predecessors, (42), 14 states have return successors, (50), 19 states have call predecessors, (50), 23 states have call successors, (50) [2023-02-18 08:59:20,025 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:59:20,025 INFO L93 Difference]: Finished difference Result 6059 states and 9634 transitions. [2023-02-18 08:59:20,025 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 6059 states and 9634 transitions. [2023-02-18 08:59:20,055 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 889 [2023-02-18 08:59:20,094 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 6059 states to 6056 states and 9627 transitions. [2023-02-18 08:59:20,095 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 410 [2023-02-18 08:59:20,095 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 410 [2023-02-18 08:59:20,095 INFO L73 IsDeterministic]: Start isDeterministic. Operand 6056 states and 9627 transitions. [2023-02-18 08:59:20,095 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:59:20,095 INFO L218 hiAutomatonCegarLoop]: Abstraction has 6056 states and 9627 transitions. [2023-02-18 08:59:20,097 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 6056 states and 9627 transitions. [2023-02-18 08:59:20,163 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 6056 to 5484. [2023-02-18 08:59:20,167 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5484 states, 3338 states have (on average 1.0482324745356502) internal successors, (3499), 3335 states have internal predecessors, (3499), 1798 states have call successors, (1820), 503 states have call predecessors, (1820), 348 states have return successors, (3347), 1645 states have call predecessors, (3347), 1798 states have call successors, (3347) [2023-02-18 08:59:20,185 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5484 states to 5484 states and 8666 transitions. [2023-02-18 08:59:20,185 INFO L240 hiAutomatonCegarLoop]: Abstraction has 5484 states and 8666 transitions. [2023-02-18 08:59:20,186 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 45 states. [2023-02-18 08:59:20,186 INFO L428 stractBuchiCegarLoop]: Abstraction has 5484 states and 8666 transitions. [2023-02-18 08:59:20,186 INFO L335 stractBuchiCegarLoop]: ======== Iteration 96 ============ [2023-02-18 08:59:20,186 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 5484 states and 8666 transitions. [2023-02-18 08:59:20,199 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 863 [2023-02-18 08:59:20,199 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:59:20,199 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:59:20,205 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [319, 319, 238, 238, 238, 238, 81, 27, 26, 20, 20, 20, 20, 20, 20, 20, 19, 19, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 4, 4, 1, 1, 1, 1] [2023-02-18 08:59:20,206 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [154, 154, 127, 127, 127, 127, 27, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:59:20,206 INFO L748 eck$LassoCheckResult]: Stem: 1058071#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 1058018#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; 1058019#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 1058041#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; 1058072#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1063050#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1063048#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058012#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058013#$Ultimate##0 ~n := #in~n; 1063002#L25 assume ~n <= 0;#res := 1; 1063000#factFINAL assume true; 1062999#factEXIT >#68#return; 1058061#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058062#$Ultimate##0 ~n := #in~n; 1063192#L25 assume ~n <= 0;#res := 1; 1063190#factFINAL assume true; 1063037#factEXIT >#70#return; 1057993#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1057994#$Ultimate##0 ~n := #in~n; 1063257#L25 assume ~n <= 0;#res := 1; 1063256#factFINAL assume true; 1063255#factEXIT >#72#return; 1058037#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1058038#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1058052#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1058057#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1058058#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1063316#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1063317#$Ultimate##0 ~n := #in~n; 1063360#L25 assume !(~n <= 0); 1063357#L26 call #t~ret0 := fact(~n - 1);< 1063358#$Ultimate##0 ~n := #in~n; 1063361#L25 assume ~n <= 0;#res := 1; 1063359#factFINAL assume true; 1063356#factEXIT >#66#return; 1063355#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1063350#factFINAL assume true; 1063315#factEXIT >#74#return; 1063313#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1063338#$Ultimate##0 ~n := #in~n; 1063348#L25 assume ~n <= 0;#res := 1; 1063312#factFINAL assume true; 1063314#factEXIT >#76#return; 1063302#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1063304#$Ultimate##0 ~n := #in~n; 1063335#L25 assume !(~n <= 0); 1063333#L26 call #t~ret0 := fact(~n - 1);< 1063334#$Ultimate##0 ~n := #in~n; 1063344#L25 assume ~n <= 0;#res := 1; 1063343#factFINAL assume true; 1063332#factEXIT >#66#return; 1063331#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1063330#factFINAL assume true; 1063301#factEXIT >#78#return; 1063303#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1063297#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1063298#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1063342#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1063341#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1063337#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1063340#$Ultimate##0 ~n := #in~n; 1063352#L25 assume !(~n <= 0); 1063320#L26 call #t~ret0 := fact(~n - 1);< 1063324#$Ultimate##0 ~n := #in~n; 1063349#L25 assume !(~n <= 0); 1063319#L26 call #t~ret0 := fact(~n - 1);< 1063347#$Ultimate##0 ~n := #in~n; 1063354#L25 assume ~n <= 0;#res := 1; 1063353#factFINAL assume true; 1063346#factEXIT >#66#return; 1063345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1063336#factFINAL assume true; 1063318#factEXIT >#66#return; 1063322#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1063364#factFINAL assume true; 1063339#factEXIT >#74#return; 1063309#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1063310#$Ultimate##0 ~n := #in~n; 1063325#L25 assume ~n <= 0;#res := 1; 1063326#factFINAL assume true; 1063308#factEXIT >#76#return; 1063306#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1063329#$Ultimate##0 ~n := #in~n; 1063351#L25 assume !(~n <= 0); 1063321#L26 call #t~ret0 := fact(~n - 1);< 1063324#$Ultimate##0 ~n := #in~n; 1063349#L25 assume !(~n <= 0); 1063319#L26 call #t~ret0 := fact(~n - 1);< 1063347#$Ultimate##0 ~n := #in~n; 1063354#L25 assume ~n <= 0;#res := 1; 1063353#factFINAL assume true; 1063346#factEXIT >#66#return; 1063345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1063336#factFINAL assume true; 1063318#factEXIT >#66#return; 1063311#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1063305#factFINAL assume true; 1063307#factEXIT >#78#return; 1063299#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1063300#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1063328#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1063327#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1058047#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058048#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1063384#$Ultimate##0 ~n := #in~n; 1063406#L25 assume !(~n <= 0); 1063404#L26 call #t~ret0 := fact(~n - 1);< 1063405#$Ultimate##0 ~n := #in~n; 1063413#L25 assume !(~n <= 0); 1063403#L26 call #t~ret0 := fact(~n - 1);< 1063412#$Ultimate##0 ~n := #in~n; 1063413#L25 assume !(~n <= 0); 1063403#L26 call #t~ret0 := fact(~n - 1);< 1063412#$Ultimate##0 ~n := #in~n; 1063421#L25 assume ~n <= 0;#res := 1; 1063420#factFINAL assume true; 1063419#factEXIT >#66#return; 1063417#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1063415#factFINAL assume true; 1063411#factEXIT >#66#return; 1063410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1063409#factFINAL assume true; 1063402#factEXIT >#66#return; 1063399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1063394#factFINAL assume true; 1063383#factEXIT >#74#return; 1063379#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1063380#$Ultimate##0 ~n := #in~n; 1063393#L25 assume ~n <= 0;#res := 1; 1063382#factFINAL assume true; 1063378#factEXIT >#76#return; 1058054#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1063376#$Ultimate##0 ~n := #in~n; 1063400#L25 assume !(~n <= 0); 1063390#L26 call #t~ret0 := fact(~n - 1);< 1063392#$Ultimate##0 ~n := #in~n; 1063418#L25 assume !(~n <= 0); 1063386#L26 call #t~ret0 := fact(~n - 1);< 1063408#$Ultimate##0 ~n := #in~n; 1063418#L25 assume !(~n <= 0); 1063386#L26 call #t~ret0 := fact(~n - 1);< 1063408#$Ultimate##0 ~n := #in~n; 1063416#L25 assume ~n <= 0;#res := 1; 1063414#factFINAL assume true; 1063407#factEXIT >#66#return; 1063401#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1063398#factFINAL assume true; 1063397#factEXIT >#66#return; 1063396#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1063395#factFINAL assume true; 1063385#factEXIT >#66#return; 1058053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058055#factFINAL assume true; 1063375#factEXIT >#78#return; 1063373#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1058021#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1062553#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1060870#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1060869#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1060867#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1060865#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1060855#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1060793#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1060798#$Ultimate##0 ~n := #in~n; 1060848#L25 assume !(~n <= 0); 1060830#L26 call #t~ret0 := fact(~n - 1);< 1060844#$Ultimate##0 ~n := #in~n; 1061764#L25 assume ~n <= 0;#res := 1; 1062345#factFINAL assume true; 1062214#factEXIT >#66#return; 1062220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1062363#factFINAL assume true; 1062362#factEXIT >#68#return; 1062301#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1060785#$Ultimate##0 ~n := #in~n; 1063099#L25 assume ~n <= 0;#res := 1; 1063098#factFINAL assume true; 1062300#factEXIT >#70#return; 1062302#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1062305#$Ultimate##0 ~n := #in~n; 1062304#L25 assume !(~n <= 0); 1060814#L26 call #t~ret0 := fact(~n - 1);< 1061860#$Ultimate##0 ~n := #in~n; 1061764#L25 assume ~n <= 0;#res := 1; 1062345#factFINAL assume true; 1062214#factEXIT >#66#return; 1062224#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1062364#factFINAL assume true; 1062361#factEXIT >#72#return; 1062359#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1062358#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1062357#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1062356#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1062355#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1062231#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1062275#$Ultimate##0 ~n := #in~n; 1062347#L25 assume !(~n <= 0); 1060807#L26 call #t~ret0 := fact(~n - 1);< 1061860#$Ultimate##0 ~n := #in~n; 1061764#L25 assume ~n <= 0;#res := 1; 1062345#factFINAL assume true; 1062214#factEXIT >#66#return; 1062221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1062977#factFINAL assume true; 1062976#factEXIT >#68#return; 1062263#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1062272#$Ultimate##0 ~n := #in~n; 1062337#L25 assume !(~n <= 0); 1062216#L26 call #t~ret0 := fact(~n - 1);< 1062225#$Ultimate##0 ~n := #in~n; 1061764#L25 assume ~n <= 0;#res := 1; 1062345#factFINAL assume true; 1062214#factEXIT >#66#return; 1062219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1062299#factFINAL assume true; 1062259#factEXIT >#70#return; 1062188#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1062195#$Ultimate##0 ~n := #in~n; 1062367#L25 assume ~n <= 0;#res := 1; 1062366#factFINAL assume true; 1062181#factEXIT >#72#return; 1062194#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1063044#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1063043#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1063042#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1063040#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1061816#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1061851#$Ultimate##0 ~n := #in~n; 1062569#L25 assume !(~n <= 0); 1060806#L26 call #t~ret0 := fact(~n - 1);< 1061817#$Ultimate##0 ~n := #in~n; 1063200#L25 assume !(~n <= 0); 1060808#L26 call #t~ret0 := fact(~n - 1);< 1060852#$Ultimate##0 ~n := #in~n; 1060858#L25 assume ~n <= 0;#res := 1; 1060857#factFINAL assume true; 1060850#factEXIT >#66#return; 1060849#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1060845#factFINAL assume true; 1060805#factEXIT >#66#return; 1060839#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1062930#factFINAL assume true; 1061850#factEXIT >#74#return; 1061655#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1061696#$Ultimate##0 ~n := #in~n; 1062229#L25 assume !(~n <= 0); 1060831#L26 call #t~ret0 := fact(~n - 1);< 1060844#$Ultimate##0 ~n := #in~n; 1061764#L25 assume ~n <= 0;#res := 1; 1062345#factFINAL assume true; 1062214#factEXIT >#66#return; 1062212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1062209#factFINAL assume true; 1061639#factEXIT >#76#return; 1061657#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1061670#$Ultimate##0 ~n := #in~n; 1062227#L25 assume !(~n <= 0); 1062218#L26 call #t~ret0 := fact(~n - 1);< 1062225#$Ultimate##0 ~n := #in~n; 1061764#L25 assume ~n <= 0;#res := 1; 1062345#factFINAL assume true; 1062214#factEXIT >#66#return; 1062212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1062209#factFINAL assume true; 1061639#factEXIT >#78#return; 1061637#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1061635#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1061633#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1061620#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1061611#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1061398#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1061424#$Ultimate##0 ~n := #in~n; 1062874#L25 assume !(~n <= 0); 1061590#L26 call #t~ret0 := fact(~n - 1);< 1062872#$Ultimate##0 ~n := #in~n; 1062454#L25 assume !(~n <= 0); 1061593#L26 call #t~ret0 := fact(~n - 1);< 1063161#$Ultimate##0 ~n := #in~n; 1062454#L25 assume !(~n <= 0); 1061593#L26 call #t~ret0 := fact(~n - 1);< 1063161#$Ultimate##0 ~n := #in~n; 1063164#L25 assume ~n <= 0;#res := 1; 1063163#factFINAL assume true; 1063159#factEXIT >#66#return; 1063158#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1063063#factFINAL assume true; 1061928#factEXIT >#66#return; 1061931#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1061605#factFINAL assume true; 1061580#factEXIT >#66#return; 1061578#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1061423#factFINAL assume true; 1061413#factEXIT >#74#return; 1061026#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1061419#$Ultimate##0 ~n := #in~n; 1062559#L25 assume !(~n <= 0); 1061592#L26 call #t~ret0 := fact(~n - 1);< 1062557#$Ultimate##0 ~n := #in~n; 1062155#L25 assume ~n <= 0;#res := 1; 1062871#factFINAL assume true; 1061934#factEXIT >#66#return; 1061937#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1062556#factFINAL assume true; 1061025#factEXIT >#76#return; 1061043#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1062159#$Ultimate##0 ~n := #in~n; 1062157#L25 assume !(~n <= 0); 1061596#L26 call #t~ret0 := fact(~n - 1);< 1062154#$Ultimate##0 ~n := #in~n; 1062153#L25 assume !(~n <= 0); 1061581#L26 call #t~ret0 := fact(~n - 1);< 1062143#$Ultimate##0 ~n := #in~n; 1063164#L25 assume ~n <= 0;#res := 1; 1063163#factFINAL assume true; 1063159#factEXIT >#66#return; 1063158#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1063063#factFINAL assume true; 1061928#factEXIT >#66#return; 1061932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1062561#factFINAL assume true; 1061824#factEXIT >#78#return; 1061826#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1062955#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1062953#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1062952#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1058040#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1058033#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1058034#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1062303#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1060791#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1060798#$Ultimate##0 ~n := #in~n; 1060848#L25 assume !(~n <= 0); 1060830#L26 call #t~ret0 := fact(~n - 1);< 1060844#$Ultimate##0 ~n := #in~n; 1061373#L25 assume !(~n <= 0); 1060817#L26 call #t~ret0 := fact(~n - 1);< 1060859#$Ultimate##0 ~n := #in~n; 1060858#L25 assume ~n <= 0;#res := 1; 1060857#factFINAL assume true; 1060850#factEXIT >#66#return; 1060849#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1060845#factFINAL assume true; 1060805#factEXIT >#66#return; 1060804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1060800#factFINAL assume true; 1060790#factEXIT >#68#return; 1060782#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1060786#$Ultimate##0 ~n := #in~n; 1060799#L25 assume ~n <= 0;#res := 1; 1060789#factFINAL assume true; 1060778#factEXIT >#70#return; 1060767#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1060776#$Ultimate##0 ~n := #in~n; 1060803#L25 assume !(~n <= 0); 1060133#L26 call #t~ret0 := fact(~n - 1);< 1060152#$Ultimate##0 ~n := #in~n; 1060173#L25 assume !(~n <= 0); 1060166#L26 call #t~ret0 := fact(~n - 1);< 1060167#$Ultimate##0 ~n := #in~n; 1060172#L25 assume ~n <= 0;#res := 1; 1060171#factFINAL assume true; 1060165#factEXIT >#66#return; 1060164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1060154#factFINAL assume true; 1060131#factEXIT >#66#return; 1060147#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1060777#factFINAL assume true; 1060765#factEXIT >#72#return; 1060772#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1062712#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1062711#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1062710#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1062709#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1060279#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1060294#$Ultimate##0 ~n := #in~n; 1063083#L25 assume !(~n <= 0); 1060135#L26 call #t~ret0 := fact(~n - 1);< 1060152#$Ultimate##0 ~n := #in~n; 1060173#L25 assume !(~n <= 0); 1060166#L26 call #t~ret0 := fact(~n - 1);< 1060167#$Ultimate##0 ~n := #in~n; 1060172#L25 assume ~n <= 0;#res := 1; 1060171#factFINAL assume true; 1060165#factEXIT >#66#return; 1060164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1060154#factFINAL assume true; 1060131#factEXIT >#66#return; 1060149#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1061066#factFINAL assume true; 1060275#factEXIT >#68#return; 1060289#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1060328#$Ultimate##0 ~n := #in~n; 1061098#L25 assume !(~n <= 0); 1060485#L26 call #t~ret0 := fact(~n - 1);< 1060495#$Ultimate##0 ~n := #in~n; 1063109#L25 assume ~n <= 0;#res := 1; 1060502#factFINAL assume true; 1060484#factEXIT >#66#return; 1060491#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1061095#factFINAL assume true; 1060316#factEXIT >#70#return; 1060320#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1060328#$Ultimate##0 ~n := #in~n; 1061098#L25 assume !(~n <= 0); 1060485#L26 call #t~ret0 := fact(~n - 1);< 1060495#$Ultimate##0 ~n := #in~n; 1063109#L25 assume ~n <= 0;#res := 1; 1060502#factFINAL assume true; 1060484#factEXIT >#66#return; 1060491#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1061095#factFINAL assume true; 1060316#factEXIT >#72#return; 1060314#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1060300#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1060298#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1060297#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1060296#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1060282#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1060294#$Ultimate##0 ~n := #in~n; 1063083#L25 assume !(~n <= 0); 1060135#L26 call #t~ret0 := fact(~n - 1);< 1060152#$Ultimate##0 ~n := #in~n; 1060173#L25 assume !(~n <= 0); 1060166#L26 call #t~ret0 := fact(~n - 1);< 1060167#$Ultimate##0 ~n := #in~n; 1060172#L25 assume ~n <= 0;#res := 1; 1060171#factFINAL assume true; 1060165#factEXIT >#66#return; 1060164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1060154#factFINAL assume true; 1060131#factEXIT >#66#return; 1060149#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1061066#factFINAL assume true; 1060275#factEXIT >#68#return; 1060156#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1060273#$Ultimate##0 ~n := #in~n; 1061056#L25 assume !(~n <= 0); 1060088#L26 call #t~ret0 := fact(~n - 1);< 1060153#$Ultimate##0 ~n := #in~n; 1060174#L25 assume !(~n <= 0); 1060132#L26 call #t~ret0 := fact(~n - 1);< 1060168#$Ultimate##0 ~n := #in~n; 1060172#L25 assume ~n <= 0;#res := 1; 1060171#factFINAL assume true; 1060165#factEXIT >#66#return; 1060164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1060154#factFINAL assume true; 1060131#factEXIT >#66#return; 1060146#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1061065#factFINAL assume true; 1060272#factEXIT >#70#return; 1060239#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1060250#$Ultimate##0 ~n := #in~n; 1061061#L25 assume ~n <= 0;#res := 1; 1061059#factFINAL assume true; 1060238#factEXIT >#72#return; 1060236#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1060234#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1060232#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1060230#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1060227#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1060225#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1060226#$Ultimate##0 ~n := #in~n; 1061306#L25 assume !(~n <= 0); 1060010#L26 call #t~ret0 := fact(~n - 1);< 1060024#$Ultimate##0 ~n := #in~n; 1061107#L25 assume !(~n <= 0); 1060011#L26 call #t~ret0 := fact(~n - 1);< 1061073#$Ultimate##0 ~n := #in~n; 1061107#L25 assume !(~n <= 0); 1060011#L26 call #t~ret0 := fact(~n - 1);< 1061073#$Ultimate##0 ~n := #in~n; 1061077#L25 assume ~n <= 0;#res := 1; 1061298#factFINAL assume true; 1061071#factEXIT >#66#return; 1061070#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1061067#factFINAL assume true; 1060301#factEXIT >#66#return; 1060305#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1062086#factFINAL assume true; 1060029#factEXIT >#66#return; 1060036#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1062206#factFINAL assume true; 1060222#factEXIT >#74#return; 1060061#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1060220#$Ultimate##0 ~n := #in~n; 1060218#L25 assume !(~n <= 0); 1060032#L26 call #t~ret0 := fact(~n - 1);< 1060216#$Ultimate##0 ~n := #in~n; 1061075#L25 assume !(~n <= 0); 1060304#L26 call #t~ret0 := fact(~n - 1);< 1061068#$Ultimate##0 ~n := #in~n; 1061077#L25 assume ~n <= 0;#res := 1; 1061298#factFINAL assume true; 1061071#factEXIT >#66#return; 1061070#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1061067#factFINAL assume true; 1060301#factEXIT >#66#return; 1060306#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1061015#factFINAL assume true; 1060975#factEXIT >#76#return; 1059914#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1060976#$Ultimate##0 ~n := #in~n; 1061084#L25 assume !(~n <= 0); 1060310#L26 call #t~ret0 := fact(~n - 1);< 1060313#$Ultimate##0 ~n := #in~n; 1061096#L25 assume ~n <= 0;#res := 1; 1061079#factFINAL assume true; 1060309#factEXIT >#66#return; 1060312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1060628#factFINAL assume true; 1059904#factEXIT >#78#return; 1059903#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059901#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1059902#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059948#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1059946#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1059944#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1059942#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059941#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058613#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058798#$Ultimate##0 ~n := #in~n; 1058776#L25 assume !(~n <= 0); 1058411#L26 call #t~ret0 := fact(~n - 1);< 1058610#$Ultimate##0 ~n := #in~n; 1063005#L25 assume !(~n <= 0); 1058398#L26 call #t~ret0 := fact(~n - 1);< 1058414#$Ultimate##0 ~n := #in~n; 1063218#L25 assume !(~n <= 0); 1058428#L26 call #t~ret0 := fact(~n - 1);< 1058436#$Ultimate##0 ~n := #in~n; 1063211#L25 assume !(~n <= 0); 1058447#L26 call #t~ret0 := fact(~n - 1);< 1058454#$Ultimate##0 ~n := #in~n; 1063260#L25 assume !(~n <= 0); 1058470#L26 call #t~ret0 := fact(~n - 1);< 1058472#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059845#factFINAL assume true; 1059841#factEXIT >#68#return; 1058986#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058997#$Ultimate##0 ~n := #in~n; 1059006#L25 assume ~n <= 0;#res := 1; 1058999#factFINAL assume true; 1058984#factEXIT >#70#return; 1058743#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058808#$Ultimate##0 ~n := #in~n; 1058806#L25 assume !(~n <= 0); 1058347#L26 call #t~ret0 := fact(~n - 1);< 1058737#$Ultimate##0 ~n := #in~n; 1063228#L25 assume !(~n <= 0); 1058321#L26 call #t~ret0 := fact(~n - 1);< 1058738#$Ultimate##0 ~n := #in~n; 1063224#L25 assume !(~n <= 0); 1058324#L26 call #t~ret0 := fact(~n - 1);< 1058421#$Ultimate##0 ~n := #in~n; 1063227#L25 assume !(~n <= 0); 1058327#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058609#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059785#factFINAL assume true; 1059784#factEXIT >#72#return; 1058977#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059940#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059939#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059938#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059937#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058594#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058601#$Ultimate##0 ~n := #in~n; 1058616#L25 assume !(~n <= 0); 1058413#L26 call #t~ret0 := fact(~n - 1);< 1058610#$Ultimate##0 ~n := #in~n; 1063005#L25 assume !(~n <= 0); 1058398#L26 call #t~ret0 := fact(~n - 1);< 1058414#$Ultimate##0 ~n := #in~n; 1063218#L25 assume !(~n <= 0); 1058428#L26 call #t~ret0 := fact(~n - 1);< 1058436#$Ultimate##0 ~n := #in~n; 1063211#L25 assume !(~n <= 0); 1058447#L26 call #t~ret0 := fact(~n - 1);< 1058454#$Ultimate##0 ~n := #in~n; 1063260#L25 assume !(~n <= 0); 1058470#L26 call #t~ret0 := fact(~n - 1);< 1058472#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058602#factFINAL assume true; 1058584#factEXIT >#68#return; 1058600#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058820#$Ultimate##0 ~n := #in~n; 1063264#L25 assume !(~n <= 0); 1058145#L26 call #t~ret0 := fact(~n - 1);< 1059280#$Ultimate##0 ~n := #in~n; 1059297#L25 assume ~n <= 0;#res := 1; 1059284#factFINAL assume true; 1059277#factEXIT >#66#return; 1059275#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058819#factFINAL assume true; 1058777#factEXIT >#70#return; 1058791#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058921#$Ultimate##0 ~n := #in~n; 1059931#L25 assume !(~n <= 0); 1058396#L26 call #t~ret0 := fact(~n - 1);< 1059930#$Ultimate##0 ~n := #in~n; 1059928#L25 assume !(~n <= 0); 1058425#L26 call #t~ret0 := fact(~n - 1);< 1059926#$Ultimate##0 ~n := #in~n; 1059925#L25 assume !(~n <= 0); 1058446#L26 call #t~ret0 := fact(~n - 1);< 1058474#$Ultimate##0 ~n := #in~n; 1063260#L25 assume !(~n <= 0); 1058470#L26 call #t~ret0 := fact(~n - 1);< 1058472#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058406#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058920#factFINAL assume true; 1058893#factEXIT >#72#return; 1058912#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059265#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059264#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059263#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059262#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058595#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058601#$Ultimate##0 ~n := #in~n; 1058616#L25 assume !(~n <= 0); 1058413#L26 call #t~ret0 := fact(~n - 1);< 1058610#$Ultimate##0 ~n := #in~n; 1063005#L25 assume !(~n <= 0); 1058398#L26 call #t~ret0 := fact(~n - 1);< 1058414#$Ultimate##0 ~n := #in~n; 1063218#L25 assume !(~n <= 0); 1058428#L26 call #t~ret0 := fact(~n - 1);< 1058436#$Ultimate##0 ~n := #in~n; 1063211#L25 assume !(~n <= 0); 1058447#L26 call #t~ret0 := fact(~n - 1);< 1058454#$Ultimate##0 ~n := #in~n; 1063260#L25 assume !(~n <= 0); 1058470#L26 call #t~ret0 := fact(~n - 1);< 1058472#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058602#factFINAL assume true; 1058584#factEXIT >#68#return; 1058512#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058537#$Ultimate##0 ~n := #in~n; 1060210#L25 assume !(~n <= 0); 1058323#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058450#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058541#factFINAL assume true; 1058510#factEXIT >#70#return; 1058439#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058483#$Ultimate##0 ~n := #in~n; 1058481#L25 assume !(~n <= 0); 1058429#L26 call #t~ret0 := fact(~n - 1);< 1058436#$Ultimate##0 ~n := #in~n; 1063211#L25 assume !(~n <= 0); 1058447#L26 call #t~ret0 := fact(~n - 1);< 1058454#$Ultimate##0 ~n := #in~n; 1063260#L25 assume !(~n <= 0); 1058470#L26 call #t~ret0 := fact(~n - 1);< 1058472#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058434#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058870#factFINAL assume true; 1058849#factEXIT >#72#return; 1058866#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059256#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059255#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059253#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059252#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058587#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058601#$Ultimate##0 ~n := #in~n; 1058616#L25 assume !(~n <= 0); 1058413#L26 call #t~ret0 := fact(~n - 1);< 1058610#$Ultimate##0 ~n := #in~n; 1063005#L25 assume !(~n <= 0); 1058398#L26 call #t~ret0 := fact(~n - 1);< 1058414#$Ultimate##0 ~n := #in~n; 1063218#L25 assume !(~n <= 0); 1058428#L26 call #t~ret0 := fact(~n - 1);< 1058436#$Ultimate##0 ~n := #in~n; 1063211#L25 assume !(~n <= 0); 1058447#L26 call #t~ret0 := fact(~n - 1);< 1058454#$Ultimate##0 ~n := #in~n; 1063260#L25 assume !(~n <= 0); 1058470#L26 call #t~ret0 := fact(~n - 1);< 1058472#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058602#factFINAL assume true; 1058584#factEXIT >#68#return; 1058279#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058311#$Ultimate##0 ~n := #in~n; 1058823#L25 assume !(~n <= 0); 1058338#L26 call #t~ret0 := fact(~n - 1);< 1058421#$Ultimate##0 ~n := #in~n; 1063227#L25 assume !(~n <= 0); 1058327#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058434#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058870#factFINAL assume true; 1058849#factEXIT >#70#return; 1058456#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058543#$Ultimate##0 ~n := #in~n; 1060344#L25 assume !(~n <= 0); 1058444#L26 call #t~ret0 := fact(~n - 1);< 1058458#$Ultimate##0 ~n := #in~n; 1063267#L25 assume !(~n <= 0); 1058445#L26 call #t~ret0 := fact(~n - 1);< 1058474#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058450#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058541#factFINAL assume true; 1058510#factEXIT >#72#return; 1058516#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059249#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059246#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059243#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059240#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058589#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058601#$Ultimate##0 ~n := #in~n; 1058616#L25 assume !(~n <= 0); 1058413#L26 call #t~ret0 := fact(~n - 1);< 1058610#$Ultimate##0 ~n := #in~n; 1063005#L25 assume !(~n <= 0); 1058398#L26 call #t~ret0 := fact(~n - 1);< 1058414#$Ultimate##0 ~n := #in~n; 1063218#L25 assume !(~n <= 0); 1058428#L26 call #t~ret0 := fact(~n - 1);< 1058436#$Ultimate##0 ~n := #in~n; 1063211#L25 assume !(~n <= 0); 1058447#L26 call #t~ret0 := fact(~n - 1);< 1058454#$Ultimate##0 ~n := #in~n; 1063260#L25 assume !(~n <= 0); 1058470#L26 call #t~ret0 := fact(~n - 1);< 1058472#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058602#factFINAL assume true; 1058584#factEXIT >#68#return; 1058268#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058311#$Ultimate##0 ~n := #in~n; 1058823#L25 assume !(~n <= 0); 1058338#L26 call #t~ret0 := fact(~n - 1);< 1058421#$Ultimate##0 ~n := #in~n; 1063227#L25 assume !(~n <= 0); 1058327#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058406#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058920#factFINAL assume true; 1058893#factEXIT >#70#return; 1058778#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1059238#$Ultimate##0 ~n := #in~n; 1063269#L25 assume !(~n <= 0); 1058443#L26 call #t~ret0 := fact(~n - 1);< 1063268#$Ultimate##0 ~n := #in~n; 1059297#L25 assume ~n <= 0;#res := 1; 1059284#factFINAL assume true; 1059277#factEXIT >#66#return; 1059275#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058819#factFINAL assume true; 1058777#factEXIT >#72#return; 1058782#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059236#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059234#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059232#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059229#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058590#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058601#$Ultimate##0 ~n := #in~n; 1058616#L25 assume !(~n <= 0); 1058413#L26 call #t~ret0 := fact(~n - 1);< 1058610#$Ultimate##0 ~n := #in~n; 1063005#L25 assume !(~n <= 0); 1058398#L26 call #t~ret0 := fact(~n - 1);< 1058414#$Ultimate##0 ~n := #in~n; 1063218#L25 assume !(~n <= 0); 1058428#L26 call #t~ret0 := fact(~n - 1);< 1058436#$Ultimate##0 ~n := #in~n; 1063211#L25 assume !(~n <= 0); 1058447#L26 call #t~ret0 := fact(~n - 1);< 1058454#$Ultimate##0 ~n := #in~n; 1063260#L25 assume !(~n <= 0); 1058470#L26 call #t~ret0 := fact(~n - 1);< 1058472#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058602#factFINAL assume true; 1058584#factEXIT >#68#return; 1058280#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058311#$Ultimate##0 ~n := #in~n; 1058823#L25 assume !(~n <= 0); 1058338#L26 call #t~ret0 := fact(~n - 1);< 1058421#$Ultimate##0 ~n := #in~n; 1063227#L25 assume !(~n <= 0); 1058327#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058312#factFINAL assume true; 1058146#factEXIT >#70#return; 1058099#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058142#$Ultimate##0 ~n := #in~n; 1063270#L25 assume ~n <= 0;#res := 1; 1058143#factFINAL assume true; 1058076#factEXIT >#72#return; 1058140#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059900#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059893#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059886#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1058045#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058046#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1059582#$Ultimate##0 ~n := #in~n; 1059571#L25 assume !(~n <= 0); 1059557#L26 call #t~ret0 := fact(~n - 1);< 1059559#$Ultimate##0 ~n := #in~n; 1059558#L25 assume !(~n <= 0); 1059548#L26 call #t~ret0 := fact(~n - 1);< 1059556#$Ultimate##0 ~n := #in~n; 1059555#L25 assume !(~n <= 0); 1059543#L26 call #t~ret0 := fact(~n - 1);< 1059547#$Ultimate##0 ~n := #in~n; 1059545#L25 assume !(~n <= 0); 1059490#L26 call #t~ret0 := fact(~n - 1);< 1059483#$Ultimate##0 ~n := #in~n; 1059505#L25 assume !(~n <= 0); 1059492#L26 call #t~ret0 := fact(~n - 1);< 1059498#$Ultimate##0 ~n := #in~n; 1059505#L25 assume !(~n <= 0); 1059492#L26 call #t~ret0 := fact(~n - 1);< 1059498#$Ultimate##0 ~n := #in~n; 1059505#L25 assume !(~n <= 0); 1059492#L26 call #t~ret0 := fact(~n - 1);< 1059498#$Ultimate##0 ~n := #in~n; 1059505#L25 assume !(~n <= 0); 1059492#L26 call #t~ret0 := fact(~n - 1);< 1059498#$Ultimate##0 ~n := #in~n; 1059508#L25 assume ~n <= 0;#res := 1; 1059501#factFINAL assume true; 1059496#factEXIT >#66#return; 1059489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059494#factFINAL assume true; 1059553#factEXIT >#66#return; 1059554#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059721#factFINAL assume true; 1059660#factEXIT >#66#return; 1059658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059656#factFINAL assume true; 1059653#factEXIT >#66#return; 1059650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059649#factFINAL assume true; 1059595#factEXIT >#66#return; 1059596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059617#factFINAL assume true; 1059605#factEXIT >#66#return; 1059606#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059718#factFINAL assume true; 1059663#factEXIT >#66#return; 1059664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059878#factFINAL assume true; 1059876#factEXIT >#66#return; 1059871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059648#factFINAL assume true; 1059647#factEXIT >#74#return; 1058064#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058065#$Ultimate##0 ~n := #in~n; 1059523#L25 assume !(~n <= 0); 1059491#L26 call #t~ret0 := fact(~n - 1);< 1059478#$Ultimate##0 ~n := #in~n; 1059505#L25 assume !(~n <= 0); 1059492#L26 call #t~ret0 := fact(~n - 1);< 1059498#$Ultimate##0 ~n := #in~n; 1059505#L25 assume !(~n <= 0); 1059492#L26 call #t~ret0 := fact(~n - 1);< 1059498#$Ultimate##0 ~n := #in~n; 1059505#L25 assume !(~n <= 0); 1059492#L26 call #t~ret0 := fact(~n - 1);< 1059498#$Ultimate##0 ~n := #in~n; 1059505#L25 assume !(~n <= 0); 1059492#L26 call #t~ret0 := fact(~n - 1);< 1059498#$Ultimate##0 ~n := #in~n; 1059505#L25 assume !(~n <= 0); 1059492#L26 call #t~ret0 := fact(~n - 1);< 1059498#$Ultimate##0 ~n := #in~n; 1059508#L25 assume ~n <= 0;#res := 1; 1059501#factFINAL assume true; 1059496#factEXIT >#66#return; 1059489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059494#factFINAL assume true; 1059553#factEXIT >#66#return; 1059554#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059721#factFINAL assume true; 1059660#factEXIT >#66#return; 1059658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059656#factFINAL assume true; 1059653#factEXIT >#66#return; 1059650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059649#factFINAL assume true; 1059595#factEXIT >#66#return; 1059596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059617#factFINAL assume true; 1059605#factEXIT >#66#return; 1059603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059601#factFINAL assume true; 1059598#factEXIT >#76#return; 1059422#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058074#$Ultimate##0 ~n := #in~n; 1059522#L25 assume !(~n <= 0); 1059475#L26 call #t~ret0 := fact(~n - 1);< 1059495#$Ultimate##0 ~n := #in~n; 1059488#L25 assume ~n <= 0;#res := 1; 1059480#factFINAL assume true; 1059474#factEXIT >#66#return; 1059472#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059419#factFINAL assume true; 1059423#factEXIT >#78#return; 1059077#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1061314#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1061313#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1061312#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1061311#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1061310#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1061309#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1061308#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1059001#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1061305#$Ultimate##0 ~n := #in~n; 1061304#L25 assume !(~n <= 0); 1058335#L26 call #t~ret0 := fact(~n - 1);< 1058739#$Ultimate##0 ~n := #in~n; 1061303#L25 assume !(~n <= 0); 1058339#L26 call #t~ret0 := fact(~n - 1);< 1059015#$Ultimate##0 ~n := #in~n; 1061301#L25 assume !(~n <= 0); 1058342#L26 call #t~ret0 := fact(~n - 1);< 1061058#$Ultimate##0 ~n := #in~n; 1060213#L25 assume !(~n <= 0); 1058345#L26 call #t~ret0 := fact(~n - 1);< 1059929#$Ultimate##0 ~n := #in~n; 1059927#L25 assume !(~n <= 0); 1058348#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058735#factFINAL assume true; 1058729#factEXIT >#66#return; 1058353#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059266#factFINAL assume true; 1058317#factEXIT >#66#return; 1058350#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059007#factFINAL assume true; 1059000#factEXIT >#68#return; 1058994#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058997#$Ultimate##0 ~n := #in~n; 1059006#L25 assume ~n <= 0;#res := 1; 1058999#factFINAL assume true; 1058984#factEXIT >#70#return; 1058967#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058981#$Ultimate##0 ~n := #in~n; 1059030#L25 assume !(~n <= 0); 1058328#L26 call #t~ret0 := fact(~n - 1);< 1058739#$Ultimate##0 ~n := #in~n; 1061303#L25 assume !(~n <= 0); 1058339#L26 call #t~ret0 := fact(~n - 1);< 1059015#$Ultimate##0 ~n := #in~n; 1061301#L25 assume !(~n <= 0); 1058342#L26 call #t~ret0 := fact(~n - 1);< 1061058#$Ultimate##0 ~n := #in~n; 1060213#L25 assume !(~n <= 0); 1058345#L26 call #t~ret0 := fact(~n - 1);< 1059929#$Ultimate##0 ~n := #in~n; 1059927#L25 assume !(~n <= 0); 1058348#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058735#factFINAL assume true; 1058729#factEXIT >#66#return; 1058354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058983#factFINAL assume true; 1058963#factEXIT >#72#return; 1058976#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059133#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059132#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059131#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059130#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058642#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058834#$Ultimate##0 ~n := #in~n; 1059470#L25 assume !(~n <= 0); 1058330#L26 call #t~ret0 := fact(~n - 1);< 1058756#$Ultimate##0 ~n := #in~n; 1062083#L25 assume !(~n <= 0); 1058334#L26 call #t~ret0 := fact(~n - 1);< 1058814#$Ultimate##0 ~n := #in~n; 1059888#L25 assume !(~n <= 0); 1058329#L26 call #t~ret0 := fact(~n - 1);< 1058737#$Ultimate##0 ~n := #in~n; 1063228#L25 assume !(~n <= 0); 1058321#L26 call #t~ret0 := fact(~n - 1);< 1058738#$Ultimate##0 ~n := #in~n; 1063224#L25 assume !(~n <= 0); 1058324#L26 call #t~ret0 := fact(~n - 1);< 1058421#$Ultimate##0 ~n := #in~n; 1063227#L25 assume !(~n <= 0); 1058327#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058735#factFINAL assume true; 1058729#factEXIT >#66#return; 1058353#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059266#factFINAL assume true; 1058317#factEXIT >#66#return; 1058355#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058882#factFINAL assume true; 1058871#factEXIT >#68#return; 1058097#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058954#$Ultimate##0 ~n := #in~n; 1058144#L25 assume !(~n <= 0); 1058145#L26 call #t~ret0 := fact(~n - 1);< 1059280#$Ultimate##0 ~n := #in~n; 1059297#L25 assume ~n <= 0;#res := 1; 1059284#factFINAL assume true; 1059277#factEXIT >#66#return; 1059275#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058819#factFINAL assume true; 1058777#factEXIT >#70#return; 1058575#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058818#$Ultimate##0 ~n := #in~n; 1058817#L25 assume !(~n <= 0); 1058322#L26 call #t~ret0 := fact(~n - 1);< 1058737#$Ultimate##0 ~n := #in~n; 1063228#L25 assume !(~n <= 0); 1058321#L26 call #t~ret0 := fact(~n - 1);< 1058738#$Ultimate##0 ~n := #in~n; 1063224#L25 assume !(~n <= 0); 1058324#L26 call #t~ret0 := fact(~n - 1);< 1058421#$Ultimate##0 ~n := #in~n; 1063227#L25 assume !(~n <= 0); 1058327#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058810#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058822#factFINAL assume true; 1058800#factEXIT >#72#return; 1058579#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059125#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059124#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059123#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059122#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058676#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058834#$Ultimate##0 ~n := #in~n; 1059470#L25 assume !(~n <= 0); 1058330#L26 call #t~ret0 := fact(~n - 1);< 1058756#$Ultimate##0 ~n := #in~n; 1062083#L25 assume !(~n <= 0); 1058334#L26 call #t~ret0 := fact(~n - 1);< 1058814#$Ultimate##0 ~n := #in~n; 1059888#L25 assume !(~n <= 0); 1058329#L26 call #t~ret0 := fact(~n - 1);< 1058737#$Ultimate##0 ~n := #in~n; 1063228#L25 assume !(~n <= 0); 1058321#L26 call #t~ret0 := fact(~n - 1);< 1058738#$Ultimate##0 ~n := #in~n; 1063224#L25 assume !(~n <= 0); 1058324#L26 call #t~ret0 := fact(~n - 1);< 1058421#$Ultimate##0 ~n := #in~n; 1063227#L25 assume !(~n <= 0); 1058327#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058735#factFINAL assume true; 1058729#factEXIT >#66#return; 1058353#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059266#factFINAL assume true; 1058317#factEXIT >#66#return; 1058355#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058882#factFINAL assume true; 1058871#factEXIT >#68#return; 1058085#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058542#$Ultimate##0 ~n := #in~n; 1059960#L25 assume !(~n <= 0); 1058442#L26 call #t~ret0 := fact(~n - 1);< 1063266#$Ultimate##0 ~n := #in~n; 1063260#L25 assume !(~n <= 0); 1058470#L26 call #t~ret0 := fact(~n - 1);< 1058472#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058450#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058541#factFINAL assume true; 1058510#factEXIT >#70#return; 1058189#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058825#$Ultimate##0 ~n := #in~n; 1058804#L25 assume !(~n <= 0); 1058320#L26 call #t~ret0 := fact(~n - 1);< 1058737#$Ultimate##0 ~n := #in~n; 1063228#L25 assume !(~n <= 0); 1058321#L26 call #t~ret0 := fact(~n - 1);< 1058738#$Ultimate##0 ~n := #in~n; 1063224#L25 assume !(~n <= 0); 1058324#L26 call #t~ret0 := fact(~n - 1);< 1058421#$Ultimate##0 ~n := #in~n; 1063227#L25 assume !(~n <= 0); 1058327#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058312#factFINAL assume true; 1058146#factEXIT >#72#return; 1058306#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059117#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059116#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059115#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059114#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058648#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058834#$Ultimate##0 ~n := #in~n; 1059470#L25 assume !(~n <= 0); 1058330#L26 call #t~ret0 := fact(~n - 1);< 1058756#$Ultimate##0 ~n := #in~n; 1062083#L25 assume !(~n <= 0); 1058334#L26 call #t~ret0 := fact(~n - 1);< 1058814#$Ultimate##0 ~n := #in~n; 1059888#L25 assume !(~n <= 0); 1058329#L26 call #t~ret0 := fact(~n - 1);< 1058737#$Ultimate##0 ~n := #in~n; 1063228#L25 assume !(~n <= 0); 1058321#L26 call #t~ret0 := fact(~n - 1);< 1058738#$Ultimate##0 ~n := #in~n; 1063224#L25 assume !(~n <= 0); 1058324#L26 call #t~ret0 := fact(~n - 1);< 1058421#$Ultimate##0 ~n := #in~n; 1063227#L25 assume !(~n <= 0); 1058327#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058735#factFINAL assume true; 1058729#factEXIT >#66#return; 1058353#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059266#factFINAL assume true; 1058317#factEXIT >#66#return; 1058355#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058882#factFINAL assume true; 1058871#factEXIT >#68#return; 1058105#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058833#$Ultimate##0 ~n := #in~n; 1059295#L25 assume !(~n <= 0); 1058331#L26 call #t~ret0 := fact(~n - 1);< 1059281#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058434#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058870#factFINAL assume true; 1058849#factEXIT >#70#return; 1058235#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058540#$Ultimate##0 ~n := #in~n; 1058507#L25 assume !(~n <= 0); 1058336#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058406#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058920#factFINAL assume true; 1058893#factEXIT >#72#return; 1058903#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059109#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059108#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059107#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059106#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058679#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058834#$Ultimate##0 ~n := #in~n; 1059470#L25 assume !(~n <= 0); 1058330#L26 call #t~ret0 := fact(~n - 1);< 1058756#$Ultimate##0 ~n := #in~n; 1062083#L25 assume !(~n <= 0); 1058334#L26 call #t~ret0 := fact(~n - 1);< 1058814#$Ultimate##0 ~n := #in~n; 1059888#L25 assume !(~n <= 0); 1058329#L26 call #t~ret0 := fact(~n - 1);< 1058737#$Ultimate##0 ~n := #in~n; 1063228#L25 assume !(~n <= 0); 1058321#L26 call #t~ret0 := fact(~n - 1);< 1058738#$Ultimate##0 ~n := #in~n; 1063224#L25 assume !(~n <= 0); 1058324#L26 call #t~ret0 := fact(~n - 1);< 1058421#$Ultimate##0 ~n := #in~n; 1063227#L25 assume !(~n <= 0); 1058327#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058735#factFINAL assume true; 1058729#factEXIT >#66#return; 1058353#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059266#factFINAL assume true; 1058317#factEXIT >#66#return; 1058355#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058882#factFINAL assume true; 1058871#factEXIT >#68#return; 1058082#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058833#$Ultimate##0 ~n := #in~n; 1059295#L25 assume !(~n <= 0); 1058331#L26 call #t~ret0 := fact(~n - 1);< 1059281#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058406#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058920#factFINAL assume true; 1058893#factEXIT >#70#return; 1058172#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058540#$Ultimate##0 ~n := #in~n; 1058507#L25 assume !(~n <= 0); 1058336#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058434#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058870#factFINAL assume true; 1058849#factEXIT >#72#return; 1058867#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059200#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059199#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059198#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059196#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058618#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058834#$Ultimate##0 ~n := #in~n; 1059470#L25 assume !(~n <= 0); 1058330#L26 call #t~ret0 := fact(~n - 1);< 1058756#$Ultimate##0 ~n := #in~n; 1062083#L25 assume !(~n <= 0); 1058334#L26 call #t~ret0 := fact(~n - 1);< 1058814#$Ultimate##0 ~n := #in~n; 1059888#L25 assume !(~n <= 0); 1058329#L26 call #t~ret0 := fact(~n - 1);< 1058737#$Ultimate##0 ~n := #in~n; 1063228#L25 assume !(~n <= 0); 1058321#L26 call #t~ret0 := fact(~n - 1);< 1058738#$Ultimate##0 ~n := #in~n; 1063224#L25 assume !(~n <= 0); 1058324#L26 call #t~ret0 := fact(~n - 1);< 1058421#$Ultimate##0 ~n := #in~n; 1063227#L25 assume !(~n <= 0); 1058327#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058735#factFINAL assume true; 1058729#factEXIT >#66#return; 1058353#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059266#factFINAL assume true; 1058317#factEXIT >#66#return; 1058355#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058882#factFINAL assume true; 1058871#factEXIT >#68#return; 1058110#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058833#$Ultimate##0 ~n := #in~n; 1059295#L25 assume !(~n <= 0); 1058331#L26 call #t~ret0 := fact(~n - 1);< 1059281#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058312#factFINAL assume true; 1058146#factEXIT >#70#return; 1058274#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058540#$Ultimate##0 ~n := #in~n; 1058507#L25 assume !(~n <= 0); 1058336#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058450#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058541#factFINAL assume true; 1058510#factEXIT >#72#return; 1058528#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059192#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059191#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059190#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059188#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058671#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058834#$Ultimate##0 ~n := #in~n; 1059470#L25 assume !(~n <= 0); 1058330#L26 call #t~ret0 := fact(~n - 1);< 1058756#$Ultimate##0 ~n := #in~n; 1062083#L25 assume !(~n <= 0); 1058334#L26 call #t~ret0 := fact(~n - 1);< 1058814#$Ultimate##0 ~n := #in~n; 1059888#L25 assume !(~n <= 0); 1058329#L26 call #t~ret0 := fact(~n - 1);< 1058737#$Ultimate##0 ~n := #in~n; 1063228#L25 assume !(~n <= 0); 1058321#L26 call #t~ret0 := fact(~n - 1);< 1058738#$Ultimate##0 ~n := #in~n; 1063224#L25 assume !(~n <= 0); 1058324#L26 call #t~ret0 := fact(~n - 1);< 1058421#$Ultimate##0 ~n := #in~n; 1063227#L25 assume !(~n <= 0); 1058327#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058735#factFINAL assume true; 1058729#factEXIT >#66#return; 1058353#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059266#factFINAL assume true; 1058317#factEXIT >#66#return; 1058355#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058882#factFINAL assume true; 1058871#factEXIT >#68#return; 1058134#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058833#$Ultimate##0 ~n := #in~n; 1059295#L25 assume !(~n <= 0); 1058331#L26 call #t~ret0 := fact(~n - 1);< 1059281#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058810#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058822#factFINAL assume true; 1058800#factEXIT >#70#return; 1058208#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058797#$Ultimate##0 ~n := #in~n; 1059296#L25 assume !(~n <= 0); 1058331#L26 call #t~ret0 := fact(~n - 1);< 1059281#$Ultimate##0 ~n := #in~n; 1059297#L25 assume ~n <= 0;#res := 1; 1059284#factFINAL assume true; 1059277#factEXIT >#66#return; 1059275#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058819#factFINAL assume true; 1058777#factEXIT >#72#return; 1058786#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059029#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059027#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059025#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059023#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058674#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058834#$Ultimate##0 ~n := #in~n; 1059470#L25 assume !(~n <= 0); 1058330#L26 call #t~ret0 := fact(~n - 1);< 1058756#$Ultimate##0 ~n := #in~n; 1062083#L25 assume !(~n <= 0); 1058334#L26 call #t~ret0 := fact(~n - 1);< 1058814#$Ultimate##0 ~n := #in~n; 1059888#L25 assume !(~n <= 0); 1058329#L26 call #t~ret0 := fact(~n - 1);< 1058737#$Ultimate##0 ~n := #in~n; 1063228#L25 assume !(~n <= 0); 1058321#L26 call #t~ret0 := fact(~n - 1);< 1058738#$Ultimate##0 ~n := #in~n; 1063224#L25 assume !(~n <= 0); 1058324#L26 call #t~ret0 := fact(~n - 1);< 1058421#$Ultimate##0 ~n := #in~n; 1063227#L25 assume !(~n <= 0); 1058327#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058735#factFINAL assume true; 1058729#factEXIT >#66#return; 1058728#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058727#factFINAL assume true; 1058617#factEXIT >#68#return; 1058567#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058807#$Ultimate##0 ~n := #in~n; 1058805#L25 assume !(~n <= 0); 1058344#L26 call #t~ret0 := fact(~n - 1);< 1058739#$Ultimate##0 ~n := #in~n; 1061303#L25 assume !(~n <= 0); 1058339#L26 call #t~ret0 := fact(~n - 1);< 1059015#$Ultimate##0 ~n := #in~n; 1061301#L25 assume !(~n <= 0); 1058342#L26 call #t~ret0 := fact(~n - 1);< 1061058#$Ultimate##0 ~n := #in~n; 1060213#L25 assume !(~n <= 0); 1058345#L26 call #t~ret0 := fact(~n - 1);< 1059929#$Ultimate##0 ~n := #in~n; 1059927#L25 assume !(~n <= 0); 1058348#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058735#factFINAL assume true; 1058729#factEXIT >#66#return; 1058733#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059225#factFINAL assume true; 1058544#factEXIT >#70#return; 1058081#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058833#$Ultimate##0 ~n := #in~n; 1059295#L25 assume ~n <= 0;#res := 1; 1058143#factFINAL assume true; 1058076#factEXIT >#72#return; 1058035#L30-3 [2023-02-18 08:59:20,206 INFO L750 eck$LassoCheckResult]: Loop: 1058035#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1058036#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059659#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059657#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059651#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058028#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1057990#$Ultimate##0 ~n := #in~n; 1058059#L25 assume !(~n <= 0); 1058024#L26 call #t~ret0 := fact(~n - 1);< 1058029#$Ultimate##0 ~n := #in~n; 1059584#L25 assume !(~n <= 0); 1059560#L26 call #t~ret0 := fact(~n - 1);< 1059570#$Ultimate##0 ~n := #in~n; 1059562#L25 assume !(~n <= 0); 1059516#L26 call #t~ret0 := fact(~n - 1);< 1059550#$Ultimate##0 ~n := #in~n; 1059549#L25 assume !(~n <= 0); 1059511#L26 call #t~ret0 := fact(~n - 1);< 1059515#$Ultimate##0 ~n := #in~n; 1059513#L25 assume !(~n <= 0); 1059482#L26 call #t~ret0 := fact(~n - 1);< 1059507#$Ultimate##0 ~n := #in~n; 1059502#L25 assume !(~n <= 0); 1059481#L26 call #t~ret0 := fact(~n - 1);< 1059483#$Ultimate##0 ~n := #in~n; 1059505#L25 assume !(~n <= 0); 1059492#L26 call #t~ret0 := fact(~n - 1);< 1059498#$Ultimate##0 ~n := #in~n; 1059508#L25 assume ~n <= 0;#res := 1; 1059501#factFINAL assume true; 1059496#factEXIT >#66#return; 1059489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059494#factFINAL assume true; 1059553#factEXIT >#66#return; 1059554#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059721#factFINAL assume true; 1059660#factEXIT >#66#return; 1059658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059656#factFINAL assume true; 1059653#factEXIT >#66#return; 1059650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059649#factFINAL assume true; 1059595#factEXIT >#66#return; 1059596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059617#factFINAL assume true; 1059605#factEXIT >#66#return; 1059606#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059718#factFINAL assume true; 1059663#factEXIT >#66#return; 1059662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059661#factFINAL assume true; 1059597#factEXIT >#74#return; 1059533#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1059546#$Ultimate##0 ~n := #in~n; 1059544#L25 assume !(~n <= 0); 1059526#L26 call #t~ret0 := fact(~n - 1);< 1059528#$Ultimate##0 ~n := #in~n; 1059527#L25 assume !(~n <= 0); 1059517#L26 call #t~ret0 := fact(~n - 1);< 1059524#$Ultimate##0 ~n := #in~n; 1059520#L25 assume !(~n <= 0); 1059485#L26 call #t~ret0 := fact(~n - 1);< 1059509#$Ultimate##0 ~n := #in~n; 1059504#L25 assume !(~n <= 0); 1059484#L26 call #t~ret0 := fact(~n - 1);< 1059486#$Ultimate##0 ~n := #in~n; 1059506#L25 assume !(~n <= 0); 1059493#L26 call #t~ret0 := fact(~n - 1);< 1059499#$Ultimate##0 ~n := #in~n; 1059503#L25 assume !(~n <= 0); 1059497#L26 call #t~ret0 := fact(~n - 1);< 1059500#$Ultimate##0 ~n := #in~n; 1059508#L25 assume ~n <= 0;#res := 1; 1059501#factFINAL assume true; 1059496#factEXIT >#66#return; 1059489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059494#factFINAL assume true; 1059553#factEXIT >#66#return; 1059554#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059721#factFINAL assume true; 1059660#factEXIT >#66#return; 1059658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059656#factFINAL assume true; 1059653#factEXIT >#66#return; 1059650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059649#factFINAL assume true; 1059595#factEXIT >#66#return; 1059596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059617#factFINAL assume true; 1059605#factEXIT >#66#return; 1059603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059601#factFINAL assume true; 1059598#factEXIT >#76#return; 1059420#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058074#$Ultimate##0 ~n := #in~n; 1059522#L25 assume !(~n <= 0); 1059475#L26 call #t~ret0 := fact(~n - 1);< 1059495#$Ultimate##0 ~n := #in~n; 1059488#L25 assume ~n <= 0;#res := 1; 1059480#factFINAL assume true; 1059474#factEXIT >#66#return; 1059472#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059419#factFINAL assume true; 1059423#factEXIT >#78#return; 1059075#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059781#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1059778#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059775#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1059772#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1059758#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1059726#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059418#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058010#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058011#$Ultimate##0 ~n := #in~n; 1059464#L25 assume !(~n <= 0); 1058409#L26 call #t~ret0 := fact(~n - 1);< 1058734#$Ultimate##0 ~n := #in~n; 1062321#L25 assume !(~n <= 0); 1058366#L26 call #t~ret0 := fact(~n - 1);< 1058391#$Ultimate##0 ~n := #in~n; 1063254#L25 assume !(~n <= 0); 1058412#L26 call #t~ret0 := fact(~n - 1);< 1058610#$Ultimate##0 ~n := #in~n; 1063005#L25 assume !(~n <= 0); 1058398#L26 call #t~ret0 := fact(~n - 1);< 1058414#$Ultimate##0 ~n := #in~n; 1063218#L25 assume !(~n <= 0); 1058428#L26 call #t~ret0 := fact(~n - 1);< 1058436#$Ultimate##0 ~n := #in~n; 1063211#L25 assume !(~n <= 0); 1058447#L26 call #t~ret0 := fact(~n - 1);< 1058454#$Ultimate##0 ~n := #in~n; 1063260#L25 assume !(~n <= 0); 1058470#L26 call #t~ret0 := fact(~n - 1);< 1058472#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058735#factFINAL assume true; 1058729#factEXIT >#66#return; 1058731#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059014#factFINAL assume true; 1059011#factEXIT >#68#return; 1058989#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058997#$Ultimate##0 ~n := #in~n; 1059006#L25 assume ~n <= 0;#res := 1; 1058999#factFINAL assume true; 1058984#factEXIT >#70#return; 1058965#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058981#$Ultimate##0 ~n := #in~n; 1059030#L25 assume !(~n <= 0); 1058328#L26 call #t~ret0 := fact(~n - 1);< 1058739#$Ultimate##0 ~n := #in~n; 1061303#L25 assume !(~n <= 0); 1058339#L26 call #t~ret0 := fact(~n - 1);< 1059015#$Ultimate##0 ~n := #in~n; 1061301#L25 assume !(~n <= 0); 1058342#L26 call #t~ret0 := fact(~n - 1);< 1061058#$Ultimate##0 ~n := #in~n; 1060213#L25 assume !(~n <= 0); 1058345#L26 call #t~ret0 := fact(~n - 1);< 1059929#$Ultimate##0 ~n := #in~n; 1059927#L25 assume !(~n <= 0); 1058348#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058735#factFINAL assume true; 1058729#factEXIT >#66#return; 1058354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058983#factFINAL assume true; 1058963#factEXIT >#72#return; 1058974#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059035#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059033#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059031#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059019#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058641#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058726#$Ultimate##0 ~n := #in~n; 1059461#L25 assume !(~n <= 0); 1058408#L26 call #t~ret0 := fact(~n - 1);< 1058734#$Ultimate##0 ~n := #in~n; 1062321#L25 assume !(~n <= 0); 1058366#L26 call #t~ret0 := fact(~n - 1);< 1058391#$Ultimate##0 ~n := #in~n; 1063254#L25 assume !(~n <= 0); 1058412#L26 call #t~ret0 := fact(~n - 1);< 1058610#$Ultimate##0 ~n := #in~n; 1063005#L25 assume !(~n <= 0); 1058398#L26 call #t~ret0 := fact(~n - 1);< 1058414#$Ultimate##0 ~n := #in~n; 1063218#L25 assume !(~n <= 0); 1058428#L26 call #t~ret0 := fact(~n - 1);< 1058436#$Ultimate##0 ~n := #in~n; 1063211#L25 assume !(~n <= 0); 1058447#L26 call #t~ret0 := fact(~n - 1);< 1058454#$Ultimate##0 ~n := #in~n; 1063260#L25 assume !(~n <= 0); 1058470#L26 call #t~ret0 := fact(~n - 1);< 1058472#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058735#factFINAL assume true; 1058729#factEXIT >#66#return; 1058728#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058727#factFINAL assume true; 1058617#factEXIT >#68#return; 1058709#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058820#$Ultimate##0 ~n := #in~n; 1063264#L25 assume !(~n <= 0); 1058145#L26 call #t~ret0 := fact(~n - 1);< 1059280#$Ultimate##0 ~n := #in~n; 1059297#L25 assume ~n <= 0;#res := 1; 1059284#factFINAL assume true; 1059277#factEXIT >#66#return; 1059275#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058819#factFINAL assume true; 1058777#factEXIT >#70#return; 1058314#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058315#$Ultimate##0 ~n := #in~n; 1059257#L25 assume !(~n <= 0); 1058356#L26 call #t~ret0 := fact(~n - 1);< 1058358#$Ultimate##0 ~n := #in~n; 1063265#L25 assume !(~n <= 0); 1058397#L26 call #t~ret0 := fact(~n - 1);< 1058410#$Ultimate##0 ~n := #in~n; 1063258#L25 assume !(~n <= 0); 1058400#L26 call #t~ret0 := fact(~n - 1);< 1058435#$Ultimate##0 ~n := #in~n; 1059887#L25 assume !(~n <= 0); 1058430#L26 call #t~ret0 := fact(~n - 1);< 1058453#$Ultimate##0 ~n := #in~n; 1058478#L25 assume !(~n <= 0); 1058448#L26 call #t~ret0 := fact(~n - 1);< 1058474#$Ultimate##0 ~n := #in~n; 1063260#L25 assume !(~n <= 0); 1058470#L26 call #t~ret0 := fact(~n - 1);< 1058472#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058810#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058822#factFINAL assume true; 1058800#factEXIT >#72#return; 1058580#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059197#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059195#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059194#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059193#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058678#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058726#$Ultimate##0 ~n := #in~n; 1059461#L25 assume !(~n <= 0); 1058408#L26 call #t~ret0 := fact(~n - 1);< 1058734#$Ultimate##0 ~n := #in~n; 1062321#L25 assume !(~n <= 0); 1058366#L26 call #t~ret0 := fact(~n - 1);< 1058391#$Ultimate##0 ~n := #in~n; 1063254#L25 assume !(~n <= 0); 1058412#L26 call #t~ret0 := fact(~n - 1);< 1058610#$Ultimate##0 ~n := #in~n; 1063005#L25 assume !(~n <= 0); 1058398#L26 call #t~ret0 := fact(~n - 1);< 1058414#$Ultimate##0 ~n := #in~n; 1063218#L25 assume !(~n <= 0); 1058428#L26 call #t~ret0 := fact(~n - 1);< 1058436#$Ultimate##0 ~n := #in~n; 1063211#L25 assume !(~n <= 0); 1058447#L26 call #t~ret0 := fact(~n - 1);< 1058454#$Ultimate##0 ~n := #in~n; 1063260#L25 assume !(~n <= 0); 1058470#L26 call #t~ret0 := fact(~n - 1);< 1058472#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058735#factFINAL assume true; 1058729#factEXIT >#66#return; 1058728#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058727#factFINAL assume true; 1058617#factEXIT >#68#return; 1058513#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058948#$Ultimate##0 ~n := #in~n; 1059959#L25 assume !(~n <= 0); 1058442#L26 call #t~ret0 := fact(~n - 1);< 1063266#$Ultimate##0 ~n := #in~n; 1063260#L25 assume !(~n <= 0); 1058470#L26 call #t~ret0 := fact(~n - 1);< 1058472#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058450#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058541#factFINAL assume true; 1058510#factEXIT >#70#return; 1058184#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058748#$Ultimate##0 ~n := #in~n; 1058746#L25 assume !(~n <= 0); 1058361#L26 call #t~ret0 := fact(~n - 1);< 1058358#$Ultimate##0 ~n := #in~n; 1063265#L25 assume !(~n <= 0); 1058397#L26 call #t~ret0 := fact(~n - 1);< 1058410#$Ultimate##0 ~n := #in~n; 1063258#L25 assume !(~n <= 0); 1058400#L26 call #t~ret0 := fact(~n - 1);< 1058435#$Ultimate##0 ~n := #in~n; 1059887#L25 assume !(~n <= 0); 1058430#L26 call #t~ret0 := fact(~n - 1);< 1058453#$Ultimate##0 ~n := #in~n; 1058478#L25 assume !(~n <= 0); 1058448#L26 call #t~ret0 := fact(~n - 1);< 1058474#$Ultimate##0 ~n := #in~n; 1063260#L25 assume !(~n <= 0); 1058470#L26 call #t~ret0 := fact(~n - 1);< 1058472#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058810#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058822#factFINAL assume true; 1058800#factEXIT >#72#return; 1058301#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059189#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059187#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059186#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059185#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058647#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058726#$Ultimate##0 ~n := #in~n; 1059461#L25 assume !(~n <= 0); 1058408#L26 call #t~ret0 := fact(~n - 1);< 1058734#$Ultimate##0 ~n := #in~n; 1062321#L25 assume !(~n <= 0); 1058366#L26 call #t~ret0 := fact(~n - 1);< 1058391#$Ultimate##0 ~n := #in~n; 1063254#L25 assume !(~n <= 0); 1058412#L26 call #t~ret0 := fact(~n - 1);< 1058610#$Ultimate##0 ~n := #in~n; 1063005#L25 assume !(~n <= 0); 1058398#L26 call #t~ret0 := fact(~n - 1);< 1058414#$Ultimate##0 ~n := #in~n; 1063218#L25 assume !(~n <= 0); 1058428#L26 call #t~ret0 := fact(~n - 1);< 1058436#$Ultimate##0 ~n := #in~n; 1063211#L25 assume !(~n <= 0); 1058447#L26 call #t~ret0 := fact(~n - 1);< 1058454#$Ultimate##0 ~n := #in~n; 1063260#L25 assume !(~n <= 0); 1058470#L26 call #t~ret0 := fact(~n - 1);< 1058472#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058735#factFINAL assume true; 1058729#factEXIT >#66#return; 1058728#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058727#factFINAL assume true; 1058617#factEXIT >#68#return; 1058158#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058797#$Ultimate##0 ~n := #in~n; 1059296#L25 assume !(~n <= 0); 1058331#L26 call #t~ret0 := fact(~n - 1);< 1059281#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058434#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058870#factFINAL assume true; 1058849#factEXIT >#70#return; 1058237#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058539#$Ultimate##0 ~n := #in~n; 1058484#L25 assume !(~n <= 0); 1058365#L26 call #t~ret0 := fact(~n - 1);< 1058487#$Ultimate##0 ~n := #in~n; 1058486#L25 assume !(~n <= 0); 1058394#L26 call #t~ret0 := fact(~n - 1);< 1058482#$Ultimate##0 ~n := #in~n; 1058480#L25 assume !(~n <= 0); 1058395#L26 call #t~ret0 := fact(~n - 1);< 1058452#$Ultimate##0 ~n := #in~n; 1058477#L25 assume !(~n <= 0); 1058424#L26 call #t~ret0 := fact(~n - 1);< 1058473#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058406#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058920#factFINAL assume true; 1058893#factEXIT >#72#return; 1058900#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059208#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059207#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059206#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059205#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058694#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058726#$Ultimate##0 ~n := #in~n; 1059461#L25 assume !(~n <= 0); 1058408#L26 call #t~ret0 := fact(~n - 1);< 1058734#$Ultimate##0 ~n := #in~n; 1062321#L25 assume !(~n <= 0); 1058366#L26 call #t~ret0 := fact(~n - 1);< 1058391#$Ultimate##0 ~n := #in~n; 1063254#L25 assume !(~n <= 0); 1058412#L26 call #t~ret0 := fact(~n - 1);< 1058610#$Ultimate##0 ~n := #in~n; 1063005#L25 assume !(~n <= 0); 1058398#L26 call #t~ret0 := fact(~n - 1);< 1058414#$Ultimate##0 ~n := #in~n; 1063218#L25 assume !(~n <= 0); 1058428#L26 call #t~ret0 := fact(~n - 1);< 1058436#$Ultimate##0 ~n := #in~n; 1063211#L25 assume !(~n <= 0); 1058447#L26 call #t~ret0 := fact(~n - 1);< 1058454#$Ultimate##0 ~n := #in~n; 1063260#L25 assume !(~n <= 0); 1058470#L26 call #t~ret0 := fact(~n - 1);< 1058472#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058735#factFINAL assume true; 1058729#factEXIT >#66#return; 1058728#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058727#factFINAL assume true; 1058617#factEXIT >#68#return; 1058148#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058797#$Ultimate##0 ~n := #in~n; 1059296#L25 assume !(~n <= 0); 1058331#L26 call #t~ret0 := fact(~n - 1);< 1059281#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058406#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058920#factFINAL assume true; 1058893#factEXIT >#70#return; 1058175#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058539#$Ultimate##0 ~n := #in~n; 1058484#L25 assume !(~n <= 0); 1058365#L26 call #t~ret0 := fact(~n - 1);< 1058487#$Ultimate##0 ~n := #in~n; 1058486#L25 assume !(~n <= 0); 1058394#L26 call #t~ret0 := fact(~n - 1);< 1058482#$Ultimate##0 ~n := #in~n; 1058480#L25 assume !(~n <= 0); 1058395#L26 call #t~ret0 := fact(~n - 1);< 1058452#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058434#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058870#factFINAL assume true; 1058849#factEXIT >#72#return; 1058864#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059204#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059203#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059202#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059201#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058629#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058726#$Ultimate##0 ~n := #in~n; 1059461#L25 assume !(~n <= 0); 1058408#L26 call #t~ret0 := fact(~n - 1);< 1058734#$Ultimate##0 ~n := #in~n; 1062321#L25 assume !(~n <= 0); 1058366#L26 call #t~ret0 := fact(~n - 1);< 1058391#$Ultimate##0 ~n := #in~n; 1063254#L25 assume !(~n <= 0); 1058412#L26 call #t~ret0 := fact(~n - 1);< 1058610#$Ultimate##0 ~n := #in~n; 1063005#L25 assume !(~n <= 0); 1058398#L26 call #t~ret0 := fact(~n - 1);< 1058414#$Ultimate##0 ~n := #in~n; 1063218#L25 assume !(~n <= 0); 1058428#L26 call #t~ret0 := fact(~n - 1);< 1058436#$Ultimate##0 ~n := #in~n; 1063211#L25 assume !(~n <= 0); 1058447#L26 call #t~ret0 := fact(~n - 1);< 1058454#$Ultimate##0 ~n := #in~n; 1063260#L25 assume !(~n <= 0); 1058470#L26 call #t~ret0 := fact(~n - 1);< 1058472#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058735#factFINAL assume true; 1058729#factEXIT >#66#return; 1058728#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058727#factFINAL assume true; 1058617#factEXIT >#68#return; 1058267#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058797#$Ultimate##0 ~n := #in~n; 1059296#L25 assume !(~n <= 0); 1058331#L26 call #t~ret0 := fact(~n - 1);< 1059281#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058312#factFINAL assume true; 1058146#factEXIT >#70#return; 1058273#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058539#$Ultimate##0 ~n := #in~n; 1058484#L25 assume !(~n <= 0); 1058365#L26 call #t~ret0 := fact(~n - 1);< 1058487#$Ultimate##0 ~n := #in~n; 1058486#L25 assume !(~n <= 0); 1058394#L26 call #t~ret0 := fact(~n - 1);< 1058482#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058450#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058541#factFINAL assume true; 1058510#factEXIT >#72#return; 1058527#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059184#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059182#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059180#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059178#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058670#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058726#$Ultimate##0 ~n := #in~n; 1059461#L25 assume !(~n <= 0); 1058408#L26 call #t~ret0 := fact(~n - 1);< 1058734#$Ultimate##0 ~n := #in~n; 1062321#L25 assume !(~n <= 0); 1058366#L26 call #t~ret0 := fact(~n - 1);< 1058391#$Ultimate##0 ~n := #in~n; 1063254#L25 assume !(~n <= 0); 1058412#L26 call #t~ret0 := fact(~n - 1);< 1058610#$Ultimate##0 ~n := #in~n; 1063005#L25 assume !(~n <= 0); 1058398#L26 call #t~ret0 := fact(~n - 1);< 1058414#$Ultimate##0 ~n := #in~n; 1063218#L25 assume !(~n <= 0); 1058428#L26 call #t~ret0 := fact(~n - 1);< 1058436#$Ultimate##0 ~n := #in~n; 1063211#L25 assume !(~n <= 0); 1058447#L26 call #t~ret0 := fact(~n - 1);< 1058454#$Ultimate##0 ~n := #in~n; 1063260#L25 assume !(~n <= 0); 1058470#L26 call #t~ret0 := fact(~n - 1);< 1058472#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058735#factFINAL assume true; 1058729#factEXIT >#66#return; 1058728#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058727#factFINAL assume true; 1058617#factEXIT >#68#return; 1058196#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058797#$Ultimate##0 ~n := #in~n; 1059296#L25 assume !(~n <= 0); 1058331#L26 call #t~ret0 := fact(~n - 1);< 1059281#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058810#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058822#factFINAL assume true; 1058800#factEXIT >#70#return; 1058500#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058508#$Ultimate##0 ~n := #in~n; 1058505#L25 assume !(~n <= 0); 1058360#L26 call #t~ret0 := fact(~n - 1);< 1058504#$Ultimate##0 ~n := #in~n; 1059297#L25 assume ~n <= 0;#res := 1; 1059284#factFINAL assume true; 1059277#factEXIT >#66#return; 1059275#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058819#factFINAL assume true; 1058777#factEXIT >#72#return; 1058792#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1059028#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1059026#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1059024#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1059022#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1058675#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1058726#$Ultimate##0 ~n := #in~n; 1059461#L25 assume !(~n <= 0); 1058408#L26 call #t~ret0 := fact(~n - 1);< 1058734#$Ultimate##0 ~n := #in~n; 1062321#L25 assume !(~n <= 0); 1058366#L26 call #t~ret0 := fact(~n - 1);< 1058391#$Ultimate##0 ~n := #in~n; 1063254#L25 assume !(~n <= 0); 1058412#L26 call #t~ret0 := fact(~n - 1);< 1058610#$Ultimate##0 ~n := #in~n; 1063005#L25 assume !(~n <= 0); 1058398#L26 call #t~ret0 := fact(~n - 1);< 1058414#$Ultimate##0 ~n := #in~n; 1063218#L25 assume !(~n <= 0); 1058428#L26 call #t~ret0 := fact(~n - 1);< 1058436#$Ultimate##0 ~n := #in~n; 1063211#L25 assume !(~n <= 0); 1058447#L26 call #t~ret0 := fact(~n - 1);< 1058454#$Ultimate##0 ~n := #in~n; 1063260#L25 assume !(~n <= 0); 1058470#L26 call #t~ret0 := fact(~n - 1);< 1058472#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058735#factFINAL assume true; 1058729#factEXIT >#66#return; 1058728#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058727#factFINAL assume true; 1058617#factEXIT >#68#return; 1058574#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1058807#$Ultimate##0 ~n := #in~n; 1058805#L25 assume !(~n <= 0); 1058344#L26 call #t~ret0 := fact(~n - 1);< 1058739#$Ultimate##0 ~n := #in~n; 1061303#L25 assume !(~n <= 0); 1058339#L26 call #t~ret0 := fact(~n - 1);< 1059015#$Ultimate##0 ~n := #in~n; 1061301#L25 assume !(~n <= 0); 1058342#L26 call #t~ret0 := fact(~n - 1);< 1061058#$Ultimate##0 ~n := #in~n; 1060213#L25 assume !(~n <= 0); 1058345#L26 call #t~ret0 := fact(~n - 1);< 1059929#$Ultimate##0 ~n := #in~n; 1059927#L25 assume !(~n <= 0); 1058348#L26 call #t~ret0 := fact(~n - 1);< 1058420#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058485#L25 assume !(~n <= 0); 1058333#L26 call #t~ret0 := fact(~n - 1);< 1058471#$Ultimate##0 ~n := #in~n; 1058479#L25 assume ~n <= 0;#res := 1; 1058476#factFINAL assume true; 1058469#factEXIT >#66#return; 1058467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058455#factFINAL assume true; 1058441#factEXIT >#66#return; 1058440#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058437#factFINAL assume true; 1058423#factEXIT >#66#return; 1058422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058415#factFINAL assume true; 1058393#factEXIT >#66#return; 1058405#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058611#factFINAL assume true; 1058604#factEXIT >#66#return; 1058392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058359#factFINAL assume true; 1058370#factEXIT >#66#return; 1058744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1058735#factFINAL assume true; 1058729#factEXIT >#66#return; 1058733#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1059225#factFINAL assume true; 1058544#factEXIT >#70#return; 1058088#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1058509#$Ultimate##0 ~n := #in~n; 1058506#L25 assume ~n <= 0;#res := 1; 1058143#factFINAL assume true; 1058076#factEXIT >#72#return; 1058035#L30-3 [2023-02-18 08:59:20,207 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:59:20,207 INFO L85 PathProgramCache]: Analyzing trace with hash -365152256, now seen corresponding path program 84 times [2023-02-18 08:59:20,207 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:59:20,207 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1790389973] [2023-02-18 08:59:20,207 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:59:20,207 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:59:20,246 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:59:20,246 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1879442134] [2023-02-18 08:59:20,246 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:59:20,246 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:59:20,246 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:20,249 INFO L229 MonitoredProcess]: Starting monitored process 293 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:59:20,250 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (293)] Waiting until timeout for monitored process [2023-02-18 08:59:21,579 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 27 check-sat command(s) [2023-02-18 08:59:21,579 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:59:21,587 INFO L263 TraceCheckSpWp]: Trace formula consists of 1249 conjuncts, 46 conjunts are in the unsatisfiable core [2023-02-18 08:59:21,598 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:59:21,776 INFO L134 CoverageAnalysis]: Checked inductivity of 261464 backedges. 14790 proven. 3985 refuted. 0 times theorem prover too weak. 242689 trivial. 0 not checked. [2023-02-18 08:59:21,776 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:59:22,406 INFO L134 CoverageAnalysis]: Checked inductivity of 261464 backedges. 13518 proven. 4073 refuted. 0 times theorem prover too weak. 243873 trivial. 0 not checked. [2023-02-18 08:59:22,407 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:59:22,407 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1790389973] [2023-02-18 08:59:22,407 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:59:22,407 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1879442134] [2023-02-18 08:59:22,407 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1879442134] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:59:22,407 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:59:22,407 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [25, 35] total 44 [2023-02-18 08:59:22,407 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [513485064] [2023-02-18 08:59:22,407 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:59:22,408 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:59:22,408 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:59:22,408 INFO L85 PathProgramCache]: Analyzing trace with hash -1776815693, now seen corresponding path program 84 times [2023-02-18 08:59:22,408 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:59:22,408 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1298809843] [2023-02-18 08:59:22,408 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:59:22,408 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:59:22,436 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:59:22,437 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1651133914] [2023-02-18 08:59:22,437 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-18 08:59:22,437 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:59:22,437 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:22,439 INFO L229 MonitoredProcess]: Starting monitored process 294 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:59:22,440 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (294)] Waiting until timeout for monitored process [2023-02-18 08:59:37,464 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 57 check-sat command(s) [2023-02-18 08:59:37,464 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:59:37,474 INFO L263 TraceCheckSpWp]: Trace formula consists of 1683 conjuncts, 39 conjunts are in the unsatisfiable core [2023-02-18 08:59:37,480 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:59:37,600 INFO L134 CoverageAnalysis]: Checked inductivity of 63383 backedges. 34207 proven. 1673 refuted. 0 times theorem prover too weak. 27503 trivial. 0 not checked. [2023-02-18 08:59:37,600 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:59:38,085 INFO L134 CoverageAnalysis]: Checked inductivity of 63383 backedges. 2768 proven. 7941 refuted. 0 times theorem prover too weak. 52674 trivial. 0 not checked. [2023-02-18 08:59:38,085 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:59:38,085 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1298809843] [2023-02-18 08:59:38,085 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:59:38,085 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1651133914] [2023-02-18 08:59:38,085 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1651133914] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:59:38,085 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:59:38,085 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 34] total 38 [2023-02-18 08:59:38,086 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2132087523] [2023-02-18 08:59:38,086 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:59:38,086 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:59:38,086 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:59:38,086 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 38 interpolants. [2023-02-18 08:59:38,086 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=191, Invalid=1215, Unknown=0, NotChecked=0, Total=1406 [2023-02-18 08:59:38,087 INFO L87 Difference]: Start difference. First operand 5484 states and 8666 transitions. cyclomatic complexity: 3227 Second operand has 38 states, 33 states have (on average 2.8484848484848486) internal successors, (94), 36 states have internal predecessors, (94), 23 states have call successors, (35), 2 states have call predecessors, (35), 16 states have return successors, (46), 19 states have call predecessors, (46), 23 states have call successors, (46) [2023-02-18 08:59:40,042 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:59:40,042 INFO L93 Difference]: Finished difference Result 7404 states and 11816 transitions. [2023-02-18 08:59:40,043 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 7404 states and 11816 transitions. [2023-02-18 08:59:40,077 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 1028 [2023-02-18 08:59:40,118 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 7404 states to 7393 states and 11800 transitions. [2023-02-18 08:59:40,119 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 573 [2023-02-18 08:59:40,119 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 585 [2023-02-18 08:59:40,119 INFO L73 IsDeterministic]: Start isDeterministic. Operand 7393 states and 11800 transitions. [2023-02-18 08:59:40,119 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:59:40,119 INFO L218 hiAutomatonCegarLoop]: Abstraction has 7393 states and 11800 transitions. [2023-02-18 08:59:40,122 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 7393 states and 11800 transitions. [2023-02-18 08:59:40,187 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 7393 to 5859. [2023-02-18 08:59:40,191 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5859 states, 3531 states have (on average 1.0504106485414897) internal successors, (3709), 3509 states have internal predecessors, (3709), 1949 states have call successors, (1971), 578 states have call predecessors, (1971), 379 states have return successors, (3838), 1771 states have call predecessors, (3838), 1949 states have call successors, (3838) [2023-02-18 08:59:40,209 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5859 states to 5859 states and 9518 transitions. [2023-02-18 08:59:40,209 INFO L240 hiAutomatonCegarLoop]: Abstraction has 5859 states and 9518 transitions. [2023-02-18 08:59:40,209 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 46 states. [2023-02-18 08:59:40,210 INFO L428 stractBuchiCegarLoop]: Abstraction has 5859 states and 9518 transitions. [2023-02-18 08:59:40,210 INFO L335 stractBuchiCegarLoop]: ======== Iteration 97 ============ [2023-02-18 08:59:40,210 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 5859 states and 9518 transitions. [2023-02-18 08:59:40,221 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 821 [2023-02-18 08:59:40,221 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:59:40,221 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:59:40,227 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [322, 322, 241, 241, 241, 241, 81, 27, 26, 20, 20, 20, 20, 20, 20, 20, 19, 19, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 4, 4, 1, 1, 1, 1] [2023-02-18 08:59:40,227 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [158, 158, 131, 131, 131, 131, 27, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:59:40,228 INFO L748 eck$LassoCheckResult]: Stem: 1088667#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 1088613#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; 1088614#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 1088635#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; 1088668#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1093563#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1093560#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1088600#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1088601#$Ultimate##0 ~n := #in~n; 1093571#L25 assume ~n <= 0;#res := 1; 1093568#factFINAL assume true; 1093566#factEXIT >#68#return; 1088657#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1088658#$Ultimate##0 ~n := #in~n; 1094086#L25 assume ~n <= 0;#res := 1; 1094084#factFINAL assume true; 1094082#factEXIT >#70#return; 1088596#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1088597#$Ultimate##0 ~n := #in~n; 1093797#L25 assume ~n <= 0;#res := 1; 1093796#factFINAL assume true; 1093795#factEXIT >#72#return; 1093794#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1093793#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1093792#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1093788#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1093785#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1093773#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1093774#$Ultimate##0 ~n := #in~n; 1093784#L25 assume !(~n <= 0); 1093782#L26 call #t~ret0 := fact(~n - 1);< 1093783#$Ultimate##0 ~n := #in~n; 1093790#L25 assume ~n <= 0;#res := 1; 1093787#factFINAL assume true; 1093781#factEXIT >#66#return; 1093780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1093779#factFINAL assume true; 1093772#factEXIT >#74#return; 1093767#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1093768#$Ultimate##0 ~n := #in~n; 1093778#L25 assume ~n <= 0;#res := 1; 1093771#factFINAL assume true; 1093766#factEXIT >#76#return; 1093758#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1093759#$Ultimate##0 ~n := #in~n; 1093791#L25 assume !(~n <= 0); 1093776#L26 call #t~ret0 := fact(~n - 1);< 1093777#$Ultimate##0 ~n := #in~n; 1093789#L25 assume ~n <= 0;#res := 1; 1093786#factFINAL assume true; 1093775#factEXIT >#66#return; 1093770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1093764#factFINAL assume true; 1093757#factEXIT >#78#return; 1093756#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1093753#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1093749#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1093746#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1093745#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1093734#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1093735#$Ultimate##0 ~n := #in~n; 1093762#L25 assume !(~n <= 0); 1093739#L26 call #t~ret0 := fact(~n - 1);< 1093743#$Ultimate##0 ~n := #in~n; 1093765#L25 assume !(~n <= 0); 1093738#L26 call #t~ret0 := fact(~n - 1);< 1093755#$Ultimate##0 ~n := #in~n; 1093769#L25 assume ~n <= 0;#res := 1; 1093763#factFINAL assume true; 1093754#factEXIT >#66#return; 1093752#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1093748#factFINAL assume true; 1093737#factEXIT >#66#return; 1093741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1093798#factFINAL assume true; 1093733#factEXIT >#74#return; 1093728#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1093729#$Ultimate##0 ~n := #in~n; 1093744#L25 assume ~n <= 0;#res := 1; 1093732#factFINAL assume true; 1093727#factEXIT >#76#return; 1093722#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1093723#$Ultimate##0 ~n := #in~n; 1093751#L25 assume !(~n <= 0); 1093740#L26 call #t~ret0 := fact(~n - 1);< 1093743#$Ultimate##0 ~n := #in~n; 1093765#L25 assume !(~n <= 0); 1093738#L26 call #t~ret0 := fact(~n - 1);< 1093755#$Ultimate##0 ~n := #in~n; 1093769#L25 assume ~n <= 0;#res := 1; 1093763#factFINAL assume true; 1093754#factEXIT >#66#return; 1093752#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1093748#factFINAL assume true; 1093737#factEXIT >#66#return; 1093731#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1093726#factFINAL assume true; 1093721#factEXIT >#78#return; 1093718#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1093716#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1093713#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1093708#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1093705#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1093701#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1093702#$Ultimate##0 ~n := #in~n; 1093715#L25 assume !(~n <= 0); 1093711#L26 call #t~ret0 := fact(~n - 1);< 1093712#$Ultimate##0 ~n := #in~n; 1093725#L25 assume !(~n <= 0); 1093710#L26 call #t~ret0 := fact(~n - 1);< 1093720#$Ultimate##0 ~n := #in~n; 1093725#L25 assume !(~n <= 0); 1093710#L26 call #t~ret0 := fact(~n - 1);< 1093720#$Ultimate##0 ~n := #in~n; 1093750#L25 assume ~n <= 0;#res := 1; 1093747#factFINAL assume true; 1093736#factEXIT >#66#return; 1093730#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1093724#factFINAL assume true; 1093719#factEXIT >#66#return; 1093717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1093714#factFINAL assume true; 1093709#factEXIT >#66#return; 1093707#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1093704#factFINAL assume true; 1093700#factEXIT >#74#return; 1093697#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1093698#$Ultimate##0 ~n := #in~n; 1093703#L25 assume ~n <= 0;#res := 1; 1093699#factFINAL assume true; 1093696#factEXIT >#76#return; 1088643#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1093692#$Ultimate##0 ~n := #in~n; 1094100#L25 assume !(~n <= 0); 1094072#L26 call #t~ret0 := fact(~n - 1);< 1094078#$Ultimate##0 ~n := #in~n; 1094089#L25 assume !(~n <= 0); 1094074#L26 call #t~ret0 := fact(~n - 1);< 1094126#$Ultimate##0 ~n := #in~n; 1094089#L25 assume !(~n <= 0); 1094074#L26 call #t~ret0 := fact(~n - 1);< 1094126#$Ultimate##0 ~n := #in~n; 1094151#L25 assume ~n <= 0;#res := 1; 1094141#factFINAL assume true; 1094125#factEXIT >#66#return; 1094101#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1094088#factFINAL assume true; 1094087#factEXIT >#66#return; 1094085#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1094083#factFINAL assume true; 1094071#factEXIT >#66#return; 1088642#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088644#factFINAL assume true; 1093807#factEXIT >#78#return; 1093686#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1093666#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1093665#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1093650#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1093645#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1093644#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1093641#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1091206#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1091123#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1091130#$Ultimate##0 ~n := #in~n; 1091199#L25 assume !(~n <= 0); 1091173#L26 call #t~ret0 := fact(~n - 1);< 1091194#$Ultimate##0 ~n := #in~n; 1092347#L25 assume ~n <= 0;#res := 1; 1092320#factFINAL assume true; 1092283#factEXIT >#66#return; 1092290#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1092495#factFINAL assume true; 1092492#factEXIT >#68#return; 1092488#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1091117#$Ultimate##0 ~n := #in~n; 1092497#L25 assume ~n <= 0;#res := 1; 1092489#factFINAL assume true; 1092487#factEXIT >#70#return; 1092321#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1092999#$Ultimate##0 ~n := #in~n; 1093078#L25 assume !(~n <= 0); 1091152#L26 call #t~ret0 := fact(~n - 1);< 1092296#$Ultimate##0 ~n := #in~n; 1092347#L25 assume ~n <= 0;#res := 1; 1092320#factFINAL assume true; 1092283#factEXIT >#66#return; 1092291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1093000#factFINAL assume true; 1092998#factEXIT >#72#return; 1092997#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1092996#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1092995#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1092994#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1092993#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1092324#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1092350#$Ultimate##0 ~n := #in~n; 1092348#L25 assume !(~n <= 0); 1091181#L26 call #t~ret0 := fact(~n - 1);< 1092296#$Ultimate##0 ~n := #in~n; 1092347#L25 assume ~n <= 0;#res := 1; 1092320#factFINAL assume true; 1092283#factEXIT >#66#return; 1092294#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1092457#factFINAL assume true; 1092454#factEXIT >#68#return; 1092441#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1092447#$Ultimate##0 ~n := #in~n; 1092510#L25 assume !(~n <= 0); 1092284#L26 call #t~ret0 := fact(~n - 1);< 1092295#$Ultimate##0 ~n := #in~n; 1092347#L25 assume ~n <= 0;#res := 1; 1092320#factFINAL assume true; 1092283#factEXIT >#66#return; 1092289#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1092501#factFINAL assume true; 1092434#factEXIT >#70#return; 1092391#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1092399#$Ultimate##0 ~n := #in~n; 1092452#L25 assume ~n <= 0;#res := 1; 1092450#factFINAL assume true; 1092386#factEXIT >#72#return; 1092385#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1092364#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1092363#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1092362#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1092361#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1092299#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1092359#$Ultimate##0 ~n := #in~n; 1092357#L25 assume !(~n <= 0); 1091168#L26 call #t~ret0 := fact(~n - 1);< 1092318#$Ultimate##0 ~n := #in~n; 1093017#L25 assume !(~n <= 0); 1091169#L26 call #t~ret0 := fact(~n - 1);< 1092708#$Ultimate##0 ~n := #in~n; 1091208#L25 assume ~n <= 0;#res := 1; 1091205#factFINAL assume true; 1091201#factEXIT >#66#return; 1091200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1091195#factFINAL assume true; 1091150#factEXIT >#66#return; 1091193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1092532#factFINAL assume true; 1092528#factEXIT >#74#return; 1092213#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1092269#$Ultimate##0 ~n := #in~n; 1092343#L25 assume !(~n <= 0); 1091158#L26 call #t~ret0 := fact(~n - 1);< 1091194#$Ultimate##0 ~n := #in~n; 1092347#L25 assume ~n <= 0;#res := 1; 1092320#factFINAL assume true; 1092283#factEXIT >#66#return; 1092279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1092270#factFINAL assume true; 1092263#factEXIT >#76#return; 1092255#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1092271#$Ultimate##0 ~n := #in~n; 1092549#L25 assume !(~n <= 0); 1092285#L26 call #t~ret0 := fact(~n - 1);< 1092295#$Ultimate##0 ~n := #in~n; 1092347#L25 assume ~n <= 0;#res := 1; 1092320#factFINAL assume true; 1092283#factEXIT >#66#return; 1092279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1092270#factFINAL assume true; 1092263#factEXIT >#78#return; 1092266#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1092551#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1092550#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1092548#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1092282#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1092155#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1092160#$Ultimate##0 ~n := #in~n; 1092986#L25 assume !(~n <= 0); 1091732#L26 call #t~ret0 := fact(~n - 1);< 1092260#$Ultimate##0 ~n := #in~n; 1092546#L25 assume !(~n <= 0); 1091735#L26 call #t~ret0 := fact(~n - 1);< 1092631#$Ultimate##0 ~n := #in~n; 1092546#L25 assume !(~n <= 0); 1091735#L26 call #t~ret0 := fact(~n - 1);< 1092631#$Ultimate##0 ~n := #in~n; 1091897#L25 assume ~n <= 0;#res := 1; 1091896#factFINAL assume true; 1091890#factEXIT >#66#return; 1091888#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1091884#factFINAL assume true; 1091712#factEXIT >#66#return; 1091736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1092259#factFINAL assume true; 1092192#factEXIT >#66#return; 1092193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1092161#factFINAL assume true; 1092153#factEXIT >#74#return; 1091369#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1092152#$Ultimate##0 ~n := #in~n; 1092371#L25 assume !(~n <= 0); 1091723#L26 call #t~ret0 := fact(~n - 1);< 1092370#$Ultimate##0 ~n := #in~n; 1092458#L25 assume ~n <= 0;#res := 1; 1092451#factFINAL assume true; 1092365#factEXIT >#66#return; 1092159#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1092151#factFINAL assume true; 1092148#factEXIT >#76#return; 1091390#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1091411#$Ultimate##0 ~n := #in~n; 1092564#L25 assume !(~n <= 0); 1091731#L26 call #t~ret0 := fact(~n - 1);< 1092557#$Ultimate##0 ~n := #in~n; 1092373#L25 assume !(~n <= 0); 1091720#L26 call #t~ret0 := fact(~n - 1);< 1092196#$Ultimate##0 ~n := #in~n; 1091897#L25 assume ~n <= 0;#res := 1; 1091896#factFINAL assume true; 1091890#factEXIT >#66#return; 1091888#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1091884#factFINAL assume true; 1091712#factEXIT >#66#return; 1091705#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1091702#factFINAL assume true; 1091362#factEXIT >#78#return; 1091361#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1091360#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1091358#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1091356#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1091354#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1091353#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1091349#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1091207#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1091125#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1091130#$Ultimate##0 ~n := #in~n; 1091199#L25 assume !(~n <= 0); 1091173#L26 call #t~ret0 := fact(~n - 1);< 1091194#$Ultimate##0 ~n := #in~n; 1093188#L25 assume !(~n <= 0); 1091156#L26 call #t~ret0 := fact(~n - 1);< 1091203#$Ultimate##0 ~n := #in~n; 1091208#L25 assume ~n <= 0;#res := 1; 1091205#factFINAL assume true; 1091201#factEXIT >#66#return; 1091200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1091195#factFINAL assume true; 1091150#factEXIT >#66#return; 1091147#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1091145#factFINAL assume true; 1091122#factEXIT >#68#return; 1091112#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1091118#$Ultimate##0 ~n := #in~n; 1091144#L25 assume ~n <= 0;#res := 1; 1091141#factFINAL assume true; 1091110#factEXIT >#70#return; 1091099#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1091108#$Ultimate##0 ~n := #in~n; 1091137#L25 assume !(~n <= 0); 1090912#L26 call #t~ret0 := fact(~n - 1);< 1090941#$Ultimate##0 ~n := #in~n; 1094066#L25 assume !(~n <= 0); 1091016#L26 call #t~ret0 := fact(~n - 1);< 1091019#$Ultimate##0 ~n := #in~n; 1091040#L25 assume ~n <= 0;#res := 1; 1091039#factFINAL assume true; 1091015#factEXIT >#66#return; 1091014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090938#factFINAL assume true; 1090893#factEXIT >#66#return; 1090926#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1091132#factFINAL assume true; 1091097#factEXIT >#72#return; 1091106#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1091148#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1091131#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1091121#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1091109#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1090978#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1090987#$Ultimate##0 ~n := #in~n; 1091032#L25 assume !(~n <= 0); 1090914#L26 call #t~ret0 := fact(~n - 1);< 1090941#$Ultimate##0 ~n := #in~n; 1094066#L25 assume !(~n <= 0); 1091016#L26 call #t~ret0 := fact(~n - 1);< 1091019#$Ultimate##0 ~n := #in~n; 1091040#L25 assume ~n <= 0;#res := 1; 1091039#factFINAL assume true; 1091015#factEXIT >#66#return; 1091014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090938#factFINAL assume true; 1090893#factEXIT >#66#return; 1090927#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1091025#factFINAL assume true; 1090968#factEXIT >#68#return; 1090986#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1091009#$Ultimate##0 ~n := #in~n; 1091036#L25 assume !(~n <= 0); 1090870#L26 call #t~ret0 := fact(~n - 1);< 1090891#$Ultimate##0 ~n := #in~n; 1091013#L25 assume ~n <= 0;#res := 1; 1091010#factFINAL assume true; 1090869#factEXIT >#66#return; 1090886#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1091033#factFINAL assume true; 1090997#factEXIT >#70#return; 1091003#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1091009#$Ultimate##0 ~n := #in~n; 1091036#L25 assume !(~n <= 0); 1090870#L26 call #t~ret0 := fact(~n - 1);< 1090891#$Ultimate##0 ~n := #in~n; 1091013#L25 assume ~n <= 0;#res := 1; 1091010#factFINAL assume true; 1090869#factEXIT >#66#return; 1090886#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1091033#factFINAL assume true; 1090997#factEXIT >#72#return; 1091008#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1091088#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1091087#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1091083#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1091080#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1090979#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1090987#$Ultimate##0 ~n := #in~n; 1091032#L25 assume !(~n <= 0); 1090914#L26 call #t~ret0 := fact(~n - 1);< 1090941#$Ultimate##0 ~n := #in~n; 1094066#L25 assume !(~n <= 0); 1091016#L26 call #t~ret0 := fact(~n - 1);< 1091019#$Ultimate##0 ~n := #in~n; 1091040#L25 assume ~n <= 0;#res := 1; 1091039#factFINAL assume true; 1091015#factEXIT >#66#return; 1091014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090938#factFINAL assume true; 1090893#factEXIT >#66#return; 1090927#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1091025#factFINAL assume true; 1090968#factEXIT >#68#return; 1090966#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1090967#$Ultimate##0 ~n := #in~n; 1091085#L25 assume !(~n <= 0); 1090916#L26 call #t~ret0 := fact(~n - 1);< 1091063#$Ultimate##0 ~n := #in~n; 1091299#L25 assume !(~n <= 0); 1090894#L26 call #t~ret0 := fact(~n - 1);< 1091018#$Ultimate##0 ~n := #in~n; 1091040#L25 assume ~n <= 0;#res := 1; 1091039#factFINAL assume true; 1091015#factEXIT >#66#return; 1091014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090938#factFINAL assume true; 1090893#factEXIT >#66#return; 1090928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1091023#factFINAL assume true; 1090960#factEXIT >#70#return; 1090950#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1090958#$Ultimate##0 ~n := #in~n; 1091041#L25 assume ~n <= 0;#res := 1; 1091020#factFINAL assume true; 1090946#factEXIT >#72#return; 1090953#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1091078#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1091077#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1091076#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1090796#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1090766#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1090767#$Ultimate##0 ~n := #in~n; 1090776#L25 assume !(~n <= 0); 1090591#L26 call #t~ret0 := fact(~n - 1);< 1090641#$Ultimate##0 ~n := #in~n; 1090748#L25 assume !(~n <= 0); 1090592#L26 call #t~ret0 := fact(~n - 1);< 1090708#$Ultimate##0 ~n := #in~n; 1090748#L25 assume !(~n <= 0); 1090592#L26 call #t~ret0 := fact(~n - 1);< 1090708#$Ultimate##0 ~n := #in~n; 1090634#L25 assume ~n <= 0;#res := 1; 1090633#factFINAL assume true; 1090628#factEXIT >#66#return; 1090630#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090642#factFINAL assume true; 1090621#factEXIT >#66#return; 1090624#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090585#factFINAL assume true; 1090607#factEXIT >#66#return; 1090645#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090773#factFINAL assume true; 1090763#factEXIT >#74#return; 1090670#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1090687#$Ultimate##0 ~n := #in~n; 1090684#L25 assume !(~n <= 0); 1090586#L26 call #t~ret0 := fact(~n - 1);< 1090673#$Ultimate##0 ~n := #in~n; 1091305#L25 assume !(~n <= 0); 1090622#L26 call #t~ret0 := fact(~n - 1);< 1090631#$Ultimate##0 ~n := #in~n; 1090634#L25 assume ~n <= 0;#res := 1; 1090633#factFINAL assume true; 1090628#factEXIT >#66#return; 1090630#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090642#factFINAL assume true; 1090621#factEXIT >#66#return; 1090625#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090745#factFINAL assume true; 1090743#factEXIT >#76#return; 1090637#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1091027#$Ultimate##0 ~n := #in~n; 1091026#L25 assume !(~n <= 0); 1090576#L26 call #t~ret0 := fact(~n - 1);< 1090584#$Ultimate##0 ~n := #in~n; 1090615#L25 assume ~n <= 0;#res := 1; 1090616#factFINAL assume true; 1090570#factEXIT >#66#return; 1090580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1091532#factFINAL assume true; 1091289#factEXIT >#78#return; 1090744#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1094372#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1094371#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1094370#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1094368#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1094366#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1090568#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1090569#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089207#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089471#$Ultimate##0 ~n := #in~n; 1089470#L25 assume !(~n <= 0); 1088994#L26 call #t~ret0 := fact(~n - 1);< 1089205#$Ultimate##0 ~n := #in~n; 1094397#L25 assume !(~n <= 0); 1088651#L26 call #t~ret0 := fact(~n - 1);< 1088662#$Ultimate##0 ~n := #in~n; 1088650#L25 assume !(~n <= 0); 1088652#L26 call #t~ret0 := fact(~n - 1);< 1089016#$Ultimate##0 ~n := #in~n; 1094434#L25 assume !(~n <= 0); 1089024#L26 call #t~ret0 := fact(~n - 1);< 1089034#$Ultimate##0 ~n := #in~n; 1094403#L25 assume !(~n <= 0); 1089053#L26 call #t~ret0 := fact(~n - 1);< 1090566#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090512#factFINAL assume true; 1090511#factEXIT >#68#return; 1089753#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089760#$Ultimate##0 ~n := #in~n; 1089766#L25 assume ~n <= 0;#res := 1; 1089761#factFINAL assume true; 1089747#factEXIT >#70#return; 1089213#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089224#$Ultimate##0 ~n := #in~n; 1089219#L25 assume !(~n <= 0); 1088927#L26 call #t~ret0 := fact(~n - 1);< 1089068#$Ultimate##0 ~n := #in~n; 1089066#L25 assume !(~n <= 0); 1088931#L26 call #t~ret0 := fact(~n - 1);< 1089064#$Ultimate##0 ~n := #in~n; 1089062#L25 assume !(~n <= 0); 1088933#L26 call #t~ret0 := fact(~n - 1);< 1089061#$Ultimate##0 ~n := #in~n; 1089058#L25 assume !(~n <= 0); 1088934#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089204#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090513#factFINAL assume true; 1090510#factEXIT >#72#return; 1089744#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1090509#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1090508#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1090506#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1090507#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089177#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089192#$Ultimate##0 ~n := #in~n; 1089214#L25 assume !(~n <= 0); 1088991#L26 call #t~ret0 := fact(~n - 1);< 1089205#$Ultimate##0 ~n := #in~n; 1094397#L25 assume !(~n <= 0); 1088651#L26 call #t~ret0 := fact(~n - 1);< 1088662#$Ultimate##0 ~n := #in~n; 1088650#L25 assume !(~n <= 0); 1088652#L26 call #t~ret0 := fact(~n - 1);< 1089016#$Ultimate##0 ~n := #in~n; 1094434#L25 assume !(~n <= 0); 1089024#L26 call #t~ret0 := fact(~n - 1);< 1089034#$Ultimate##0 ~n := #in~n; 1094403#L25 assume !(~n <= 0); 1089053#L26 call #t~ret0 := fact(~n - 1);< 1090566#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089194#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089193#factFINAL assume true; 1089175#factEXIT >#68#return; 1089189#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089278#$Ultimate##0 ~n := #in~n; 1090465#L25 assume !(~n <= 0); 1088742#L26 call #t~ret0 := fact(~n - 1);< 1089292#$Ultimate##0 ~n := #in~n; 1089297#L25 assume ~n <= 0;#res := 1; 1089286#factFINAL assume true; 1089282#factEXIT >#66#return; 1089281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089279#factFINAL assume true; 1089251#factEXIT >#70#return; 1089270#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089523#$Ultimate##0 ~n := #in~n; 1090463#L25 assume !(~n <= 0); 1088978#L26 call #t~ret0 := fact(~n - 1);< 1094416#$Ultimate##0 ~n := #in~n; 1094415#L25 assume !(~n <= 0); 1089007#L26 call #t~ret0 := fact(~n - 1);< 1094414#$Ultimate##0 ~n := #in~n; 1094413#L25 assume !(~n <= 0); 1089026#L26 call #t~ret0 := fact(~n - 1);< 1089054#$Ultimate##0 ~n := #in~n; 1094403#L25 assume !(~n <= 0); 1089053#L26 call #t~ret0 := fact(~n - 1);< 1090566#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089522#factFINAL assume true; 1089495#factEXIT >#72#return; 1089514#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1089614#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1089250#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1089249#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1089225#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089180#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089192#$Ultimate##0 ~n := #in~n; 1089214#L25 assume !(~n <= 0); 1088991#L26 call #t~ret0 := fact(~n - 1);< 1089205#$Ultimate##0 ~n := #in~n; 1094397#L25 assume !(~n <= 0); 1088651#L26 call #t~ret0 := fact(~n - 1);< 1088662#$Ultimate##0 ~n := #in~n; 1088650#L25 assume !(~n <= 0); 1088652#L26 call #t~ret0 := fact(~n - 1);< 1089016#$Ultimate##0 ~n := #in~n; 1094434#L25 assume !(~n <= 0); 1089024#L26 call #t~ret0 := fact(~n - 1);< 1089034#$Ultimate##0 ~n := #in~n; 1094403#L25 assume !(~n <= 0); 1089053#L26 call #t~ret0 := fact(~n - 1);< 1090566#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089194#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089193#factFINAL assume true; 1089175#factEXIT >#68#return; 1089146#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089171#$Ultimate##0 ~n := #in~n; 1090437#L25 assume !(~n <= 0); 1088929#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089172#factFINAL assume true; 1089144#factEXIT >#70#return; 1089021#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089135#$Ultimate##0 ~n := #in~n; 1089132#L25 assume !(~n <= 0); 1089014#L26 call #t~ret0 := fact(~n - 1);< 1089016#$Ultimate##0 ~n := #in~n; 1094434#L25 assume !(~n <= 0); 1089024#L26 call #t~ret0 := fact(~n - 1);< 1089034#$Ultimate##0 ~n := #in~n; 1094403#L25 assume !(~n <= 0); 1089053#L26 call #t~ret0 := fact(~n - 1);< 1090566#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089564#factFINAL assume true; 1089541#factEXIT >#72#return; 1089559#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1089577#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1089573#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1089570#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1089568#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089187#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089192#$Ultimate##0 ~n := #in~n; 1089214#L25 assume !(~n <= 0); 1088991#L26 call #t~ret0 := fact(~n - 1);< 1089205#$Ultimate##0 ~n := #in~n; 1094397#L25 assume !(~n <= 0); 1088651#L26 call #t~ret0 := fact(~n - 1);< 1088662#$Ultimate##0 ~n := #in~n; 1088650#L25 assume !(~n <= 0); 1088652#L26 call #t~ret0 := fact(~n - 1);< 1089016#$Ultimate##0 ~n := #in~n; 1094434#L25 assume !(~n <= 0); 1089024#L26 call #t~ret0 := fact(~n - 1);< 1089034#$Ultimate##0 ~n := #in~n; 1094403#L25 assume !(~n <= 0); 1089053#L26 call #t~ret0 := fact(~n - 1);< 1090566#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089194#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089193#factFINAL assume true; 1089175#factEXIT >#68#return; 1088834#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089474#$Ultimate##0 ~n := #in~n; 1089463#L25 assume !(~n <= 0); 1088938#L26 call #t~ret0 := fact(~n - 1);< 1089061#$Ultimate##0 ~n := #in~n; 1089058#L25 assume !(~n <= 0); 1088934#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089564#factFINAL assume true; 1089541#factEXIT >#70#return; 1089038#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089540#$Ultimate##0 ~n := #in~n; 1090461#L25 assume !(~n <= 0); 1089031#L26 call #t~ret0 := fact(~n - 1);< 1089040#$Ultimate##0 ~n := #in~n; 1094404#L25 assume !(~n <= 0); 1089029#L26 call #t~ret0 := fact(~n - 1);< 1089054#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089172#factFINAL assume true; 1089144#factEXIT >#72#return; 1089153#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1089533#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1089529#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1089525#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1089524#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089178#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089192#$Ultimate##0 ~n := #in~n; 1089214#L25 assume !(~n <= 0); 1088991#L26 call #t~ret0 := fact(~n - 1);< 1089205#$Ultimate##0 ~n := #in~n; 1094397#L25 assume !(~n <= 0); 1088651#L26 call #t~ret0 := fact(~n - 1);< 1088662#$Ultimate##0 ~n := #in~n; 1088650#L25 assume !(~n <= 0); 1088652#L26 call #t~ret0 := fact(~n - 1);< 1089016#$Ultimate##0 ~n := #in~n; 1094434#L25 assume !(~n <= 0); 1089024#L26 call #t~ret0 := fact(~n - 1);< 1089034#$Ultimate##0 ~n := #in~n; 1094403#L25 assume !(~n <= 0); 1089053#L26 call #t~ret0 := fact(~n - 1);< 1090566#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089194#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089193#factFINAL assume true; 1089175#factEXIT >#68#return; 1088822#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089474#$Ultimate##0 ~n := #in~n; 1089463#L25 assume !(~n <= 0); 1088938#L26 call #t~ret0 := fact(~n - 1);< 1089061#$Ultimate##0 ~n := #in~n; 1089058#L25 assume !(~n <= 0); 1088934#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089522#factFINAL assume true; 1089495#factEXIT >#70#return; 1089259#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089494#$Ultimate##0 ~n := #in~n; 1090467#L25 assume !(~n <= 0); 1089025#L26 call #t~ret0 := fact(~n - 1);< 1089285#$Ultimate##0 ~n := #in~n; 1089297#L25 assume ~n <= 0;#res := 1; 1089286#factFINAL assume true; 1089282#factEXIT >#66#return; 1089281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089279#factFINAL assume true; 1089251#factEXIT >#72#return; 1089268#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1089492#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1089490#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1089488#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1089486#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089181#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089192#$Ultimate##0 ~n := #in~n; 1089214#L25 assume !(~n <= 0); 1088991#L26 call #t~ret0 := fact(~n - 1);< 1089205#$Ultimate##0 ~n := #in~n; 1094397#L25 assume !(~n <= 0); 1088651#L26 call #t~ret0 := fact(~n - 1);< 1088662#$Ultimate##0 ~n := #in~n; 1088650#L25 assume !(~n <= 0); 1088652#L26 call #t~ret0 := fact(~n - 1);< 1089016#$Ultimate##0 ~n := #in~n; 1094434#L25 assume !(~n <= 0); 1089024#L26 call #t~ret0 := fact(~n - 1);< 1089034#$Ultimate##0 ~n := #in~n; 1094403#L25 assume !(~n <= 0); 1089053#L26 call #t~ret0 := fact(~n - 1);< 1090566#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089194#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089193#factFINAL assume true; 1089175#factEXIT >#68#return; 1088826#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089474#$Ultimate##0 ~n := #in~n; 1089463#L25 assume !(~n <= 0); 1088938#L26 call #t~ret0 := fact(~n - 1);< 1089061#$Ultimate##0 ~n := #in~n; 1089058#L25 assume !(~n <= 0); 1088934#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088879#factFINAL assume true; 1088743#factEXIT >#70#return; 1088685#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1088738#$Ultimate##0 ~n := #in~n; 1090462#L25 assume ~n <= 0;#res := 1; 1088739#factFINAL assume true; 1088672#factEXIT >#72#return; 1088631#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1088632#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1090367#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1090365#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1090363#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089990#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1088577#$Ultimate##0 ~n := #in~n; 1089995#L25 assume !(~n <= 0); 1089986#L26 call #t~ret0 := fact(~n - 1);< 1089988#$Ultimate##0 ~n := #in~n; 1089987#L25 assume !(~n <= 0); 1089983#L26 call #t~ret0 := fact(~n - 1);< 1089985#$Ultimate##0 ~n := #in~n; 1089984#L25 assume !(~n <= 0); 1089980#L26 call #t~ret0 := fact(~n - 1);< 1089982#$Ultimate##0 ~n := #in~n; 1089981#L25 assume !(~n <= 0); 1089908#L26 call #t~ret0 := fact(~n - 1);< 1089901#$Ultimate##0 ~n := #in~n; 1089921#L25 assume !(~n <= 0); 1089909#L26 call #t~ret0 := fact(~n - 1);< 1089917#$Ultimate##0 ~n := #in~n; 1089921#L25 assume !(~n <= 0); 1089909#L26 call #t~ret0 := fact(~n - 1);< 1089917#$Ultimate##0 ~n := #in~n; 1089921#L25 assume !(~n <= 0); 1089909#L26 call #t~ret0 := fact(~n - 1);< 1089917#$Ultimate##0 ~n := #in~n; 1089921#L25 assume !(~n <= 0); 1089909#L26 call #t~ret0 := fact(~n - 1);< 1089917#$Ultimate##0 ~n := #in~n; 1088661#L25 assume ~n <= 0;#res := 1; 1089919#factFINAL assume true; 1089916#factEXIT >#66#return; 1089907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089915#factFINAL assume true; 1090009#factEXIT >#66#return; 1090010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090029#factFINAL assume true; 1090027#factEXIT >#66#return; 1090025#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090023#factFINAL assume true; 1090020#factEXIT >#66#return; 1090019#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090018#factFINAL assume true; 1090016#factEXIT >#66#return; 1090017#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090094#factFINAL assume true; 1090091#factEXIT >#66#return; 1090092#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090096#factFINAL assume true; 1090041#factEXIT >#66#return; 1090042#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090209#factFINAL assume true; 1090083#factEXIT >#66#return; 1090038#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090035#factFINAL assume true; 1090034#factEXIT >#74#return; 1088621#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1088663#$Ultimate##0 ~n := #in~n; 1088649#L25 assume !(~n <= 0); 1088618#L26 call #t~ret0 := fact(~n - 1);< 1088622#$Ultimate##0 ~n := #in~n; 1089921#L25 assume !(~n <= 0); 1089909#L26 call #t~ret0 := fact(~n - 1);< 1089917#$Ultimate##0 ~n := #in~n; 1089921#L25 assume !(~n <= 0); 1089909#L26 call #t~ret0 := fact(~n - 1);< 1089917#$Ultimate##0 ~n := #in~n; 1089921#L25 assume !(~n <= 0); 1089909#L26 call #t~ret0 := fact(~n - 1);< 1089917#$Ultimate##0 ~n := #in~n; 1089921#L25 assume !(~n <= 0); 1089909#L26 call #t~ret0 := fact(~n - 1);< 1089917#$Ultimate##0 ~n := #in~n; 1089921#L25 assume !(~n <= 0); 1089909#L26 call #t~ret0 := fact(~n - 1);< 1089917#$Ultimate##0 ~n := #in~n; 1088661#L25 assume ~n <= 0;#res := 1; 1089919#factFINAL assume true; 1089916#factEXIT >#66#return; 1089907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089915#factFINAL assume true; 1090009#factEXIT >#66#return; 1090010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090029#factFINAL assume true; 1090027#factEXIT >#66#return; 1090025#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090023#factFINAL assume true; 1090020#factEXIT >#66#return; 1090019#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090018#factFINAL assume true; 1090016#factEXIT >#66#return; 1090017#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090094#factFINAL assume true; 1090091#factEXIT >#66#return; 1090090#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090088#factFINAL assume true; 1090036#factEXIT >#76#return; 1089787#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089796#$Ultimate##0 ~n := #in~n; 1090379#L25 assume !(~n <= 0); 1089889#L26 call #t~ret0 := fact(~n - 1);< 1089892#$Ultimate##0 ~n := #in~n; 1089906#L25 assume ~n <= 0;#res := 1; 1089898#factFINAL assume true; 1089888#factEXIT >#66#return; 1089884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089885#factFINAL assume true; 1089786#factEXIT >#78#return; 1089785#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1089784#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1089783#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1089781#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1089780#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1089778#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1089776#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1089774#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089229#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089765#$Ultimate##0 ~n := #in~n; 1089227#L25 assume !(~n <= 0); 1088916#L26 call #t~ret0 := fact(~n - 1);< 1089102#$Ultimate##0 ~n := #in~n; 1089098#L25 assume !(~n <= 0); 1088920#L26 call #t~ret0 := fact(~n - 1);< 1089080#$Ultimate##0 ~n := #in~n; 1089078#L25 assume !(~n <= 0); 1088924#L26 call #t~ret0 := fact(~n - 1);< 1089069#$Ultimate##0 ~n := #in~n; 1089067#L25 assume !(~n <= 0); 1088926#L26 call #t~ret0 := fact(~n - 1);< 1089065#$Ultimate##0 ~n := #in~n; 1089063#L25 assume !(~n <= 0); 1088908#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1088940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088949#factFINAL assume true; 1088907#factEXIT >#66#return; 1088942#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089769#factFINAL assume true; 1089764#factEXIT >#68#return; 1089750#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089760#$Ultimate##0 ~n := #in~n; 1089766#L25 assume ~n <= 0;#res := 1; 1089761#factFINAL assume true; 1089747#factEXIT >#70#return; 1089108#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089335#$Ultimate##0 ~n := #in~n; 1089336#L25 assume !(~n <= 0); 1088909#L26 call #t~ret0 := fact(~n - 1);< 1089102#$Ultimate##0 ~n := #in~n; 1089098#L25 assume !(~n <= 0); 1088920#L26 call #t~ret0 := fact(~n - 1);< 1089080#$Ultimate##0 ~n := #in~n; 1089078#L25 assume !(~n <= 0); 1088924#L26 call #t~ret0 := fact(~n - 1);< 1089069#$Ultimate##0 ~n := #in~n; 1089067#L25 assume !(~n <= 0); 1088926#L26 call #t~ret0 := fact(~n - 1);< 1089065#$Ultimate##0 ~n := #in~n; 1089063#L25 assume !(~n <= 0); 1088908#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1088941#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089836#factFINAL assume true; 1089736#factEXIT >#72#return; 1089735#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1089733#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1089731#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1089729#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1089727#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089370#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089443#$Ultimate##0 ~n := #in~n; 1089441#L25 assume !(~n <= 0); 1088937#L26 call #t~ret0 := fact(~n - 1);< 1089099#$Ultimate##0 ~n := #in~n; 1089095#L25 assume !(~n <= 0); 1088914#L26 call #t~ret0 := fact(~n - 1);< 1089079#$Ultimate##0 ~n := #in~n; 1089077#L25 assume !(~n <= 0); 1088922#L26 call #t~ret0 := fact(~n - 1);< 1089068#$Ultimate##0 ~n := #in~n; 1089066#L25 assume !(~n <= 0); 1088931#L26 call #t~ret0 := fact(~n - 1);< 1089064#$Ultimate##0 ~n := #in~n; 1089062#L25 assume !(~n <= 0); 1088933#L26 call #t~ret0 := fact(~n - 1);< 1089061#$Ultimate##0 ~n := #in~n; 1089058#L25 assume !(~n <= 0); 1088934#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1088940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088949#factFINAL assume true; 1088907#factEXIT >#66#return; 1088944#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089682#factFINAL assume true; 1089485#factEXIT >#68#return; 1088699#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089725#$Ultimate##0 ~n := #in~n; 1088741#L25 assume !(~n <= 0); 1088742#L26 call #t~ret0 := fact(~n - 1);< 1089292#$Ultimate##0 ~n := #in~n; 1089297#L25 assume ~n <= 0;#res := 1; 1089286#factFINAL assume true; 1089282#factEXIT >#66#return; 1089281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089279#factFINAL assume true; 1089251#factEXIT >#70#return; 1088889#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089220#$Ultimate##0 ~n := #in~n; 1089215#L25 assume !(~n <= 0); 1088939#L26 call #t~ret0 := fact(~n - 1);< 1089068#$Ultimate##0 ~n := #in~n; 1089066#L25 assume !(~n <= 0); 1088931#L26 call #t~ret0 := fact(~n - 1);< 1089064#$Ultimate##0 ~n := #in~n; 1089062#L25 assume !(~n <= 0); 1088933#L26 call #t~ret0 := fact(~n - 1);< 1089061#$Ultimate##0 ~n := #in~n; 1089058#L25 assume !(~n <= 0); 1088934#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1088940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088949#factFINAL assume true; 1088907#factEXIT >#66#return; 1088881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088906#factFINAL assume true; 1089484#factEXIT >#72#return; 1089482#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1089724#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1089722#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1089720#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1089718#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089360#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089443#$Ultimate##0 ~n := #in~n; 1089441#L25 assume !(~n <= 0); 1088937#L26 call #t~ret0 := fact(~n - 1);< 1089099#$Ultimate##0 ~n := #in~n; 1089095#L25 assume !(~n <= 0); 1088914#L26 call #t~ret0 := fact(~n - 1);< 1089079#$Ultimate##0 ~n := #in~n; 1089077#L25 assume !(~n <= 0); 1088922#L26 call #t~ret0 := fact(~n - 1);< 1089068#$Ultimate##0 ~n := #in~n; 1089066#L25 assume !(~n <= 0); 1088931#L26 call #t~ret0 := fact(~n - 1);< 1089064#$Ultimate##0 ~n := #in~n; 1089062#L25 assume !(~n <= 0); 1088933#L26 call #t~ret0 := fact(~n - 1);< 1089061#$Ultimate##0 ~n := #in~n; 1089058#L25 assume !(~n <= 0); 1088934#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1088940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088949#factFINAL assume true; 1088907#factEXIT >#66#return; 1088944#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089682#factFINAL assume true; 1089485#factEXIT >#68#return; 1088673#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089248#$Ultimate##0 ~n := #in~n; 1090460#L25 assume !(~n <= 0); 1089030#L26 call #t~ret0 := fact(~n - 1);< 1090525#$Ultimate##0 ~n := #in~n; 1094403#L25 assume !(~n <= 0); 1089053#L26 call #t~ret0 := fact(~n - 1);< 1090566#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089172#factFINAL assume true; 1089144#factEXIT >#70#return; 1088818#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089222#$Ultimate##0 ~n := #in~n; 1089217#L25 assume !(~n <= 0); 1088925#L26 call #t~ret0 := fact(~n - 1);< 1089068#$Ultimate##0 ~n := #in~n; 1089066#L25 assume !(~n <= 0); 1088931#L26 call #t~ret0 := fact(~n - 1);< 1089064#$Ultimate##0 ~n := #in~n; 1089062#L25 assume !(~n <= 0); 1088933#L26 call #t~ret0 := fact(~n - 1);< 1089061#$Ultimate##0 ~n := #in~n; 1089058#L25 assume !(~n <= 0); 1088934#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088879#factFINAL assume true; 1088743#factEXIT >#72#return; 1088867#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1090417#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1090395#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1090394#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1089615#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089358#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089443#$Ultimate##0 ~n := #in~n; 1089441#L25 assume !(~n <= 0); 1088937#L26 call #t~ret0 := fact(~n - 1);< 1089099#$Ultimate##0 ~n := #in~n; 1089095#L25 assume !(~n <= 0); 1088914#L26 call #t~ret0 := fact(~n - 1);< 1089079#$Ultimate##0 ~n := #in~n; 1089077#L25 assume !(~n <= 0); 1088922#L26 call #t~ret0 := fact(~n - 1);< 1089068#$Ultimate##0 ~n := #in~n; 1089066#L25 assume !(~n <= 0); 1088931#L26 call #t~ret0 := fact(~n - 1);< 1089064#$Ultimate##0 ~n := #in~n; 1089062#L25 assume !(~n <= 0); 1088933#L26 call #t~ret0 := fact(~n - 1);< 1089061#$Ultimate##0 ~n := #in~n; 1089058#L25 assume !(~n <= 0); 1088934#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1088940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088949#factFINAL assume true; 1088907#factEXIT >#66#return; 1088944#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089682#factFINAL assume true; 1089485#factEXIT >#68#return; 1088719#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089475#$Ultimate##0 ~n := #in~n; 1089465#L25 assume !(~n <= 0); 1088935#L26 call #t~ret0 := fact(~n - 1);< 1088998#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089564#factFINAL assume true; 1089541#factEXIT >#70#return; 1088846#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089444#$Ultimate##0 ~n := #in~n; 1089442#L25 assume !(~n <= 0); 1088932#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089522#factFINAL assume true; 1089495#factEXIT >#72#return; 1089521#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1089613#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1089610#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1089608#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1089606#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089338#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089443#$Ultimate##0 ~n := #in~n; 1089441#L25 assume !(~n <= 0); 1088937#L26 call #t~ret0 := fact(~n - 1);< 1089099#$Ultimate##0 ~n := #in~n; 1089095#L25 assume !(~n <= 0); 1088914#L26 call #t~ret0 := fact(~n - 1);< 1089079#$Ultimate##0 ~n := #in~n; 1089077#L25 assume !(~n <= 0); 1088922#L26 call #t~ret0 := fact(~n - 1);< 1089068#$Ultimate##0 ~n := #in~n; 1089066#L25 assume !(~n <= 0); 1088931#L26 call #t~ret0 := fact(~n - 1);< 1089064#$Ultimate##0 ~n := #in~n; 1089062#L25 assume !(~n <= 0); 1088933#L26 call #t~ret0 := fact(~n - 1);< 1089061#$Ultimate##0 ~n := #in~n; 1089058#L25 assume !(~n <= 0); 1088934#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1088940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088949#factFINAL assume true; 1088907#factEXIT >#66#return; 1088944#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089682#factFINAL assume true; 1089485#factEXIT >#68#return; 1088720#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089475#$Ultimate##0 ~n := #in~n; 1089465#L25 assume !(~n <= 0); 1088935#L26 call #t~ret0 := fact(~n - 1);< 1088998#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089522#factFINAL assume true; 1089495#factEXIT >#70#return; 1088778#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089444#$Ultimate##0 ~n := #in~n; 1089442#L25 assume !(~n <= 0); 1088932#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089564#factFINAL assume true; 1089541#factEXIT >#72#return; 1089545#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1089654#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1089650#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1089646#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1089645#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089388#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089443#$Ultimate##0 ~n := #in~n; 1089441#L25 assume !(~n <= 0); 1088937#L26 call #t~ret0 := fact(~n - 1);< 1089099#$Ultimate##0 ~n := #in~n; 1089095#L25 assume !(~n <= 0); 1088914#L26 call #t~ret0 := fact(~n - 1);< 1089079#$Ultimate##0 ~n := #in~n; 1089077#L25 assume !(~n <= 0); 1088922#L26 call #t~ret0 := fact(~n - 1);< 1089068#$Ultimate##0 ~n := #in~n; 1089066#L25 assume !(~n <= 0); 1088931#L26 call #t~ret0 := fact(~n - 1);< 1089064#$Ultimate##0 ~n := #in~n; 1089062#L25 assume !(~n <= 0); 1088933#L26 call #t~ret0 := fact(~n - 1);< 1089061#$Ultimate##0 ~n := #in~n; 1089058#L25 assume !(~n <= 0); 1088934#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1088940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088949#factFINAL assume true; 1088907#factEXIT >#66#return; 1088944#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089682#factFINAL assume true; 1089485#factEXIT >#68#return; 1088717#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089475#$Ultimate##0 ~n := #in~n; 1089465#L25 assume !(~n <= 0); 1088935#L26 call #t~ret0 := fact(~n - 1);< 1088998#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088879#factFINAL assume true; 1088743#factEXIT >#70#return; 1088782#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089444#$Ultimate##0 ~n := #in~n; 1089442#L25 assume !(~n <= 0); 1088932#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089172#factFINAL assume true; 1089144#factEXIT >#72#return; 1089155#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1089642#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1089638#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1089634#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1089631#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089352#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089443#$Ultimate##0 ~n := #in~n; 1089441#L25 assume !(~n <= 0); 1088937#L26 call #t~ret0 := fact(~n - 1);< 1089099#$Ultimate##0 ~n := #in~n; 1089095#L25 assume !(~n <= 0); 1088914#L26 call #t~ret0 := fact(~n - 1);< 1089079#$Ultimate##0 ~n := #in~n; 1089077#L25 assume !(~n <= 0); 1088922#L26 call #t~ret0 := fact(~n - 1);< 1089068#$Ultimate##0 ~n := #in~n; 1089066#L25 assume !(~n <= 0); 1088931#L26 call #t~ret0 := fact(~n - 1);< 1089064#$Ultimate##0 ~n := #in~n; 1089062#L25 assume !(~n <= 0); 1088933#L26 call #t~ret0 := fact(~n - 1);< 1089061#$Ultimate##0 ~n := #in~n; 1089058#L25 assume !(~n <= 0); 1088934#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1088940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088949#factFINAL assume true; 1088907#factEXIT >#66#return; 1088944#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089682#factFINAL assume true; 1089485#factEXIT >#68#return; 1088695#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089475#$Ultimate##0 ~n := #in~n; 1089465#L25 assume !(~n <= 0); 1088935#L26 call #t~ret0 := fact(~n - 1);< 1088998#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089569#factFINAL assume true; 1089565#factEXIT >#70#return; 1088757#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089468#$Ultimate##0 ~n := #in~n; 1089466#L25 assume !(~n <= 0); 1088935#L26 call #t~ret0 := fact(~n - 1);< 1088998#$Ultimate##0 ~n := #in~n; 1089297#L25 assume ~n <= 0;#res := 1; 1089286#factFINAL assume true; 1089282#factEXIT >#66#return; 1089281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089279#factFINAL assume true; 1089251#factEXIT >#72#return; 1089266#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1089627#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1089625#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1089623#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1089621#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089423#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089443#$Ultimate##0 ~n := #in~n; 1089441#L25 assume !(~n <= 0); 1088937#L26 call #t~ret0 := fact(~n - 1);< 1089099#$Ultimate##0 ~n := #in~n; 1089095#L25 assume !(~n <= 0); 1088914#L26 call #t~ret0 := fact(~n - 1);< 1089079#$Ultimate##0 ~n := #in~n; 1089077#L25 assume !(~n <= 0); 1088922#L26 call #t~ret0 := fact(~n - 1);< 1089068#$Ultimate##0 ~n := #in~n; 1089066#L25 assume !(~n <= 0); 1088931#L26 call #t~ret0 := fact(~n - 1);< 1089064#$Ultimate##0 ~n := #in~n; 1089062#L25 assume !(~n <= 0); 1088933#L26 call #t~ret0 := fact(~n - 1);< 1089061#$Ultimate##0 ~n := #in~n; 1089058#L25 assume !(~n <= 0); 1088934#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1088940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088949#factFINAL assume true; 1088907#factEXIT >#66#return; 1088944#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089682#factFINAL assume true; 1089485#factEXIT >#68#return; 1089120#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089136#$Ultimate##0 ~n := #in~n; 1089133#L25 assume !(~n <= 0); 1088913#L26 call #t~ret0 := fact(~n - 1);< 1089102#$Ultimate##0 ~n := #in~n; 1089098#L25 assume !(~n <= 0); 1088920#L26 call #t~ret0 := fact(~n - 1);< 1089080#$Ultimate##0 ~n := #in~n; 1089078#L25 assume !(~n <= 0); 1088924#L26 call #t~ret0 := fact(~n - 1);< 1089069#$Ultimate##0 ~n := #in~n; 1089067#L25 assume !(~n <= 0); 1088926#L26 call #t~ret0 := fact(~n - 1);< 1089065#$Ultimate##0 ~n := #in~n; 1089063#L25 assume !(~n <= 0); 1088908#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1089434#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089618#factFINAL assume true; 1089479#factEXIT >#70#return; 1088698#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089475#$Ultimate##0 ~n := #in~n; 1089465#L25 assume ~n <= 0;#res := 1; 1088739#factFINAL assume true; 1088672#factEXIT >#72#return; 1088732#L30-3 [2023-02-18 08:59:40,228 INFO L750 eck$LassoCheckResult]: Loop: 1088732#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1090238#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1090237#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1090236#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1090235#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089977#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089979#$Ultimate##0 ~n := #in~n; 1089978#L25 assume !(~n <= 0); 1089968#L26 call #t~ret0 := fact(~n - 1);< 1089972#$Ultimate##0 ~n := #in~n; 1089970#L25 assume !(~n <= 0); 1089937#L26 call #t~ret0 := fact(~n - 1);< 1089956#$Ultimate##0 ~n := #in~n; 1089953#L25 assume !(~n <= 0); 1089931#L26 call #t~ret0 := fact(~n - 1);< 1089935#$Ultimate##0 ~n := #in~n; 1089933#L25 assume !(~n <= 0); 1089925#L26 call #t~ret0 := fact(~n - 1);< 1089929#$Ultimate##0 ~n := #in~n; 1089927#L25 assume !(~n <= 0); 1089900#L26 call #t~ret0 := fact(~n - 1);< 1089923#$Ultimate##0 ~n := #in~n; 1089920#L25 assume !(~n <= 0); 1089899#L26 call #t~ret0 := fact(~n - 1);< 1089901#$Ultimate##0 ~n := #in~n; 1089921#L25 assume !(~n <= 0); 1089909#L26 call #t~ret0 := fact(~n - 1);< 1089917#$Ultimate##0 ~n := #in~n; 1089921#L25 assume !(~n <= 0); 1089909#L26 call #t~ret0 := fact(~n - 1);< 1089917#$Ultimate##0 ~n := #in~n; 1088661#L25 assume ~n <= 0;#res := 1; 1089919#factFINAL assume true; 1089916#factEXIT >#66#return; 1089907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089915#factFINAL assume true; 1090009#factEXIT >#66#return; 1090010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090029#factFINAL assume true; 1090027#factEXIT >#66#return; 1090025#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090023#factFINAL assume true; 1090020#factEXIT >#66#return; 1090019#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090018#factFINAL assume true; 1090016#factEXIT >#66#return; 1090017#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090094#factFINAL assume true; 1090091#factEXIT >#66#return; 1090092#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090096#factFINAL assume true; 1090041#factEXIT >#66#return; 1090042#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090209#factFINAL assume true; 1090083#factEXIT >#66#return; 1090038#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090035#factFINAL assume true; 1090034#factEXIT >#74#return; 1088620#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1088663#$Ultimate##0 ~n := #in~n; 1088649#L25 assume !(~n <= 0); 1088618#L26 call #t~ret0 := fact(~n - 1);< 1088622#$Ultimate##0 ~n := #in~n; 1089921#L25 assume !(~n <= 0); 1089909#L26 call #t~ret0 := fact(~n - 1);< 1089917#$Ultimate##0 ~n := #in~n; 1089921#L25 assume !(~n <= 0); 1089909#L26 call #t~ret0 := fact(~n - 1);< 1089917#$Ultimate##0 ~n := #in~n; 1089921#L25 assume !(~n <= 0); 1089909#L26 call #t~ret0 := fact(~n - 1);< 1089917#$Ultimate##0 ~n := #in~n; 1089921#L25 assume !(~n <= 0); 1089909#L26 call #t~ret0 := fact(~n - 1);< 1089917#$Ultimate##0 ~n := #in~n; 1089921#L25 assume !(~n <= 0); 1089909#L26 call #t~ret0 := fact(~n - 1);< 1089917#$Ultimate##0 ~n := #in~n; 1089921#L25 assume !(~n <= 0); 1089909#L26 call #t~ret0 := fact(~n - 1);< 1089917#$Ultimate##0 ~n := #in~n; 1089921#L25 assume !(~n <= 0); 1089909#L26 call #t~ret0 := fact(~n - 1);< 1089917#$Ultimate##0 ~n := #in~n; 1088661#L25 assume ~n <= 0;#res := 1; 1089919#factFINAL assume true; 1089916#factEXIT >#66#return; 1089907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089915#factFINAL assume true; 1090009#factEXIT >#66#return; 1090010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090029#factFINAL assume true; 1090027#factEXIT >#66#return; 1090025#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090023#factFINAL assume true; 1090020#factEXIT >#66#return; 1090019#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090018#factFINAL assume true; 1090016#factEXIT >#66#return; 1090017#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090094#factFINAL assume true; 1090091#factEXIT >#66#return; 1090092#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090096#factFINAL assume true; 1090041#factEXIT >#66#return; 1090042#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090209#factFINAL assume true; 1090083#factEXIT >#66#return; 1090038#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1090035#factFINAL assume true; 1090034#factEXIT >#76#return; 1089789#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089796#$Ultimate##0 ~n := #in~n; 1090379#L25 assume !(~n <= 0); 1089889#L26 call #t~ret0 := fact(~n - 1);< 1089892#$Ultimate##0 ~n := #in~n; 1089906#L25 assume ~n <= 0;#res := 1; 1089898#factFINAL assume true; 1089888#factEXIT >#66#return; 1089884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089885#factFINAL assume true; 1089786#factEXIT >#78#return; 1089794#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1090400#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1090399#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1090398#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1089779#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1089777#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1089775#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1089772#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089714#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089770#$Ultimate##0 ~n := #in~n; 1089712#L25 assume !(~n <= 0); 1088910#L26 call #t~ret0 := fact(~n - 1);< 1089099#$Ultimate##0 ~n := #in~n; 1089095#L25 assume !(~n <= 0); 1088914#L26 call #t~ret0 := fact(~n - 1);< 1089079#$Ultimate##0 ~n := #in~n; 1089077#L25 assume !(~n <= 0); 1088922#L26 call #t~ret0 := fact(~n - 1);< 1089068#$Ultimate##0 ~n := #in~n; 1089066#L25 assume !(~n <= 0); 1088931#L26 call #t~ret0 := fact(~n - 1);< 1089064#$Ultimate##0 ~n := #in~n; 1089062#L25 assume !(~n <= 0); 1088933#L26 call #t~ret0 := fact(~n - 1);< 1089061#$Ultimate##0 ~n := #in~n; 1089058#L25 assume !(~n <= 0); 1088934#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1088940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088949#factFINAL assume true; 1088907#factEXIT >#66#return; 1088942#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089769#factFINAL assume true; 1089764#factEXIT >#68#return; 1089750#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089760#$Ultimate##0 ~n := #in~n; 1089766#L25 assume ~n <= 0;#res := 1; 1089761#factFINAL assume true; 1089747#factEXIT >#70#return; 1089108#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089335#$Ultimate##0 ~n := #in~n; 1089336#L25 assume !(~n <= 0); 1088909#L26 call #t~ret0 := fact(~n - 1);< 1089102#$Ultimate##0 ~n := #in~n; 1089098#L25 assume !(~n <= 0); 1088920#L26 call #t~ret0 := fact(~n - 1);< 1089080#$Ultimate##0 ~n := #in~n; 1089078#L25 assume !(~n <= 0); 1088924#L26 call #t~ret0 := fact(~n - 1);< 1089069#$Ultimate##0 ~n := #in~n; 1089067#L25 assume !(~n <= 0); 1088926#L26 call #t~ret0 := fact(~n - 1);< 1089065#$Ultimate##0 ~n := #in~n; 1089063#L25 assume !(~n <= 0); 1088908#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1088941#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089836#factFINAL assume true; 1089736#factEXIT >#72#return; 1089735#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1089733#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1089731#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1089729#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1089727#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089370#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089443#$Ultimate##0 ~n := #in~n; 1089441#L25 assume !(~n <= 0); 1088937#L26 call #t~ret0 := fact(~n - 1);< 1089099#$Ultimate##0 ~n := #in~n; 1089095#L25 assume !(~n <= 0); 1088914#L26 call #t~ret0 := fact(~n - 1);< 1089079#$Ultimate##0 ~n := #in~n; 1089077#L25 assume !(~n <= 0); 1088922#L26 call #t~ret0 := fact(~n - 1);< 1089068#$Ultimate##0 ~n := #in~n; 1089066#L25 assume !(~n <= 0); 1088931#L26 call #t~ret0 := fact(~n - 1);< 1089064#$Ultimate##0 ~n := #in~n; 1089062#L25 assume !(~n <= 0); 1088933#L26 call #t~ret0 := fact(~n - 1);< 1089061#$Ultimate##0 ~n := #in~n; 1089058#L25 assume !(~n <= 0); 1088934#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1089428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089427#factFINAL assume true; 1089337#factEXIT >#68#return; 1088728#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089725#$Ultimate##0 ~n := #in~n; 1088741#L25 assume !(~n <= 0); 1088742#L26 call #t~ret0 := fact(~n - 1);< 1089292#$Ultimate##0 ~n := #in~n; 1089297#L25 assume ~n <= 0;#res := 1; 1089286#factFINAL assume true; 1089282#factEXIT >#66#return; 1089281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089279#factFINAL assume true; 1089251#factEXIT >#70#return; 1088903#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089220#$Ultimate##0 ~n := #in~n; 1089215#L25 assume !(~n <= 0); 1088939#L26 call #t~ret0 := fact(~n - 1);< 1089068#$Ultimate##0 ~n := #in~n; 1089066#L25 assume !(~n <= 0); 1088931#L26 call #t~ret0 := fact(~n - 1);< 1089064#$Ultimate##0 ~n := #in~n; 1089062#L25 assume !(~n <= 0); 1088933#L26 call #t~ret0 := fact(~n - 1);< 1089061#$Ultimate##0 ~n := #in~n; 1089058#L25 assume !(~n <= 0); 1088934#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1089434#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089618#factFINAL assume true; 1089479#factEXIT >#72#return; 1089483#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1089723#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1089721#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1089719#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1089717#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089359#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089426#$Ultimate##0 ~n := #in~n; 1089445#L25 assume !(~n <= 0); 1088989#L26 call #t~ret0 := fact(~n - 1);< 1089435#$Ultimate##0 ~n := #in~n; 1090502#L25 assume !(~n <= 0); 1088988#L26 call #t~ret0 := fact(~n - 1);< 1088971#$Ultimate##0 ~n := #in~n; 1090564#L25 assume !(~n <= 0); 1088992#L26 call #t~ret0 := fact(~n - 1);< 1089205#$Ultimate##0 ~n := #in~n; 1094397#L25 assume !(~n <= 0); 1088651#L26 call #t~ret0 := fact(~n - 1);< 1088662#$Ultimate##0 ~n := #in~n; 1088650#L25 assume !(~n <= 0); 1088652#L26 call #t~ret0 := fact(~n - 1);< 1089016#$Ultimate##0 ~n := #in~n; 1094434#L25 assume !(~n <= 0); 1089024#L26 call #t~ret0 := fact(~n - 1);< 1089034#$Ultimate##0 ~n := #in~n; 1094403#L25 assume !(~n <= 0); 1089053#L26 call #t~ret0 := fact(~n - 1);< 1090566#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1089428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089427#factFINAL assume true; 1089337#factEXIT >#68#return; 1089145#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089173#$Ultimate##0 ~n := #in~n; 1090459#L25 assume !(~n <= 0); 1089030#L26 call #t~ret0 := fact(~n - 1);< 1090525#$Ultimate##0 ~n := #in~n; 1094403#L25 assume !(~n <= 0); 1089053#L26 call #t~ret0 := fact(~n - 1);< 1090566#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089172#factFINAL assume true; 1089144#factEXIT >#70#return; 1088819#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1088880#$Ultimate##0 ~n := #in~n; 1090378#L25 assume !(~n <= 0); 1088993#L26 call #t~ret0 := fact(~n - 1);< 1089205#$Ultimate##0 ~n := #in~n; 1094397#L25 assume !(~n <= 0); 1088651#L26 call #t~ret0 := fact(~n - 1);< 1088662#$Ultimate##0 ~n := #in~n; 1088650#L25 assume !(~n <= 0); 1088652#L26 call #t~ret0 := fact(~n - 1);< 1089016#$Ultimate##0 ~n := #in~n; 1094434#L25 assume !(~n <= 0); 1089024#L26 call #t~ret0 := fact(~n - 1);< 1089034#$Ultimate##0 ~n := #in~n; 1094403#L25 assume !(~n <= 0); 1089053#L26 call #t~ret0 := fact(~n - 1);< 1090566#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088879#factFINAL assume true; 1088743#factEXIT >#72#return; 1088868#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1089711#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1089710#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1089709#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1089708#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089349#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089426#$Ultimate##0 ~n := #in~n; 1089445#L25 assume !(~n <= 0); 1088989#L26 call #t~ret0 := fact(~n - 1);< 1089435#$Ultimate##0 ~n := #in~n; 1090502#L25 assume !(~n <= 0); 1088988#L26 call #t~ret0 := fact(~n - 1);< 1088971#$Ultimate##0 ~n := #in~n; 1090564#L25 assume !(~n <= 0); 1088992#L26 call #t~ret0 := fact(~n - 1);< 1089205#$Ultimate##0 ~n := #in~n; 1094397#L25 assume !(~n <= 0); 1088651#L26 call #t~ret0 := fact(~n - 1);< 1088662#$Ultimate##0 ~n := #in~n; 1088650#L25 assume !(~n <= 0); 1088652#L26 call #t~ret0 := fact(~n - 1);< 1089016#$Ultimate##0 ~n := #in~n; 1094434#L25 assume !(~n <= 0); 1089024#L26 call #t~ret0 := fact(~n - 1);< 1089034#$Ultimate##0 ~n := #in~n; 1094403#L25 assume !(~n <= 0); 1089053#L26 call #t~ret0 := fact(~n - 1);< 1090566#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1089428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089427#factFINAL assume true; 1089337#factEXIT >#68#return; 1088763#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089468#$Ultimate##0 ~n := #in~n; 1089466#L25 assume !(~n <= 0); 1088935#L26 call #t~ret0 := fact(~n - 1);< 1088998#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089564#factFINAL assume true; 1089541#factEXIT >#70#return; 1088765#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089174#$Ultimate##0 ~n := #in~n; 1089686#L25 assume !(~n <= 0); 1088973#L26 call #t~ret0 := fact(~n - 1);< 1089001#$Ultimate##0 ~n := #in~n; 1090415#L25 assume !(~n <= 0); 1088976#L26 call #t~ret0 := fact(~n - 1);< 1089035#$Ultimate##0 ~n := #in~n; 1089140#L25 assume !(~n <= 0); 1089009#L26 call #t~ret0 := fact(~n - 1);< 1089036#$Ultimate##0 ~n := #in~n; 1090503#L25 assume !(~n <= 0); 1089028#L26 call #t~ret0 := fact(~n - 1);< 1089054#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089522#factFINAL assume true; 1089495#factEXIT >#72#return; 1089503#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1089706#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1089705#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1089704#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1089703#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089411#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089426#$Ultimate##0 ~n := #in~n; 1089445#L25 assume !(~n <= 0); 1088989#L26 call #t~ret0 := fact(~n - 1);< 1089435#$Ultimate##0 ~n := #in~n; 1090502#L25 assume !(~n <= 0); 1088988#L26 call #t~ret0 := fact(~n - 1);< 1088971#$Ultimate##0 ~n := #in~n; 1090564#L25 assume !(~n <= 0); 1088992#L26 call #t~ret0 := fact(~n - 1);< 1089205#$Ultimate##0 ~n := #in~n; 1094397#L25 assume !(~n <= 0); 1088651#L26 call #t~ret0 := fact(~n - 1);< 1088662#$Ultimate##0 ~n := #in~n; 1088650#L25 assume !(~n <= 0); 1088652#L26 call #t~ret0 := fact(~n - 1);< 1089016#$Ultimate##0 ~n := #in~n; 1094434#L25 assume !(~n <= 0); 1089024#L26 call #t~ret0 := fact(~n - 1);< 1089034#$Ultimate##0 ~n := #in~n; 1094403#L25 assume !(~n <= 0); 1089053#L26 call #t~ret0 := fact(~n - 1);< 1090566#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1089428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089427#factFINAL assume true; 1089337#factEXIT >#68#return; 1088770#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089468#$Ultimate##0 ~n := #in~n; 1089466#L25 assume !(~n <= 0); 1088935#L26 call #t~ret0 := fact(~n - 1);< 1088998#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089522#factFINAL assume true; 1089495#factEXIT >#70#return; 1088771#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089174#$Ultimate##0 ~n := #in~n; 1089686#L25 assume !(~n <= 0); 1088973#L26 call #t~ret0 := fact(~n - 1);< 1089001#$Ultimate##0 ~n := #in~n; 1090415#L25 assume !(~n <= 0); 1088976#L26 call #t~ret0 := fact(~n - 1);< 1089035#$Ultimate##0 ~n := #in~n; 1089140#L25 assume !(~n <= 0); 1089009#L26 call #t~ret0 := fact(~n - 1);< 1089036#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089564#factFINAL assume true; 1089541#factEXIT >#72#return; 1089550#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1089701#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1089700#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1089699#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1089698#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089390#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089426#$Ultimate##0 ~n := #in~n; 1089445#L25 assume !(~n <= 0); 1088989#L26 call #t~ret0 := fact(~n - 1);< 1089435#$Ultimate##0 ~n := #in~n; 1090502#L25 assume !(~n <= 0); 1088988#L26 call #t~ret0 := fact(~n - 1);< 1088971#$Ultimate##0 ~n := #in~n; 1090564#L25 assume !(~n <= 0); 1088992#L26 call #t~ret0 := fact(~n - 1);< 1089205#$Ultimate##0 ~n := #in~n; 1094397#L25 assume !(~n <= 0); 1088651#L26 call #t~ret0 := fact(~n - 1);< 1088662#$Ultimate##0 ~n := #in~n; 1088650#L25 assume !(~n <= 0); 1088652#L26 call #t~ret0 := fact(~n - 1);< 1089016#$Ultimate##0 ~n := #in~n; 1094434#L25 assume !(~n <= 0); 1089024#L26 call #t~ret0 := fact(~n - 1);< 1089034#$Ultimate##0 ~n := #in~n; 1094403#L25 assume !(~n <= 0); 1089053#L26 call #t~ret0 := fact(~n - 1);< 1090566#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1089428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089427#factFINAL assume true; 1089337#factEXIT >#68#return; 1088827#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089468#$Ultimate##0 ~n := #in~n; 1089466#L25 assume !(~n <= 0); 1088935#L26 call #t~ret0 := fact(~n - 1);< 1088998#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088879#factFINAL assume true; 1088743#factEXIT >#70#return; 1088776#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089174#$Ultimate##0 ~n := #in~n; 1089686#L25 assume !(~n <= 0); 1088973#L26 call #t~ret0 := fact(~n - 1);< 1089001#$Ultimate##0 ~n := #in~n; 1090415#L25 assume !(~n <= 0); 1088976#L26 call #t~ret0 := fact(~n - 1);< 1089035#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089172#factFINAL assume true; 1089144#factEXIT >#72#return; 1089154#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1089696#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1089695#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1089694#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1089693#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089351#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089426#$Ultimate##0 ~n := #in~n; 1089445#L25 assume !(~n <= 0); 1088989#L26 call #t~ret0 := fact(~n - 1);< 1089435#$Ultimate##0 ~n := #in~n; 1090502#L25 assume !(~n <= 0); 1088988#L26 call #t~ret0 := fact(~n - 1);< 1088971#$Ultimate##0 ~n := #in~n; 1090564#L25 assume !(~n <= 0); 1088992#L26 call #t~ret0 := fact(~n - 1);< 1089205#$Ultimate##0 ~n := #in~n; 1094397#L25 assume !(~n <= 0); 1088651#L26 call #t~ret0 := fact(~n - 1);< 1088662#$Ultimate##0 ~n := #in~n; 1088650#L25 assume !(~n <= 0); 1088652#L26 call #t~ret0 := fact(~n - 1);< 1089016#$Ultimate##0 ~n := #in~n; 1094434#L25 assume !(~n <= 0); 1089024#L26 call #t~ret0 := fact(~n - 1);< 1089034#$Ultimate##0 ~n := #in~n; 1094403#L25 assume !(~n <= 0); 1089053#L26 call #t~ret0 := fact(~n - 1);< 1090566#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1089428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089427#factFINAL assume true; 1089337#factEXIT >#68#return; 1088807#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089468#$Ultimate##0 ~n := #in~n; 1089466#L25 assume !(~n <= 0); 1088935#L26 call #t~ret0 := fact(~n - 1);< 1088998#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089569#factFINAL assume true; 1089565#factEXIT >#70#return; 1089252#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1089691#$Ultimate##0 ~n := #in~n; 1090426#L25 assume !(~n <= 0); 1088975#L26 call #t~ret0 := fact(~n - 1);< 1090423#$Ultimate##0 ~n := #in~n; 1089297#L25 assume ~n <= 0;#res := 1; 1089286#factFINAL assume true; 1089282#factEXIT >#66#return; 1089281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089279#factFINAL assume true; 1089251#factEXIT >#72#return; 1089264#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1089690#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1089689#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1089688#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1089687#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1089422#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1089426#$Ultimate##0 ~n := #in~n; 1089445#L25 assume !(~n <= 0); 1088989#L26 call #t~ret0 := fact(~n - 1);< 1089435#$Ultimate##0 ~n := #in~n; 1090502#L25 assume !(~n <= 0); 1088988#L26 call #t~ret0 := fact(~n - 1);< 1088971#$Ultimate##0 ~n := #in~n; 1090564#L25 assume !(~n <= 0); 1088992#L26 call #t~ret0 := fact(~n - 1);< 1089205#$Ultimate##0 ~n := #in~n; 1094397#L25 assume !(~n <= 0); 1088651#L26 call #t~ret0 := fact(~n - 1);< 1088662#$Ultimate##0 ~n := #in~n; 1088650#L25 assume !(~n <= 0); 1088652#L26 call #t~ret0 := fact(~n - 1);< 1089016#$Ultimate##0 ~n := #in~n; 1094434#L25 assume !(~n <= 0); 1089024#L26 call #t~ret0 := fact(~n - 1);< 1089034#$Ultimate##0 ~n := #in~n; 1094403#L25 assume !(~n <= 0); 1089053#L26 call #t~ret0 := fact(~n - 1);< 1090566#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1089428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089427#factFINAL assume true; 1089337#factEXIT >#68#return; 1089112#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1089136#$Ultimate##0 ~n := #in~n; 1089133#L25 assume !(~n <= 0); 1088913#L26 call #t~ret0 := fact(~n - 1);< 1089102#$Ultimate##0 ~n := #in~n; 1089098#L25 assume !(~n <= 0); 1088920#L26 call #t~ret0 := fact(~n - 1);< 1089080#$Ultimate##0 ~n := #in~n; 1089078#L25 assume !(~n <= 0); 1088924#L26 call #t~ret0 := fact(~n - 1);< 1089069#$Ultimate##0 ~n := #in~n; 1089067#L25 assume !(~n <= 0); 1088926#L26 call #t~ret0 := fact(~n - 1);< 1089065#$Ultimate##0 ~n := #in~n; 1089063#L25 assume !(~n <= 0); 1088908#L26 call #t~ret0 := fact(~n - 1);< 1089017#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089059#L25 assume !(~n <= 0); 1088936#L26 call #t~ret0 := fact(~n - 1);< 1089055#$Ultimate##0 ~n := #in~n; 1089060#L25 assume ~n <= 0;#res := 1; 1089057#factFINAL assume true; 1089052#factEXIT >#66#return; 1089050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089037#factFINAL assume true; 1089023#factEXIT >#66#return; 1089022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089019#factFINAL assume true; 1089005#factEXIT >#66#return; 1089004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1088997#factFINAL assume true; 1088972#factEXIT >#66#return; 1088986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089206#factFINAL assume true; 1089195#factEXIT >#66#return; 1089201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089457#factFINAL assume true; 1089447#factEXIT >#66#return; 1089446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089436#factFINAL assume true; 1089429#factEXIT >#66#return; 1089434#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1089618#factFINAL assume true; 1089479#factEXIT >#70#return; 1088696#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1088740#$Ultimate##0 ~n := #in~n; 1090427#L25 assume ~n <= 0;#res := 1; 1088739#factFINAL assume true; 1088672#factEXIT >#72#return; 1088732#L30-3 [2023-02-18 08:59:40,228 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:59:40,229 INFO L85 PathProgramCache]: Analyzing trace with hash 1540939960, now seen corresponding path program 85 times [2023-02-18 08:59:40,229 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:59:40,229 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1279990208] [2023-02-18 08:59:40,229 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:59:40,229 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:59:40,265 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:59:40,265 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [299063271] [2023-02-18 08:59:40,265 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:59:40,265 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:59:40,265 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:40,268 INFO L229 MonitoredProcess]: Starting monitored process 295 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:59:40,268 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (295)] Waiting until timeout for monitored process [2023-02-18 08:59:41,779 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:59:41,793 INFO L263 TraceCheckSpWp]: Trace formula consists of 4303 conjuncts, 15 conjunts are in the unsatisfiable core [2023-02-18 08:59:41,804 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:59:41,865 INFO L134 CoverageAnalysis]: Checked inductivity of 266738 backedges. 102392 proven. 338 refuted. 0 times theorem prover too weak. 164008 trivial. 0 not checked. [2023-02-18 08:59:41,865 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:59:41,983 INFO L134 CoverageAnalysis]: Checked inductivity of 266738 backedges. 2392 proven. 4715 refuted. 0 times theorem prover too weak. 259631 trivial. 0 not checked. [2023-02-18 08:59:41,983 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:59:41,983 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1279990208] [2023-02-18 08:59:41,983 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:59:41,984 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [299063271] [2023-02-18 08:59:41,984 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [299063271] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:59:41,984 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:59:41,984 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 16 [2023-02-18 08:59:41,984 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1804121775] [2023-02-18 08:59:41,984 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:59:41,984 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:59:41,985 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:59:41,985 INFO L85 PathProgramCache]: Analyzing trace with hash -848270845, now seen corresponding path program 85 times [2023-02-18 08:59:41,985 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:59:41,985 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [725802577] [2023-02-18 08:59:41,985 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:59:41,985 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:59:42,010 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:59:42,010 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [789576082] [2023-02-18 08:59:42,010 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-18 08:59:42,010 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:59:42,010 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:42,013 INFO L229 MonitoredProcess]: Starting monitored process 296 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:59:42,013 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (296)] Waiting until timeout for monitored process [2023-02-18 08:59:43,190 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:59:43,197 INFO L263 TraceCheckSpWp]: Trace formula consists of 2039 conjuncts, 41 conjunts are in the unsatisfiable core [2023-02-18 08:59:43,203 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:59:43,335 INFO L134 CoverageAnalysis]: Checked inductivity of 66899 backedges. 13899 proven. 486 refuted. 0 times theorem prover too weak. 52514 trivial. 0 not checked. [2023-02-18 08:59:43,335 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:59:43,877 INFO L134 CoverageAnalysis]: Checked inductivity of 66899 backedges. 139 proven. 11419 refuted. 0 times theorem prover too weak. 55341 trivial. 0 not checked. [2023-02-18 08:59:43,877 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:59:43,877 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [725802577] [2023-02-18 08:59:43,877 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:59:43,877 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [789576082] [2023-02-18 08:59:43,877 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [789576082] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:59:43,877 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:59:43,877 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [23, 38] total 41 [2023-02-18 08:59:43,877 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [402043890] [2023-02-18 08:59:43,877 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:59:43,878 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 08:59:43,878 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:59:43,878 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 41 interpolants. [2023-02-18 08:59:43,878 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=243, Invalid=1397, Unknown=0, NotChecked=0, Total=1640 [2023-02-18 08:59:43,878 INFO L87 Difference]: Start difference. First operand 5859 states and 9518 transitions. cyclomatic complexity: 3704 Second operand has 41 states, 38 states have (on average 2.6052631578947367) internal successors, (99), 40 states have internal predecessors, (99), 23 states have call successors, (31), 2 states have call predecessors, (31), 19 states have return successors, (44), 19 states have call predecessors, (44), 23 states have call successors, (44) [2023-02-18 08:59:45,341 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:59:45,342 INFO L93 Difference]: Finished difference Result 6753 states and 11534 transitions. [2023-02-18 08:59:45,342 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 6753 states and 11534 transitions. [2023-02-18 08:59:45,376 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 1006 [2023-02-18 08:59:45,421 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 6753 states to 6743 states and 11496 transitions. [2023-02-18 08:59:45,421 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 497 [2023-02-18 08:59:45,421 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 515 [2023-02-18 08:59:45,421 INFO L73 IsDeterministic]: Start isDeterministic. Operand 6743 states and 11496 transitions. [2023-02-18 08:59:45,422 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:59:45,422 INFO L218 hiAutomatonCegarLoop]: Abstraction has 6743 states and 11496 transitions. [2023-02-18 08:59:45,423 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 6743 states and 11496 transitions. [2023-02-18 08:59:45,495 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 6743 to 5950. [2023-02-18 08:59:45,499 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5950 states, 3565 states have (on average 1.0499298737727911) internal successors, (3743), 3541 states have internal predecessors, (3743), 2000 states have call successors, (2022), 590 states have call predecessors, (2022), 385 states have return successors, (4080), 1818 states have call predecessors, (4080), 2000 states have call successors, (4080) [2023-02-18 08:59:45,517 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5950 states to 5950 states and 9845 transitions. [2023-02-18 08:59:45,518 INFO L240 hiAutomatonCegarLoop]: Abstraction has 5950 states and 9845 transitions. [2023-02-18 08:59:45,518 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 39 states. [2023-02-18 08:59:45,518 INFO L428 stractBuchiCegarLoop]: Abstraction has 5950 states and 9845 transitions. [2023-02-18 08:59:45,518 INFO L335 stractBuchiCegarLoop]: ======== Iteration 98 ============ [2023-02-18 08:59:45,518 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 5950 states and 9845 transitions. [2023-02-18 08:59:45,531 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 829 [2023-02-18 08:59:45,531 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:59:45,531 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:59:45,539 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [321, 321, 240, 240, 240, 240, 81, 27, 26, 20, 20, 20, 20, 20, 20, 20, 19, 19, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 4, 4, 1, 1, 1, 1] [2023-02-18 08:59:45,539 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [153, 153, 126, 126, 126, 126, 27, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:59:45,539 INFO L748 eck$LassoCheckResult]: Stem: 1119199#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 1119139#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; 1119140#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 1119161#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; 1119200#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1122351#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1122348#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1122339#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1122340#$Ultimate##0 ~n := #in~n; 1122347#L25 assume ~n <= 0;#res := 1; 1122346#factFINAL assume true; 1122338#factEXIT >#68#return; 1122333#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1122334#$Ultimate##0 ~n := #in~n; 1122345#L25 assume ~n <= 0;#res := 1; 1122337#factFINAL assume true; 1122332#factEXIT >#70#return; 1122328#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1122329#$Ultimate##0 ~n := #in~n; 1122336#L25 assume ~n <= 0;#res := 1; 1122331#factFINAL assume true; 1122327#factEXIT >#72#return; 1122324#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1122319#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1122312#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1122307#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1122305#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1122300#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1122301#$Ultimate##0 ~n := #in~n; 1122323#L25 assume !(~n <= 0); 1122317#L26 call #t~ret0 := fact(~n - 1);< 1122318#$Ultimate##0 ~n := #in~n; 1122326#L25 assume ~n <= 0;#res := 1; 1122322#factFINAL assume true; 1122316#factEXIT >#66#return; 1122311#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1122304#factFINAL assume true; 1122299#factEXIT >#74#return; 1122295#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1122296#$Ultimate##0 ~n := #in~n; 1122302#L25 assume ~n <= 0;#res := 1; 1122298#factFINAL assume true; 1122294#factEXIT >#76#return; 1122252#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1122253#$Ultimate##0 ~n := #in~n; 1122285#L25 assume !(~n <= 0); 1122282#L26 call #t~ret0 := fact(~n - 1);< 1122283#$Ultimate##0 ~n := #in~n; 1122291#L25 assume ~n <= 0;#res := 1; 1122290#factFINAL assume true; 1122281#factEXIT >#66#return; 1122280#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1122254#factFINAL assume true; 1122251#factEXIT >#78#return; 1122249#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1122248#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1122247#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1122246#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1122244#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1122225#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1122226#$Ultimate##0 ~n := #in~n; 1122289#L25 assume !(~n <= 0); 1122237#L26 call #t~ret0 := fact(~n - 1);< 1122241#$Ultimate##0 ~n := #in~n; 1122273#L25 assume !(~n <= 0); 1122236#L26 call #t~ret0 := fact(~n - 1);< 1122272#$Ultimate##0 ~n := #in~n; 1122297#L25 assume ~n <= 0;#res := 1; 1122293#factFINAL assume true; 1122271#factEXIT >#66#return; 1122269#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1122263#factFINAL assume true; 1122235#factEXIT >#66#return; 1122239#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1122354#factFINAL assume true; 1122224#factEXIT >#74#return; 1122222#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1122223#$Ultimate##0 ~n := #in~n; 1122234#L25 assume ~n <= 0;#res := 1; 1122232#factFINAL assume true; 1122221#factEXIT >#76#return; 1122216#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1122217#$Ultimate##0 ~n := #in~n; 1122292#L25 assume !(~n <= 0); 1122238#L26 call #t~ret0 := fact(~n - 1);< 1122241#$Ultimate##0 ~n := #in~n; 1122273#L25 assume !(~n <= 0); 1122236#L26 call #t~ret0 := fact(~n - 1);< 1122272#$Ultimate##0 ~n := #in~n; 1122297#L25 assume ~n <= 0;#res := 1; 1122293#factFINAL assume true; 1122271#factEXIT >#66#return; 1122269#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1122263#factFINAL assume true; 1122235#factEXIT >#66#return; 1122233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1122220#factFINAL assume true; 1122215#factEXIT >#78#return; 1122212#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1122209#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1122198#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1122194#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1122189#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1122114#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1122115#$Ultimate##0 ~n := #in~n; 1122130#L25 assume !(~n <= 0); 1122127#L26 call #t~ret0 := fact(~n - 1);< 1122128#$Ultimate##0 ~n := #in~n; 1122208#L25 assume !(~n <= 0); 1122126#L26 call #t~ret0 := fact(~n - 1);< 1122196#$Ultimate##0 ~n := #in~n; 1122208#L25 assume !(~n <= 0); 1122126#L26 call #t~ret0 := fact(~n - 1);< 1122196#$Ultimate##0 ~n := #in~n; 1122213#L25 assume ~n <= 0;#res := 1; 1122211#factFINAL assume true; 1122205#factEXIT >#66#return; 1122203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1122201#factFINAL assume true; 1122195#factEXIT >#66#return; 1122192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1122188#factFINAL assume true; 1122125#factEXIT >#66#return; 1122123#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1122121#factFINAL assume true; 1122113#factEXIT >#74#return; 1122110#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1122111#$Ultimate##0 ~n := #in~n; 1122185#L25 assume ~n <= 0;#res := 1; 1122183#factFINAL assume true; 1122109#factEXIT >#76#return; 1119169#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1122032#$Ultimate##0 ~n := #in~n; 1122506#L25 assume !(~n <= 0); 1122101#L26 call #t~ret0 := fact(~n - 1);< 1122107#$Ultimate##0 ~n := #in~n; 1122276#L25 assume !(~n <= 0); 1122103#L26 call #t~ret0 := fact(~n - 1);< 1122243#$Ultimate##0 ~n := #in~n; 1122276#L25 assume !(~n <= 0); 1122103#L26 call #t~ret0 := fact(~n - 1);< 1122243#$Ultimate##0 ~n := #in~n; 1122275#L25 assume ~n <= 0;#res := 1; 1122274#factFINAL assume true; 1122242#factEXIT >#66#return; 1122228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1122227#factFINAL assume true; 1122218#factEXIT >#66#return; 1122178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1122108#factFINAL assume true; 1122100#factEXIT >#66#return; 1119168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119170#factFINAL assume true; 1122031#factEXIT >#78#return; 1121938#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1121899#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1121897#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1121895#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1121893#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1121891#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1121888#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1121887#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1121615#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1121618#$Ultimate##0 ~n := #in~n; 1121823#L25 assume !(~n <= 0); 1121657#L26 call #t~ret0 := fact(~n - 1);< 1121666#$Ultimate##0 ~n := #in~n; 1122176#L25 assume ~n <= 0;#res := 1; 1122167#factFINAL assume true; 1122084#factEXIT >#66#return; 1122094#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1122267#factFINAL assume true; 1122264#factEXIT >#68#return; 1122256#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1121609#$Ultimate##0 ~n := #in~n; 1122287#L25 assume ~n <= 0;#res := 1; 1122286#factFINAL assume true; 1122255#factEXIT >#70#return; 1122230#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1122231#$Ultimate##0 ~n := #in~n; 1122250#L25 assume !(~n <= 0); 1121656#L26 call #t~ret0 := fact(~n - 1);< 1122118#$Ultimate##0 ~n := #in~n; 1122176#L25 assume ~n <= 0;#res := 1; 1122167#factFINAL assume true; 1122084#factEXIT >#66#return; 1122091#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1122245#factFINAL assume true; 1122229#factEXIT >#72#return; 1122219#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1122214#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1122206#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1122204#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1122202#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1122175#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1122200#$Ultimate##0 ~n := #in~n; 1122207#L25 assume !(~n <= 0); 1121630#L26 call #t~ret0 := fact(~n - 1);< 1122118#$Ultimate##0 ~n := #in~n; 1122176#L25 assume ~n <= 0;#res := 1; 1122167#factFINAL assume true; 1122084#factEXIT >#66#return; 1122093#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1122210#factFINAL assume true; 1122199#factEXIT >#68#return; 1122156#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1122166#$Ultimate##0 ~n := #in~n; 1122186#L25 assume !(~n <= 0); 1122088#L26 call #t~ret0 := fact(~n - 1);< 1122095#$Ultimate##0 ~n := #in~n; 1122176#L25 assume ~n <= 0;#res := 1; 1122167#factFINAL assume true; 1122084#factEXIT >#66#return; 1122092#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1122177#factFINAL assume true; 1122146#factEXIT >#70#return; 1122133#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1122145#$Ultimate##0 ~n := #in~n; 1122184#L25 assume ~n <= 0;#res := 1; 1122182#factFINAL assume true; 1122131#factEXIT >#72#return; 1122129#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1122124#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1122122#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1122120#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1122119#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1122036#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1122037#$Ultimate##0 ~n := #in~n; 1122069#L25 assume !(~n <= 0); 1121633#L26 call #t~ret0 := fact(~n - 1);< 1122063#$Ultimate##0 ~n := #in~n; 1124503#L25 assume !(~n <= 0); 1121637#L26 call #t~ret0 := fact(~n - 1);< 1124502#$Ultimate##0 ~n := #in~n; 1121874#L25 assume ~n <= 0;#res := 1; 1121873#factFINAL assume true; 1121826#factEXIT >#66#return; 1121825#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121814#factFINAL assume true; 1121622#factEXIT >#66#return; 1121662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1122116#factFINAL assume true; 1122035#factEXIT >#74#return; 1121913#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1121969#$Ultimate##0 ~n := #in~n; 1124443#L25 assume !(~n <= 0); 1121642#L26 call #t~ret0 := fact(~n - 1);< 1121666#$Ultimate##0 ~n := #in~n; 1122176#L25 assume ~n <= 0;#res := 1; 1122167#factFINAL assume true; 1122084#factEXIT >#66#return; 1122083#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1122029#factFINAL assume true; 1121900#factEXIT >#76#return; 1121920#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1121937#$Ultimate##0 ~n := #in~n; 1122097#L25 assume !(~n <= 0); 1122086#L26 call #t~ret0 := fact(~n - 1);< 1122095#$Ultimate##0 ~n := #in~n; 1122176#L25 assume ~n <= 0;#res := 1; 1122167#factFINAL assume true; 1122084#factEXIT >#66#return; 1122083#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1122029#factFINAL assume true; 1121900#factEXIT >#78#return; 1121898#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1121896#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1121894#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1121892#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1121889#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1121696#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1121884#$Ultimate##0 ~n := #in~n; 1122490#L25 assume !(~n <= 0); 1121855#L26 call #t~ret0 := fact(~n - 1);< 1122066#$Ultimate##0 ~n := #in~n; 1122425#L25 assume !(~n <= 0); 1121857#L26 call #t~ret0 := fact(~n - 1);< 1122028#$Ultimate##0 ~n := #in~n; 1122425#L25 assume !(~n <= 0); 1121857#L26 call #t~ret0 := fact(~n - 1);< 1122028#$Ultimate##0 ~n := #in~n; 1122047#L25 assume ~n <= 0;#res := 1; 1122045#factFINAL assume true; 1121984#factEXIT >#66#return; 1121982#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121978#factFINAL assume true; 1121845#factEXIT >#66#return; 1121870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1122065#factFINAL assume true; 1121988#factEXIT >#66#return; 1121990#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121885#factFINAL assume true; 1121838#factEXIT >#74#return; 1121803#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1121837#$Ultimate##0 ~n := #in~n; 1122630#L25 assume !(~n <= 0); 1121862#L26 call #t~ret0 := fact(~n - 1);< 1121880#$Ultimate##0 ~n := #in~n; 1122070#L25 assume ~n <= 0;#res := 1; 1121996#factFINAL assume true; 1121876#factEXIT >#66#return; 1121875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121836#factFINAL assume true; 1121809#factEXIT >#76#return; 1121793#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1121834#$Ultimate##0 ~n := #in~n; 1122685#L25 assume !(~n <= 0); 1121865#L26 call #t~ret0 := fact(~n - 1);< 1122610#$Ultimate##0 ~n := #in~n; 1122180#L25 assume !(~n <= 0); 1121866#L26 call #t~ret0 := fact(~n - 1);< 1122067#$Ultimate##0 ~n := #in~n; 1122047#L25 assume ~n <= 0;#res := 1; 1122045#factFINAL assume true; 1121984#factEXIT >#66#return; 1121982#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121978#factFINAL assume true; 1121845#factEXIT >#66#return; 1121844#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121832#factFINAL assume true; 1121773#factEXIT >#78#return; 1121806#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1122112#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1122033#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1121886#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1121822#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1121818#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1121813#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1121772#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1121612#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1121618#$Ultimate##0 ~n := #in~n; 1121823#L25 assume !(~n <= 0); 1121657#L26 call #t~ret0 := fact(~n - 1);< 1121666#$Ultimate##0 ~n := #in~n; 1122884#L25 assume !(~n <= 0); 1121624#L26 call #t~ret0 := fact(~n - 1);< 1121829#$Ultimate##0 ~n := #in~n; 1121874#L25 assume ~n <= 0;#res := 1; 1121873#factFINAL assume true; 1121826#factEXIT >#66#return; 1121825#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121814#factFINAL assume true; 1121622#factEXIT >#66#return; 1121620#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121619#factFINAL assume true; 1121610#factEXIT >#68#return; 1121600#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1121607#$Ultimate##0 ~n := #in~n; 1121720#L25 assume ~n <= 0;#res := 1; 1121719#factFINAL assume true; 1121599#factEXIT >#70#return; 1121557#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1121565#$Ultimate##0 ~n := #in~n; 1121685#L25 assume !(~n <= 0); 1121389#L26 call #t~ret0 := fact(~n - 1);< 1121438#$Ultimate##0 ~n := #in~n; 1124992#L25 assume !(~n <= 0); 1121442#L26 call #t~ret0 := fact(~n - 1);< 1121445#$Ultimate##0 ~n := #in~n; 1121492#L25 assume ~n <= 0;#res := 1; 1121490#factFINAL assume true; 1121441#factEXIT >#66#return; 1121439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121435#factFINAL assume true; 1121371#factEXIT >#66#return; 1121415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121683#factFINAL assume true; 1121553#factEXIT >#72#return; 1121561#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1121594#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1121593#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1121592#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1121591#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1121505#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1121516#$Ultimate##0 ~n := #in~n; 1121582#L25 assume !(~n <= 0); 1121391#L26 call #t~ret0 := fact(~n - 1);< 1121438#$Ultimate##0 ~n := #in~n; 1124992#L25 assume !(~n <= 0); 1121442#L26 call #t~ret0 := fact(~n - 1);< 1121445#$Ultimate##0 ~n := #in~n; 1121492#L25 assume ~n <= 0;#res := 1; 1121490#factFINAL assume true; 1121441#factEXIT >#66#return; 1121439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121435#factFINAL assume true; 1121371#factEXIT >#66#return; 1121417#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121519#factFINAL assume true; 1121497#factEXIT >#68#return; 1121513#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1121540#$Ultimate##0 ~n := #in~n; 1121831#L25 assume !(~n <= 0); 1121668#L26 call #t~ret0 := fact(~n - 1);< 1121680#$Ultimate##0 ~n := #in~n; 1121824#L25 assume ~n <= 0;#res := 1; 1121819#factFINAL assume true; 1121667#factEXIT >#66#return; 1121674#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121681#factFINAL assume true; 1121528#factEXIT >#70#return; 1121533#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1121540#$Ultimate##0 ~n := #in~n; 1121831#L25 assume !(~n <= 0); 1121668#L26 call #t~ret0 := fact(~n - 1);< 1121680#$Ultimate##0 ~n := #in~n; 1121824#L25 assume ~n <= 0;#res := 1; 1121819#factFINAL assume true; 1121667#factEXIT >#66#return; 1121674#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121681#factFINAL assume true; 1121528#factEXIT >#72#return; 1121538#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1121586#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1121585#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1121584#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1121583#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1121498#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1121516#$Ultimate##0 ~n := #in~n; 1121582#L25 assume !(~n <= 0); 1121391#L26 call #t~ret0 := fact(~n - 1);< 1121438#$Ultimate##0 ~n := #in~n; 1124992#L25 assume !(~n <= 0); 1121442#L26 call #t~ret0 := fact(~n - 1);< 1121445#$Ultimate##0 ~n := #in~n; 1121492#L25 assume ~n <= 0;#res := 1; 1121490#factFINAL assume true; 1121441#factEXIT >#66#return; 1121439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121435#factFINAL assume true; 1121371#factEXIT >#66#return; 1121417#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121519#factFINAL assume true; 1121497#factEXIT >#68#return; 1121483#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1121487#$Ultimate##0 ~n := #in~n; 1121578#L25 assume !(~n <= 0); 1121388#L26 call #t~ret0 := fact(~n - 1);< 1121467#$Ultimate##0 ~n := #in~n; 1122613#L25 assume !(~n <= 0); 1121372#L26 call #t~ret0 := fact(~n - 1);< 1121444#$Ultimate##0 ~n := #in~n; 1121492#L25 assume ~n <= 0;#res := 1; 1121490#factFINAL assume true; 1121441#factEXIT >#66#return; 1121439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121435#factFINAL assume true; 1121371#factEXIT >#66#return; 1121414#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121496#factFINAL assume true; 1121480#factEXIT >#70#return; 1121420#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1121431#$Ultimate##0 ~n := #in~n; 1121434#L25 assume ~n <= 0;#res := 1; 1121433#factFINAL assume true; 1121419#factEXIT >#72#return; 1121426#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1121581#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1121580#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1121579#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1121577#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1121469#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1121470#$Ultimate##0 ~n := #in~n; 1121692#L25 assume !(~n <= 0); 1121182#L26 call #t~ret0 := fact(~n - 1);< 1121258#$Ultimate##0 ~n := #in~n; 1122921#L25 assume !(~n <= 0); 1121190#L26 call #t~ret0 := fact(~n - 1);< 1121350#$Ultimate##0 ~n := #in~n; 1122921#L25 assume !(~n <= 0); 1121190#L26 call #t~ret0 := fact(~n - 1);< 1121350#$Ultimate##0 ~n := #in~n; 1121210#L25 assume ~n <= 0;#res := 1; 1121208#factFINAL assume true; 1121204#factEXIT >#66#return; 1121203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121177#factFINAL assume true; 1121197#factEXIT >#66#return; 1121271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121257#factFINAL assume true; 1121239#factEXIT >#66#return; 1121244#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121576#factFINAL assume true; 1121468#factEXIT >#74#return; 1121150#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1121340#$Ultimate##0 ~n := #in~n; 1122042#L25 assume !(~n <= 0); 1121185#L26 call #t~ret0 := fact(~n - 1);< 1121248#$Ultimate##0 ~n := #in~n; 1122788#L25 assume !(~n <= 0); 1121184#L26 call #t~ret0 := fact(~n - 1);< 1121199#$Ultimate##0 ~n := #in~n; 1121210#L25 assume ~n <= 0;#res := 1; 1121208#factFINAL assume true; 1121204#factEXIT >#66#return; 1121203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121177#factFINAL assume true; 1121197#factEXIT >#66#return; 1121159#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121147#factFINAL assume true; 1121156#factEXIT >#76#return; 1121133#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1121337#$Ultimate##0 ~n := #in~n; 1121336#L25 assume !(~n <= 0); 1121168#L26 call #t~ret0 := fact(~n - 1);< 1121172#$Ultimate##0 ~n := #in~n; 1121201#L25 assume ~n <= 0;#res := 1; 1121202#factFINAL assume true; 1121160#factEXIT >#66#return; 1121171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121432#factFINAL assume true; 1121118#factEXIT >#78#return; 1121113#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1121112#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1121110#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1121109#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1121108#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1121107#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1121105#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1121104#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1119782#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1119136#$Ultimate##0 ~n := #in~n; 1121042#L25 assume !(~n <= 0); 1119757#L26 call #t~ret0 := fact(~n - 1);< 1119777#$Ultimate##0 ~n := #in~n; 1124949#L25 assume !(~n <= 0); 1119519#L26 call #t~ret0 := fact(~n - 1);< 1124944#$Ultimate##0 ~n := #in~n; 1124945#L25 assume !(~n <= 0); 1119562#L26 call #t~ret0 := fact(~n - 1);< 1119574#$Ultimate##0 ~n := #in~n; 1124939#L25 assume !(~n <= 0); 1119183#L26 call #t~ret0 := fact(~n - 1);< 1125018#$Ultimate##0 ~n := #in~n; 1119178#L25 assume !(~n <= 0); 1119180#L26 call #t~ret0 := fact(~n - 1);< 1119192#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119764#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121106#factFINAL assume true; 1121103#factEXIT >#68#return; 1120101#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1120111#$Ultimate##0 ~n := #in~n; 1120128#L25 assume ~n <= 0;#res := 1; 1120114#factFINAL assume true; 1120098#factEXIT >#70#return; 1119786#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1120113#$Ultimate##0 ~n := #in~n; 1121043#L25 assume !(~n <= 0); 1119477#L26 call #t~ret0 := fact(~n - 1);< 1119617#$Ultimate##0 ~n := #in~n; 1119615#L25 assume !(~n <= 0); 1119480#L26 call #t~ret0 := fact(~n - 1);< 1119613#$Ultimate##0 ~n := #in~n; 1119611#L25 assume !(~n <= 0); 1119460#L26 call #t~ret0 := fact(~n - 1);< 1119608#$Ultimate##0 ~n := #in~n; 1119604#L25 assume !(~n <= 0); 1119464#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119766#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121111#factFINAL assume true; 1121102#factEXIT >#72#return; 1120092#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1121100#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1121098#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1121095#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1121093#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1120326#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1120327#$Ultimate##0 ~n := #in~n; 1120334#L25 assume !(~n <= 0); 1119760#L26 call #t~ret0 := fact(~n - 1);< 1119777#$Ultimate##0 ~n := #in~n; 1124949#L25 assume !(~n <= 0); 1119519#L26 call #t~ret0 := fact(~n - 1);< 1124944#$Ultimate##0 ~n := #in~n; 1124945#L25 assume !(~n <= 0); 1119562#L26 call #t~ret0 := fact(~n - 1);< 1119574#$Ultimate##0 ~n := #in~n; 1124939#L25 assume !(~n <= 0); 1119183#L26 call #t~ret0 := fact(~n - 1);< 1125018#$Ultimate##0 ~n := #in~n; 1119178#L25 assume !(~n <= 0); 1119180#L26 call #t~ret0 := fact(~n - 1);< 1119192#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120330#factFINAL assume true; 1120314#factEXIT >#68#return; 1119836#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1119860#$Ultimate##0 ~n := #in~n; 1121220#L25 assume !(~n <= 0); 1119275#L26 call #t~ret0 := fact(~n - 1);< 1120920#$Ultimate##0 ~n := #in~n; 1120924#L25 assume ~n <= 0;#res := 1; 1120922#factFINAL assume true; 1120917#factEXIT >#66#return; 1120919#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119863#factFINAL assume true; 1119833#factEXIT >#70#return; 1119549#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1120289#$Ultimate##0 ~n := #in~n; 1121064#L25 assume !(~n <= 0); 1119530#L26 call #t~ret0 := fact(~n - 1);< 1119555#$Ultimate##0 ~n := #in~n; 1124943#L25 assume !(~n <= 0); 1119566#L26 call #t~ret0 := fact(~n - 1);< 1124940#$Ultimate##0 ~n := #in~n; 1124941#L25 assume !(~n <= 0); 1119182#L26 call #t~ret0 := fact(~n - 1);< 1119582#$Ultimate##0 ~n := #in~n; 1119178#L25 assume !(~n <= 0); 1119180#L26 call #t~ret0 := fact(~n - 1);< 1119192#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120050#factFINAL assume true; 1120023#factEXIT >#72#return; 1120030#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1121063#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1120974#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1120975#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1120957#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1120323#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1120327#$Ultimate##0 ~n := #in~n; 1120334#L25 assume !(~n <= 0); 1119760#L26 call #t~ret0 := fact(~n - 1);< 1119777#$Ultimate##0 ~n := #in~n; 1124949#L25 assume !(~n <= 0); 1119519#L26 call #t~ret0 := fact(~n - 1);< 1124944#$Ultimate##0 ~n := #in~n; 1124945#L25 assume !(~n <= 0); 1119562#L26 call #t~ret0 := fact(~n - 1);< 1119574#$Ultimate##0 ~n := #in~n; 1124939#L25 assume !(~n <= 0); 1119183#L26 call #t~ret0 := fact(~n - 1);< 1125018#$Ultimate##0 ~n := #in~n; 1119178#L25 assume !(~n <= 0); 1119180#L26 call #t~ret0 := fact(~n - 1);< 1119192#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120330#factFINAL assume true; 1120314#factEXIT >#68#return; 1119969#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1119988#$Ultimate##0 ~n := #in~n; 1120978#L25 assume !(~n <= 0); 1119447#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119987#factFINAL assume true; 1119968#factEXIT >#70#return; 1119573#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1120022#$Ultimate##0 ~n := #in~n; 1121055#L25 assume !(~n <= 0); 1119565#L26 call #t~ret0 := fact(~n - 1);< 1119574#$Ultimate##0 ~n := #in~n; 1124939#L25 assume !(~n <= 0); 1119183#L26 call #t~ret0 := fact(~n - 1);< 1125018#$Ultimate##0 ~n := #in~n; 1119178#L25 assume !(~n <= 0); 1119180#L26 call #t~ret0 := fact(~n - 1);< 1119192#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119568#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120021#factFINAL assume true; 1120000#factEXIT >#72#return; 1120002#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1120481#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1120478#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1120479#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1120328#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1120320#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1120327#$Ultimate##0 ~n := #in~n; 1120334#L25 assume !(~n <= 0); 1119760#L26 call #t~ret0 := fact(~n - 1);< 1119777#$Ultimate##0 ~n := #in~n; 1124949#L25 assume !(~n <= 0); 1119519#L26 call #t~ret0 := fact(~n - 1);< 1124944#$Ultimate##0 ~n := #in~n; 1124945#L25 assume !(~n <= 0); 1119562#L26 call #t~ret0 := fact(~n - 1);< 1119574#$Ultimate##0 ~n := #in~n; 1124939#L25 assume !(~n <= 0); 1119183#L26 call #t~ret0 := fact(~n - 1);< 1125018#$Ultimate##0 ~n := #in~n; 1119178#L25 assume !(~n <= 0); 1119180#L26 call #t~ret0 := fact(~n - 1);< 1119192#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120330#factFINAL assume true; 1120314#factEXIT >#68#return; 1119282#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1119832#$Ultimate##0 ~n := #in~n; 1119830#L25 assume !(~n <= 0); 1119451#L26 call #t~ret0 := fact(~n - 1);< 1119608#$Ultimate##0 ~n := #in~n; 1119604#L25 assume !(~n <= 0); 1119464#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119568#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120021#factFINAL assume true; 1120000#factEXIT >#70#return; 1119586#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1119989#$Ultimate##0 ~n := #in~n; 1121028#L25 assume !(~n <= 0); 1119578#L26 call #t~ret0 := fact(~n - 1);< 1119587#$Ultimate##0 ~n := #in~n; 1125024#L25 assume !(~n <= 0); 1119181#L26 call #t~ret0 := fact(~n - 1);< 1119582#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119987#factFINAL assume true; 1119968#factEXIT >#72#return; 1119978#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1120609#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1120604#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1120605#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1120600#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1120321#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1120327#$Ultimate##0 ~n := #in~n; 1120334#L25 assume !(~n <= 0); 1119760#L26 call #t~ret0 := fact(~n - 1);< 1119777#$Ultimate##0 ~n := #in~n; 1124949#L25 assume !(~n <= 0); 1119519#L26 call #t~ret0 := fact(~n - 1);< 1124944#$Ultimate##0 ~n := #in~n; 1124945#L25 assume !(~n <= 0); 1119562#L26 call #t~ret0 := fact(~n - 1);< 1119574#$Ultimate##0 ~n := #in~n; 1124939#L25 assume !(~n <= 0); 1119183#L26 call #t~ret0 := fact(~n - 1);< 1125018#$Ultimate##0 ~n := #in~n; 1119178#L25 assume !(~n <= 0); 1119180#L26 call #t~ret0 := fact(~n - 1);< 1119192#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120330#factFINAL assume true; 1120314#factEXIT >#68#return; 1119379#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1119832#$Ultimate##0 ~n := #in~n; 1119830#L25 assume !(~n <= 0); 1119451#L26 call #t~ret0 := fact(~n - 1);< 1119608#$Ultimate##0 ~n := #in~n; 1119604#L25 assume !(~n <= 0); 1119464#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120050#factFINAL assume true; 1120023#factEXIT >#70#return; 1119837#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1119865#$Ultimate##0 ~n := #in~n; 1121221#L25 assume !(~n <= 0); 1119579#L26 call #t~ret0 := fact(~n - 1);< 1120923#$Ultimate##0 ~n := #in~n; 1120924#L25 assume ~n <= 0;#res := 1; 1120922#factFINAL assume true; 1120917#factEXIT >#66#return; 1120919#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119863#factFINAL assume true; 1119833#factEXIT >#72#return; 1119846#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1121054#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1121053#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1121052#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1121051#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1120325#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1120327#$Ultimate##0 ~n := #in~n; 1120334#L25 assume !(~n <= 0); 1119760#L26 call #t~ret0 := fact(~n - 1);< 1119777#$Ultimate##0 ~n := #in~n; 1124949#L25 assume !(~n <= 0); 1119519#L26 call #t~ret0 := fact(~n - 1);< 1124944#$Ultimate##0 ~n := #in~n; 1124945#L25 assume !(~n <= 0); 1119562#L26 call #t~ret0 := fact(~n - 1);< 1119574#$Ultimate##0 ~n := #in~n; 1124939#L25 assume !(~n <= 0); 1119183#L26 call #t~ret0 := fact(~n - 1);< 1125018#$Ultimate##0 ~n := #in~n; 1119178#L25 assume !(~n <= 0); 1119180#L26 call #t~ret0 := fact(~n - 1);< 1119192#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120330#factFINAL assume true; 1120314#factEXIT >#68#return; 1119375#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1119832#$Ultimate##0 ~n := #in~n; 1119830#L25 assume !(~n <= 0); 1119451#L26 call #t~ret0 := fact(~n - 1);< 1119608#$Ultimate##0 ~n := #in~n; 1119604#L25 assume !(~n <= 0); 1119464#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119754#factFINAL assume true; 1119278#factEXIT >#70#return; 1119206#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1119271#$Ultimate##0 ~n := #in~n; 1119276#L25 assume ~n <= 0;#res := 1; 1119272#factFINAL assume true; 1119205#factEXIT >#72#return; 1119155#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1119156#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1119171#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1120786#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1120577#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1120559#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1120575#$Ultimate##0 ~n := #in~n; 1120832#L25 assume !(~n <= 0); 1120776#L26 call #t~ret0 := fact(~n - 1);< 1120829#$Ultimate##0 ~n := #in~n; 1120940#L25 assume !(~n <= 0); 1120777#L26 call #t~ret0 := fact(~n - 1);< 1120781#$Ultimate##0 ~n := #in~n; 1120914#L25 assume !(~n <= 0); 1120778#L26 call #t~ret0 := fact(~n - 1);< 1120893#$Ultimate##0 ~n := #in~n; 1120901#L25 assume !(~n <= 0); 1120230#L26 call #t~ret0 := fact(~n - 1);< 1120227#$Ultimate##0 ~n := #in~n; 1120229#L25 assume !(~n <= 0); 1120232#L26 call #t~ret0 := fact(~n - 1);< 1120473#$Ultimate##0 ~n := #in~n; 1120229#L25 assume !(~n <= 0); 1120232#L26 call #t~ret0 := fact(~n - 1);< 1120473#$Ultimate##0 ~n := #in~n; 1120229#L25 assume !(~n <= 0); 1120232#L26 call #t~ret0 := fact(~n - 1);< 1120473#$Ultimate##0 ~n := #in~n; 1120229#L25 assume !(~n <= 0); 1120232#L26 call #t~ret0 := fact(~n - 1);< 1120473#$Ultimate##0 ~n := #in~n; 1119191#L25 assume ~n <= 0;#res := 1; 1120506#factFINAL assume true; 1120471#factEXIT >#66#return; 1120465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120468#factFINAL assume true; 1120617#factEXIT >#66#return; 1120618#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120903#factFINAL assume true; 1120899#factEXIT >#66#return; 1120898#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120897#factFINAL assume true; 1120890#factEXIT >#66#return; 1120889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120887#factFINAL assume true; 1120860#factEXIT >#66#return; 1120858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120780#factFINAL assume true; 1120775#factEXIT >#66#return; 1120779#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120839#factFINAL assume true; 1120837#factEXIT >#66#return; 1120836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120835#factFINAL assume true; 1120827#factEXIT >#66#return; 1120826#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120825#factFINAL assume true; 1120612#factEXIT >#74#return; 1119147#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1120745#$Ultimate##0 ~n := #in~n; 1120980#L25 assume !(~n <= 0); 1119145#L26 call #t~ret0 := fact(~n - 1);< 1119149#$Ultimate##0 ~n := #in~n; 1120620#L25 assume !(~n <= 0); 1120622#L26 call #t~ret0 := fact(~n - 1);< 1120782#$Ultimate##0 ~n := #in~n; 1120865#L25 assume !(~n <= 0); 1120861#L26 call #t~ret0 := fact(~n - 1);< 1120863#$Ultimate##0 ~n := #in~n; 1120895#L25 assume !(~n <= 0); 1120467#L26 call #t~ret0 := fact(~n - 1);< 1120894#$Ultimate##0 ~n := #in~n; 1121036#L25 assume !(~n <= 0); 1119175#L26 call #t~ret0 := fact(~n - 1);< 1120900#$Ultimate##0 ~n := #in~n; 1119174#L25 assume !(~n <= 0); 1119176#L26 call #t~ret0 := fact(~n - 1);< 1120472#$Ultimate##0 ~n := #in~n; 1119191#L25 assume ~n <= 0;#res := 1; 1120506#factFINAL assume true; 1120471#factEXIT >#66#return; 1120465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120468#factFINAL assume true; 1120617#factEXIT >#66#return; 1120618#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120903#factFINAL assume true; 1120899#factEXIT >#66#return; 1120898#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120897#factFINAL assume true; 1120890#factEXIT >#66#return; 1120889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120887#factFINAL assume true; 1120860#factEXIT >#66#return; 1120858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120780#factFINAL assume true; 1120775#factEXIT >#66#return; 1120773#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120587#factFINAL assume true; 1120557#factEXIT >#76#return; 1120153#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1120492#$Ultimate##0 ~n := #in~n; 1120906#L25 assume !(~n <= 0); 1120214#L26 call #t~ret0 := fact(~n - 1);< 1120469#$Ultimate##0 ~n := #in~n; 1120464#L25 assume ~n <= 0;#res := 1; 1120222#factFINAL assume true; 1120212#factEXIT >#66#return; 1120216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120551#factFINAL assume true; 1120149#factEXIT >#78#return; 1120157#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1120459#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1120458#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1120457#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1120456#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1120454#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1120452#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1120332#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1120118#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1120138#$Ultimate##0 ~n := #in~n; 1120134#L25 assume !(~n <= 0); 1119473#L26 call #t~ret0 := fact(~n - 1);< 1119537#$Ultimate##0 ~n := #in~n; 1119933#L25 assume !(~n <= 0); 1119474#L26 call #t~ret0 := fact(~n - 1);< 1119930#$Ultimate##0 ~n := #in~n; 1119934#L25 assume !(~n <= 0); 1119476#L26 call #t~ret0 := fact(~n - 1);< 1119931#$Ultimate##0 ~n := #in~n; 1121056#L25 assume !(~n <= 0); 1119478#L26 call #t~ret0 := fact(~n - 1);< 1119828#$Ultimate##0 ~n := #in~n; 1121039#L25 assume !(~n <= 0); 1119483#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120909#factFINAL assume true; 1120772#factEXIT >#66#return; 1119870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120449#factFINAL assume true; 1120115#factEXIT >#68#return; 1120104#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1120111#$Ultimate##0 ~n := #in~n; 1120128#L25 assume ~n <= 0;#res := 1; 1120114#factFINAL assume true; 1120098#factEXIT >#70#return; 1119939#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1120096#$Ultimate##0 ~n := #in~n; 1120162#L25 assume !(~n <= 0); 1119457#L26 call #t~ret0 := fact(~n - 1);< 1119537#$Ultimate##0 ~n := #in~n; 1119933#L25 assume !(~n <= 0); 1119474#L26 call #t~ret0 := fact(~n - 1);< 1119930#$Ultimate##0 ~n := #in~n; 1119934#L25 assume !(~n <= 0); 1119476#L26 call #t~ret0 := fact(~n - 1);< 1119931#$Ultimate##0 ~n := #in~n; 1121056#L25 assume !(~n <= 0); 1119478#L26 call #t~ret0 := fact(~n - 1);< 1119828#$Ultimate##0 ~n := #in~n; 1121039#L25 assume !(~n <= 0); 1119483#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119486#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121200#factFINAL assume true; 1120087#factEXIT >#72#return; 1120085#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1120083#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1120081#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1120079#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1120077#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1119697#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1119702#$Ultimate##0 ~n := #in~n; 1119872#L25 assume !(~n <= 0); 1119461#L26 call #t~ret0 := fact(~n - 1);< 1119643#$Ultimate##0 ~n := #in~n; 1119641#L25 assume !(~n <= 0); 1119466#L26 call #t~ret0 := fact(~n - 1);< 1119629#$Ultimate##0 ~n := #in~n; 1119626#L25 assume !(~n <= 0); 1119469#L26 call #t~ret0 := fact(~n - 1);< 1119617#$Ultimate##0 ~n := #in~n; 1119615#L25 assume !(~n <= 0); 1119480#L26 call #t~ret0 := fact(~n - 1);< 1119613#$Ultimate##0 ~n := #in~n; 1119611#L25 assume !(~n <= 0); 1119460#L26 call #t~ret0 := fact(~n - 1);< 1119608#$Ultimate##0 ~n := #in~n; 1119604#L25 assume !(~n <= 0); 1119464#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120909#factFINAL assume true; 1120772#factEXIT >#66#return; 1119866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119725#factFINAL assume true; 1119657#factEXIT >#68#return; 1119232#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1119864#$Ultimate##0 ~n := #in~n; 1119274#L25 assume !(~n <= 0); 1119275#L26 call #t~ret0 := fact(~n - 1);< 1120920#$Ultimate##0 ~n := #in~n; 1120924#L25 assume ~n <= 0;#res := 1; 1120922#factFINAL assume true; 1120917#factEXIT >#66#return; 1120919#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119863#factFINAL assume true; 1119833#factEXIT >#70#return; 1119416#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1119708#$Ultimate##0 ~n := #in~n; 1119709#L25 assume !(~n <= 0); 1119481#L26 call #t~ret0 := fact(~n - 1);< 1119617#$Ultimate##0 ~n := #in~n; 1119615#L25 assume !(~n <= 0); 1119480#L26 call #t~ret0 := fact(~n - 1);< 1119613#$Ultimate##0 ~n := #in~n; 1119611#L25 assume !(~n <= 0); 1119460#L26 call #t~ret0 := fact(~n - 1);< 1119608#$Ultimate##0 ~n := #in~n; 1119604#L25 assume !(~n <= 0); 1119464#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120909#factFINAL assume true; 1120772#factEXIT >#66#return; 1119868#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120282#factFINAL assume true; 1120252#factEXIT >#72#return; 1119652#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1120076#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1120074#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1120072#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1120070#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1119664#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1119702#$Ultimate##0 ~n := #in~n; 1119872#L25 assume !(~n <= 0); 1119461#L26 call #t~ret0 := fact(~n - 1);< 1119643#$Ultimate##0 ~n := #in~n; 1119641#L25 assume !(~n <= 0); 1119466#L26 call #t~ret0 := fact(~n - 1);< 1119629#$Ultimate##0 ~n := #in~n; 1119626#L25 assume !(~n <= 0); 1119469#L26 call #t~ret0 := fact(~n - 1);< 1119617#$Ultimate##0 ~n := #in~n; 1119615#L25 assume !(~n <= 0); 1119480#L26 call #t~ret0 := fact(~n - 1);< 1119613#$Ultimate##0 ~n := #in~n; 1119611#L25 assume !(~n <= 0); 1119460#L26 call #t~ret0 := fact(~n - 1);< 1119608#$Ultimate##0 ~n := #in~n; 1119604#L25 assume !(~n <= 0); 1119464#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120909#factFINAL assume true; 1120772#factEXIT >#66#return; 1119866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119725#factFINAL assume true; 1119657#factEXIT >#68#return; 1119251#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1119277#$Ultimate##0 ~n := #in~n; 1121027#L25 assume !(~n <= 0); 1119184#L26 call #t~ret0 := fact(~n - 1);< 1125015#$Ultimate##0 ~n := #in~n; 1119178#L25 assume !(~n <= 0); 1119180#L26 call #t~ret0 := fact(~n - 1);< 1119192#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119987#factFINAL assume true; 1119968#factEXIT >#70#return; 1119350#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1119957#$Ultimate##0 ~n := #in~n; 1119706#L25 assume !(~n <= 0); 1119448#L26 call #t~ret0 := fact(~n - 1);< 1119617#$Ultimate##0 ~n := #in~n; 1119615#L25 assume !(~n <= 0); 1119480#L26 call #t~ret0 := fact(~n - 1);< 1119613#$Ultimate##0 ~n := #in~n; 1119611#L25 assume !(~n <= 0); 1119460#L26 call #t~ret0 := fact(~n - 1);< 1119608#$Ultimate##0 ~n := #in~n; 1119604#L25 assume !(~n <= 0); 1119464#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119754#factFINAL assume true; 1119278#factEXIT >#72#return; 1119391#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1120067#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1120065#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1120063#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1120061#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1119680#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1119702#$Ultimate##0 ~n := #in~n; 1119872#L25 assume !(~n <= 0); 1119461#L26 call #t~ret0 := fact(~n - 1);< 1119643#$Ultimate##0 ~n := #in~n; 1119641#L25 assume !(~n <= 0); 1119466#L26 call #t~ret0 := fact(~n - 1);< 1119629#$Ultimate##0 ~n := #in~n; 1119626#L25 assume !(~n <= 0); 1119469#L26 call #t~ret0 := fact(~n - 1);< 1119617#$Ultimate##0 ~n := #in~n; 1119615#L25 assume !(~n <= 0); 1119480#L26 call #t~ret0 := fact(~n - 1);< 1119613#$Ultimate##0 ~n := #in~n; 1119611#L25 assume !(~n <= 0); 1119460#L26 call #t~ret0 := fact(~n - 1);< 1119608#$Ultimate##0 ~n := #in~n; 1119604#L25 assume !(~n <= 0); 1119464#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120909#factFINAL assume true; 1120772#factEXIT >#66#return; 1119866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119725#factFINAL assume true; 1119657#factEXIT >#68#return; 1119256#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1119442#$Ultimate##0 ~n := #in~n; 1119628#L25 assume !(~n <= 0); 1119467#L26 call #t~ret0 := fact(~n - 1);< 1119548#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119568#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120021#factFINAL assume true; 1120000#factEXIT >#70#return; 1119370#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1119703#$Ultimate##0 ~n := #in~n; 1119704#L25 assume !(~n <= 0); 1119472#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120050#factFINAL assume true; 1120023#factEXIT >#72#return; 1120041#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1120059#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1120057#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1120055#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1120053#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1119669#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1119702#$Ultimate##0 ~n := #in~n; 1119872#L25 assume !(~n <= 0); 1119461#L26 call #t~ret0 := fact(~n - 1);< 1119643#$Ultimate##0 ~n := #in~n; 1119641#L25 assume !(~n <= 0); 1119466#L26 call #t~ret0 := fact(~n - 1);< 1119629#$Ultimate##0 ~n := #in~n; 1119626#L25 assume !(~n <= 0); 1119469#L26 call #t~ret0 := fact(~n - 1);< 1119617#$Ultimate##0 ~n := #in~n; 1119615#L25 assume !(~n <= 0); 1119480#L26 call #t~ret0 := fact(~n - 1);< 1119613#$Ultimate##0 ~n := #in~n; 1119611#L25 assume !(~n <= 0); 1119460#L26 call #t~ret0 := fact(~n - 1);< 1119608#$Ultimate##0 ~n := #in~n; 1119604#L25 assume !(~n <= 0); 1119464#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120909#factFINAL assume true; 1120772#factEXIT >#66#return; 1119866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119725#factFINAL assume true; 1119657#factEXIT >#68#return; 1119225#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1119442#$Ultimate##0 ~n := #in~n; 1119628#L25 assume !(~n <= 0); 1119467#L26 call #t~ret0 := fact(~n - 1);< 1119548#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120050#factFINAL assume true; 1120023#factEXIT >#70#return; 1119348#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1119703#$Ultimate##0 ~n := #in~n; 1119704#L25 assume !(~n <= 0); 1119472#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119568#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120021#factFINAL assume true; 1120000#factEXIT >#72#return; 1119998#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1119996#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1119994#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1119992#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1119990#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1119686#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1119702#$Ultimate##0 ~n := #in~n; 1119872#L25 assume !(~n <= 0); 1119461#L26 call #t~ret0 := fact(~n - 1);< 1119643#$Ultimate##0 ~n := #in~n; 1119641#L25 assume !(~n <= 0); 1119466#L26 call #t~ret0 := fact(~n - 1);< 1119629#$Ultimate##0 ~n := #in~n; 1119626#L25 assume !(~n <= 0); 1119469#L26 call #t~ret0 := fact(~n - 1);< 1119617#$Ultimate##0 ~n := #in~n; 1119615#L25 assume !(~n <= 0); 1119480#L26 call #t~ret0 := fact(~n - 1);< 1119613#$Ultimate##0 ~n := #in~n; 1119611#L25 assume !(~n <= 0); 1119460#L26 call #t~ret0 := fact(~n - 1);< 1119608#$Ultimate##0 ~n := #in~n; 1119604#L25 assume !(~n <= 0); 1119464#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120909#factFINAL assume true; 1120772#factEXIT >#66#return; 1119866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119725#factFINAL assume true; 1119657#factEXIT >#68#return; 1119245#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1119442#$Ultimate##0 ~n := #in~n; 1119628#L25 assume !(~n <= 0); 1119467#L26 call #t~ret0 := fact(~n - 1);< 1119548#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119754#factFINAL assume true; 1119278#factEXIT >#70#return; 1119330#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1119703#$Ultimate##0 ~n := #in~n; 1119704#L25 assume !(~n <= 0); 1119472#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119987#factFINAL assume true; 1119968#factEXIT >#72#return; 1119967#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1119965#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1119963#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1119961#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1119959#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1119688#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1119702#$Ultimate##0 ~n := #in~n; 1119872#L25 assume !(~n <= 0); 1119461#L26 call #t~ret0 := fact(~n - 1);< 1119643#$Ultimate##0 ~n := #in~n; 1119641#L25 assume !(~n <= 0); 1119466#L26 call #t~ret0 := fact(~n - 1);< 1119629#$Ultimate##0 ~n := #in~n; 1119626#L25 assume !(~n <= 0); 1119469#L26 call #t~ret0 := fact(~n - 1);< 1119617#$Ultimate##0 ~n := #in~n; 1119615#L25 assume !(~n <= 0); 1119480#L26 call #t~ret0 := fact(~n - 1);< 1119613#$Ultimate##0 ~n := #in~n; 1119611#L25 assume !(~n <= 0); 1119460#L26 call #t~ret0 := fact(~n - 1);< 1119608#$Ultimate##0 ~n := #in~n; 1119604#L25 assume !(~n <= 0); 1119464#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120909#factFINAL assume true; 1120772#factEXIT >#66#return; 1119866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119725#factFINAL assume true; 1119657#factEXIT >#68#return; 1119215#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1119442#$Ultimate##0 ~n := #in~n; 1119628#L25 assume !(~n <= 0); 1119467#L26 call #t~ret0 := fact(~n - 1);< 1119548#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119772#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119748#factFINAL assume true; 1119750#factEXIT >#70#return; 1119298#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1119630#$Ultimate##0 ~n := #in~n; 1119627#L25 assume !(~n <= 0); 1119467#L26 call #t~ret0 := fact(~n - 1);< 1119548#$Ultimate##0 ~n := #in~n; 1120924#L25 assume ~n <= 0;#res := 1; 1120922#factFINAL assume true; 1120917#factEXIT >#66#return; 1120919#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119863#factFINAL assume true; 1119833#factEXIT >#72#return; 1119854#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1120820#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1120819#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1120818#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1119867#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1119658#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1119702#$Ultimate##0 ~n := #in~n; 1119872#L25 assume !(~n <= 0); 1119461#L26 call #t~ret0 := fact(~n - 1);< 1119643#$Ultimate##0 ~n := #in~n; 1119641#L25 assume !(~n <= 0); 1119466#L26 call #t~ret0 := fact(~n - 1);< 1119629#$Ultimate##0 ~n := #in~n; 1119626#L25 assume !(~n <= 0); 1119469#L26 call #t~ret0 := fact(~n - 1);< 1119617#$Ultimate##0 ~n := #in~n; 1119615#L25 assume !(~n <= 0); 1119480#L26 call #t~ret0 := fact(~n - 1);< 1119613#$Ultimate##0 ~n := #in~n; 1119611#L25 assume !(~n <= 0); 1119460#L26 call #t~ret0 := fact(~n - 1);< 1119608#$Ultimate##0 ~n := #in~n; 1119604#L25 assume !(~n <= 0); 1119464#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119488#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119921#factFINAL assume true; 1119873#factEXIT >#68#return; 1119425#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1119935#$Ultimate##0 ~n := #in~n; 1119932#L25 assume !(~n <= 0); 1119462#L26 call #t~ret0 := fact(~n - 1);< 1119537#$Ultimate##0 ~n := #in~n; 1119933#L25 assume !(~n <= 0); 1119474#L26 call #t~ret0 := fact(~n - 1);< 1119930#$Ultimate##0 ~n := #in~n; 1119934#L25 assume !(~n <= 0); 1119476#L26 call #t~ret0 := fact(~n - 1);< 1119931#$Ultimate##0 ~n := #in~n; 1121056#L25 assume !(~n <= 0); 1119478#L26 call #t~ret0 := fact(~n - 1);< 1119828#$Ultimate##0 ~n := #in~n; 1121039#L25 assume !(~n <= 0); 1119483#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119415#factFINAL assume true; 1119440#factEXIT >#70#return; 1119233#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1119722#$Ultimate##0 ~n := #in~n; 1119720#L25 assume ~n <= 0;#res := 1; 1119272#factFINAL assume true; 1119205#factEXIT >#72#return; 1119264#L30-3 [2023-02-18 08:59:45,540 INFO L750 eck$LassoCheckResult]: Loop: 1119264#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1120741#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1120739#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1120737#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1120682#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1120593#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1119102#$Ultimate##0 ~n := #in~n; 1120597#L25 assume !(~n <= 0); 1120588#L26 call #t~ret0 := fact(~n - 1);< 1120591#$Ultimate##0 ~n := #in~n; 1120589#L25 assume !(~n <= 0); 1120552#L26 call #t~ret0 := fact(~n - 1);< 1120555#$Ultimate##0 ~n := #in~n; 1120554#L25 assume !(~n <= 0); 1120547#L26 call #t~ret0 := fact(~n - 1);< 1120550#$Ultimate##0 ~n := #in~n; 1120549#L25 assume !(~n <= 0); 1120544#L26 call #t~ret0 := fact(~n - 1);< 1120546#$Ultimate##0 ~n := #in~n; 1120545#L25 assume !(~n <= 0); 1120226#L26 call #t~ret0 := fact(~n - 1);< 1120543#$Ultimate##0 ~n := #in~n; 1120541#L25 assume !(~n <= 0); 1120225#L26 call #t~ret0 := fact(~n - 1);< 1120227#$Ultimate##0 ~n := #in~n; 1120229#L25 assume !(~n <= 0); 1120232#L26 call #t~ret0 := fact(~n - 1);< 1120473#$Ultimate##0 ~n := #in~n; 1119191#L25 assume ~n <= 0;#res := 1; 1120506#factFINAL assume true; 1120471#factEXIT >#66#return; 1120465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120468#factFINAL assume true; 1120617#factEXIT >#66#return; 1120618#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120903#factFINAL assume true; 1120899#factEXIT >#66#return; 1120898#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120897#factFINAL assume true; 1120890#factEXIT >#66#return; 1120889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120887#factFINAL assume true; 1120860#factEXIT >#66#return; 1120858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120780#factFINAL assume true; 1120775#factEXIT >#66#return; 1120779#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120839#factFINAL assume true; 1120837#factEXIT >#66#return; 1120838#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120813#factFINAL assume true; 1120608#factEXIT >#74#return; 1120514#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1119195#$Ultimate##0 ~n := #in~n; 1120797#L25 assume !(~n <= 0); 1120616#L26 call #t~ret0 := fact(~n - 1);< 1120796#$Ultimate##0 ~n := #in~n; 1120795#L25 assume !(~n <= 0); 1120613#L26 call #t~ret0 := fact(~n - 1);< 1120615#$Ultimate##0 ~n := #in~n; 1120614#L25 assume !(~n <= 0); 1120223#L26 call #t~ret0 := fact(~n - 1);< 1120611#$Ultimate##0 ~n := #in~n; 1120610#L25 assume !(~n <= 0); 1119177#L26 call #t~ret0 := fact(~n - 1);< 1120224#$Ultimate##0 ~n := #in~n; 1119174#L25 assume !(~n <= 0); 1119176#L26 call #t~ret0 := fact(~n - 1);< 1120472#$Ultimate##0 ~n := #in~n; 1121090#L25 assume !(~n <= 0); 1119190#L26 call #t~ret0 := fact(~n - 1);< 1119189#$Ultimate##0 ~n := #in~n; 1119191#L25 assume ~n <= 0;#res := 1; 1120506#factFINAL assume true; 1120471#factEXIT >#66#return; 1120465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120468#factFINAL assume true; 1120617#factEXIT >#66#return; 1120618#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120903#factFINAL assume true; 1120899#factEXIT >#66#return; 1120898#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120897#factFINAL assume true; 1120890#factEXIT >#66#return; 1120889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120887#factFINAL assume true; 1120860#factEXIT >#66#return; 1120858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120780#factFINAL assume true; 1120775#factEXIT >#66#return; 1120773#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120587#factFINAL assume true; 1120557#factEXIT >#76#return; 1120150#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1120492#$Ultimate##0 ~n := #in~n; 1120906#L25 assume !(~n <= 0); 1120214#L26 call #t~ret0 := fact(~n - 1);< 1120469#$Ultimate##0 ~n := #in~n; 1120464#L25 assume ~n <= 0;#res := 1; 1120222#factFINAL assume true; 1120212#factEXIT >#66#return; 1120216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120551#factFINAL assume true; 1120149#factEXIT >#78#return; 1120155#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1124972#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1124970#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1124968#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1124961#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1124960#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1124959#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1124958#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1120123#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1124956#$Ultimate##0 ~n := #in~n; 1124955#L25 assume !(~n <= 0); 1119455#L26 call #t~ret0 := fact(~n - 1);< 1119922#$Ultimate##0 ~n := #in~n; 1124954#L25 assume !(~n <= 0); 1119770#L26 call #t~ret0 := fact(~n - 1);< 1119809#$Ultimate##0 ~n := #in~n; 1124951#L25 assume !(~n <= 0); 1119761#L26 call #t~ret0 := fact(~n - 1);< 1119777#$Ultimate##0 ~n := #in~n; 1124949#L25 assume !(~n <= 0); 1119519#L26 call #t~ret0 := fact(~n - 1);< 1124944#$Ultimate##0 ~n := #in~n; 1124945#L25 assume !(~n <= 0); 1119562#L26 call #t~ret0 := fact(~n - 1);< 1119574#$Ultimate##0 ~n := #in~n; 1124939#L25 assume !(~n <= 0); 1119183#L26 call #t~ret0 := fact(~n - 1);< 1125018#$Ultimate##0 ~n := #in~n; 1119178#L25 assume !(~n <= 0); 1119180#L26 call #t~ret0 := fact(~n - 1);< 1119192#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119485#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120129#factFINAL assume true; 1120121#factEXIT >#68#return; 1120099#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1120111#$Ultimate##0 ~n := #in~n; 1120128#L25 assume ~n <= 0;#res := 1; 1120114#factFINAL assume true; 1120098#factEXIT >#70#return; 1119937#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1120096#$Ultimate##0 ~n := #in~n; 1120162#L25 assume !(~n <= 0); 1119457#L26 call #t~ret0 := fact(~n - 1);< 1119537#$Ultimate##0 ~n := #in~n; 1119933#L25 assume !(~n <= 0); 1119474#L26 call #t~ret0 := fact(~n - 1);< 1119930#$Ultimate##0 ~n := #in~n; 1119934#L25 assume !(~n <= 0); 1119476#L26 call #t~ret0 := fact(~n - 1);< 1119931#$Ultimate##0 ~n := #in~n; 1121056#L25 assume !(~n <= 0); 1119478#L26 call #t~ret0 := fact(~n - 1);< 1119828#$Ultimate##0 ~n := #in~n; 1121039#L25 assume !(~n <= 0); 1119483#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119486#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1121200#factFINAL assume true; 1120087#factEXIT >#72#return; 1120086#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1120084#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1120082#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1120080#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1120078#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1119916#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1119920#$Ultimate##0 ~n := #in~n; 1119923#L25 assume !(~n <= 0); 1119463#L26 call #t~ret0 := fact(~n - 1);< 1119922#$Ultimate##0 ~n := #in~n; 1124954#L25 assume !(~n <= 0); 1119770#L26 call #t~ret0 := fact(~n - 1);< 1119809#$Ultimate##0 ~n := #in~n; 1124951#L25 assume !(~n <= 0); 1119761#L26 call #t~ret0 := fact(~n - 1);< 1119777#$Ultimate##0 ~n := #in~n; 1124949#L25 assume !(~n <= 0); 1119519#L26 call #t~ret0 := fact(~n - 1);< 1124944#$Ultimate##0 ~n := #in~n; 1124945#L25 assume !(~n <= 0); 1119562#L26 call #t~ret0 := fact(~n - 1);< 1119574#$Ultimate##0 ~n := #in~n; 1124939#L25 assume !(~n <= 0); 1119183#L26 call #t~ret0 := fact(~n - 1);< 1125018#$Ultimate##0 ~n := #in~n; 1119178#L25 assume !(~n <= 0); 1119180#L26 call #t~ret0 := fact(~n - 1);< 1119192#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119488#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119921#factFINAL assume true; 1119873#factEXIT >#68#return; 1119840#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1119860#$Ultimate##0 ~n := #in~n; 1121220#L25 assume !(~n <= 0); 1119275#L26 call #t~ret0 := fact(~n - 1);< 1120920#$Ultimate##0 ~n := #in~n; 1120924#L25 assume ~n <= 0;#res := 1; 1120922#factFINAL assume true; 1120917#factEXIT >#66#return; 1120919#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119863#factFINAL assume true; 1119833#factEXIT >#70#return; 1119749#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1119444#$Ultimate##0 ~n := #in~n; 1120902#L25 assume !(~n <= 0); 1119538#L26 call #t~ret0 := fact(~n - 1);< 1119778#$Ultimate##0 ~n := #in~n; 1124934#L25 assume !(~n <= 0); 1119520#L26 call #t~ret0 := fact(~n - 1);< 1119540#$Ultimate##0 ~n := #in~n; 1125012#L25 assume !(~n <= 0); 1119521#L26 call #t~ret0 := fact(~n - 1);< 1119570#$Ultimate##0 ~n := #in~n; 1121213#L25 assume !(~n <= 0); 1119563#L26 call #t~ret0 := fact(~n - 1);< 1119569#$Ultimate##0 ~n := #in~n; 1121065#L25 assume !(~n <= 0); 1119179#L26 call #t~ret0 := fact(~n - 1);< 1119582#$Ultimate##0 ~n := #in~n; 1119178#L25 assume !(~n <= 0); 1119180#L26 call #t~ret0 := fact(~n - 1);< 1119192#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119772#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119748#factFINAL assume true; 1119750#factEXIT >#72#return; 1119655#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1120075#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1120073#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1120071#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1120069#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1119875#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1119920#$Ultimate##0 ~n := #in~n; 1119923#L25 assume !(~n <= 0); 1119463#L26 call #t~ret0 := fact(~n - 1);< 1119922#$Ultimate##0 ~n := #in~n; 1124954#L25 assume !(~n <= 0); 1119770#L26 call #t~ret0 := fact(~n - 1);< 1119809#$Ultimate##0 ~n := #in~n; 1124951#L25 assume !(~n <= 0); 1119761#L26 call #t~ret0 := fact(~n - 1);< 1119777#$Ultimate##0 ~n := #in~n; 1124949#L25 assume !(~n <= 0); 1119519#L26 call #t~ret0 := fact(~n - 1);< 1124944#$Ultimate##0 ~n := #in~n; 1124945#L25 assume !(~n <= 0); 1119562#L26 call #t~ret0 := fact(~n - 1);< 1119574#$Ultimate##0 ~n := #in~n; 1124939#L25 assume !(~n <= 0); 1119183#L26 call #t~ret0 := fact(~n - 1);< 1125018#$Ultimate##0 ~n := #in~n; 1119178#L25 assume !(~n <= 0); 1119180#L26 call #t~ret0 := fact(~n - 1);< 1119192#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119488#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119921#factFINAL assume true; 1119873#factEXIT >#68#return; 1119918#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1120068#$Ultimate##0 ~n := #in~n; 1121026#L25 assume !(~n <= 0); 1119184#L26 call #t~ret0 := fact(~n - 1);< 1125015#$Ultimate##0 ~n := #in~n; 1119178#L25 assume !(~n <= 0); 1119180#L26 call #t~ret0 := fact(~n - 1);< 1119192#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119987#factFINAL assume true; 1119968#factEXIT >#70#return; 1119349#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1119956#$Ultimate##0 ~n := #in~n; 1120765#L25 assume !(~n <= 0); 1119756#L26 call #t~ret0 := fact(~n - 1);< 1119777#$Ultimate##0 ~n := #in~n; 1124949#L25 assume !(~n <= 0); 1119519#L26 call #t~ret0 := fact(~n - 1);< 1124944#$Ultimate##0 ~n := #in~n; 1124945#L25 assume !(~n <= 0); 1119562#L26 call #t~ret0 := fact(~n - 1);< 1119574#$Ultimate##0 ~n := #in~n; 1124939#L25 assume !(~n <= 0); 1119183#L26 call #t~ret0 := fact(~n - 1);< 1125018#$Ultimate##0 ~n := #in~n; 1119178#L25 assume !(~n <= 0); 1119180#L26 call #t~ret0 := fact(~n - 1);< 1119192#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119754#factFINAL assume true; 1119278#factEXIT >#72#return; 1119390#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1120066#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1120064#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1120062#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1120060#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1119908#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1119920#$Ultimate##0 ~n := #in~n; 1119923#L25 assume !(~n <= 0); 1119463#L26 call #t~ret0 := fact(~n - 1);< 1119922#$Ultimate##0 ~n := #in~n; 1124954#L25 assume !(~n <= 0); 1119770#L26 call #t~ret0 := fact(~n - 1);< 1119809#$Ultimate##0 ~n := #in~n; 1124951#L25 assume !(~n <= 0); 1119761#L26 call #t~ret0 := fact(~n - 1);< 1119777#$Ultimate##0 ~n := #in~n; 1124949#L25 assume !(~n <= 0); 1119519#L26 call #t~ret0 := fact(~n - 1);< 1124944#$Ultimate##0 ~n := #in~n; 1124945#L25 assume !(~n <= 0); 1119562#L26 call #t~ret0 := fact(~n - 1);< 1119574#$Ultimate##0 ~n := #in~n; 1124939#L25 assume !(~n <= 0); 1119183#L26 call #t~ret0 := fact(~n - 1);< 1125018#$Ultimate##0 ~n := #in~n; 1119178#L25 assume !(~n <= 0); 1119180#L26 call #t~ret0 := fact(~n - 1);< 1119192#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119488#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119921#factFINAL assume true; 1119873#factEXIT >#68#return; 1119374#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1119630#$Ultimate##0 ~n := #in~n; 1119627#L25 assume !(~n <= 0); 1119467#L26 call #t~ret0 := fact(~n - 1);< 1119548#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119568#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120021#factFINAL assume true; 1120000#factEXIT >#70#return; 1119366#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1119724#$Ultimate##0 ~n := #in~n; 1119656#L25 assume !(~n <= 0); 1119524#L26 call #t~ret0 := fact(~n - 1);< 1119610#$Ultimate##0 ~n := #in~n; 1119606#L25 assume !(~n <= 0); 1119517#L26 call #t~ret0 := fact(~n - 1);< 1119599#$Ultimate##0 ~n := #in~n; 1119710#L25 assume !(~n <= 0); 1119560#L26 call #t~ret0 := fact(~n - 1);< 1119600#$Ultimate##0 ~n := #in~n; 1121065#L25 assume !(~n <= 0); 1119179#L26 call #t~ret0 := fact(~n - 1);< 1119582#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120050#factFINAL assume true; 1120023#factEXIT >#72#return; 1120038#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1120058#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1120056#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1120054#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1120052#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1119904#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1119920#$Ultimate##0 ~n := #in~n; 1119923#L25 assume !(~n <= 0); 1119463#L26 call #t~ret0 := fact(~n - 1);< 1119922#$Ultimate##0 ~n := #in~n; 1124954#L25 assume !(~n <= 0); 1119770#L26 call #t~ret0 := fact(~n - 1);< 1119809#$Ultimate##0 ~n := #in~n; 1124951#L25 assume !(~n <= 0); 1119761#L26 call #t~ret0 := fact(~n - 1);< 1119777#$Ultimate##0 ~n := #in~n; 1124949#L25 assume !(~n <= 0); 1119519#L26 call #t~ret0 := fact(~n - 1);< 1124944#$Ultimate##0 ~n := #in~n; 1124945#L25 assume !(~n <= 0); 1119562#L26 call #t~ret0 := fact(~n - 1);< 1119574#$Ultimate##0 ~n := #in~n; 1124939#L25 assume !(~n <= 0); 1119183#L26 call #t~ret0 := fact(~n - 1);< 1125018#$Ultimate##0 ~n := #in~n; 1119178#L25 assume !(~n <= 0); 1119180#L26 call #t~ret0 := fact(~n - 1);< 1119192#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119488#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119921#factFINAL assume true; 1119873#factEXIT >#68#return; 1119363#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1119630#$Ultimate##0 ~n := #in~n; 1119627#L25 assume !(~n <= 0); 1119467#L26 call #t~ret0 := fact(~n - 1);< 1119548#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120050#factFINAL assume true; 1120023#factEXIT >#70#return; 1119346#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1119724#$Ultimate##0 ~n := #in~n; 1119656#L25 assume !(~n <= 0); 1119524#L26 call #t~ret0 := fact(~n - 1);< 1119610#$Ultimate##0 ~n := #in~n; 1119606#L25 assume !(~n <= 0); 1119517#L26 call #t~ret0 := fact(~n - 1);< 1119599#$Ultimate##0 ~n := #in~n; 1119710#L25 assume !(~n <= 0); 1119560#L26 call #t~ret0 := fact(~n - 1);< 1119600#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119568#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1120021#factFINAL assume true; 1120000#factEXIT >#72#return; 1119999#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1119997#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1119995#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1119993#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1119991#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1119910#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1119920#$Ultimate##0 ~n := #in~n; 1119923#L25 assume !(~n <= 0); 1119463#L26 call #t~ret0 := fact(~n - 1);< 1119922#$Ultimate##0 ~n := #in~n; 1124954#L25 assume !(~n <= 0); 1119770#L26 call #t~ret0 := fact(~n - 1);< 1119809#$Ultimate##0 ~n := #in~n; 1124951#L25 assume !(~n <= 0); 1119761#L26 call #t~ret0 := fact(~n - 1);< 1119777#$Ultimate##0 ~n := #in~n; 1124949#L25 assume !(~n <= 0); 1119519#L26 call #t~ret0 := fact(~n - 1);< 1124944#$Ultimate##0 ~n := #in~n; 1124945#L25 assume !(~n <= 0); 1119562#L26 call #t~ret0 := fact(~n - 1);< 1119574#$Ultimate##0 ~n := #in~n; 1124939#L25 assume !(~n <= 0); 1119183#L26 call #t~ret0 := fact(~n - 1);< 1125018#$Ultimate##0 ~n := #in~n; 1119178#L25 assume !(~n <= 0); 1119180#L26 call #t~ret0 := fact(~n - 1);< 1119192#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119488#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119921#factFINAL assume true; 1119873#factEXIT >#68#return; 1119320#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1119630#$Ultimate##0 ~n := #in~n; 1119627#L25 assume !(~n <= 0); 1119467#L26 call #t~ret0 := fact(~n - 1);< 1119548#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119754#factFINAL assume true; 1119278#factEXIT >#70#return; 1119327#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1119724#$Ultimate##0 ~n := #in~n; 1119656#L25 assume !(~n <= 0); 1119524#L26 call #t~ret0 := fact(~n - 1);< 1119610#$Ultimate##0 ~n := #in~n; 1119606#L25 assume !(~n <= 0); 1119517#L26 call #t~ret0 := fact(~n - 1);< 1119599#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119987#factFINAL assume true; 1119968#factEXIT >#72#return; 1119966#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1119964#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1119962#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1119960#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1119958#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1119890#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1119920#$Ultimate##0 ~n := #in~n; 1119923#L25 assume !(~n <= 0); 1119463#L26 call #t~ret0 := fact(~n - 1);< 1119922#$Ultimate##0 ~n := #in~n; 1124954#L25 assume !(~n <= 0); 1119770#L26 call #t~ret0 := fact(~n - 1);< 1119809#$Ultimate##0 ~n := #in~n; 1124951#L25 assume !(~n <= 0); 1119761#L26 call #t~ret0 := fact(~n - 1);< 1119777#$Ultimate##0 ~n := #in~n; 1124949#L25 assume !(~n <= 0); 1119519#L26 call #t~ret0 := fact(~n - 1);< 1124944#$Ultimate##0 ~n := #in~n; 1124945#L25 assume !(~n <= 0); 1119562#L26 call #t~ret0 := fact(~n - 1);< 1119574#$Ultimate##0 ~n := #in~n; 1124939#L25 assume !(~n <= 0); 1119183#L26 call #t~ret0 := fact(~n - 1);< 1125018#$Ultimate##0 ~n := #in~n; 1119178#L25 assume !(~n <= 0); 1119180#L26 call #t~ret0 := fact(~n - 1);< 1119192#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119488#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119921#factFINAL assume true; 1119873#factEXIT >#68#return; 1119289#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1119630#$Ultimate##0 ~n := #in~n; 1119627#L25 assume !(~n <= 0); 1119467#L26 call #t~ret0 := fact(~n - 1);< 1119548#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119772#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119748#factFINAL assume true; 1119750#factEXIT >#70#return; 1119716#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1119723#$Ultimate##0 ~n := #in~n; 1119721#L25 assume !(~n <= 0); 1119528#L26 call #t~ret0 := fact(~n - 1);< 1119717#$Ultimate##0 ~n := #in~n; 1120924#L25 assume ~n <= 0;#res := 1; 1120922#factFINAL assume true; 1120917#factEXIT >#66#return; 1120919#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119863#factFINAL assume true; 1119833#factEXIT >#72#return; 1119859#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1119953#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1119952#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1119950#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1119948#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1119881#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1119920#$Ultimate##0 ~n := #in~n; 1119923#L25 assume !(~n <= 0); 1119463#L26 call #t~ret0 := fact(~n - 1);< 1119922#$Ultimate##0 ~n := #in~n; 1124954#L25 assume !(~n <= 0); 1119770#L26 call #t~ret0 := fact(~n - 1);< 1119809#$Ultimate##0 ~n := #in~n; 1124951#L25 assume !(~n <= 0); 1119761#L26 call #t~ret0 := fact(~n - 1);< 1119777#$Ultimate##0 ~n := #in~n; 1124949#L25 assume !(~n <= 0); 1119519#L26 call #t~ret0 := fact(~n - 1);< 1124944#$Ultimate##0 ~n := #in~n; 1124945#L25 assume !(~n <= 0); 1119562#L26 call #t~ret0 := fact(~n - 1);< 1119574#$Ultimate##0 ~n := #in~n; 1124939#L25 assume !(~n <= 0); 1119183#L26 call #t~ret0 := fact(~n - 1);< 1125018#$Ultimate##0 ~n := #in~n; 1119178#L25 assume !(~n <= 0); 1119180#L26 call #t~ret0 := fact(~n - 1);< 1119192#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119488#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119921#factFINAL assume true; 1119873#factEXIT >#68#return; 1119425#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1119935#$Ultimate##0 ~n := #in~n; 1119932#L25 assume !(~n <= 0); 1119462#L26 call #t~ret0 := fact(~n - 1);< 1119537#$Ultimate##0 ~n := #in~n; 1119933#L25 assume !(~n <= 0); 1119474#L26 call #t~ret0 := fact(~n - 1);< 1119930#$Ultimate##0 ~n := #in~n; 1119934#L25 assume !(~n <= 0); 1119476#L26 call #t~ret0 := fact(~n - 1);< 1119931#$Ultimate##0 ~n := #in~n; 1121056#L25 assume !(~n <= 0); 1119478#L26 call #t~ret0 := fact(~n - 1);< 1119828#$Ultimate##0 ~n := #in~n; 1121039#L25 assume !(~n <= 0); 1119483#L26 call #t~ret0 := fact(~n - 1);< 1119547#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119607#L25 assume !(~n <= 0); 1119465#L26 call #t~ret0 := fact(~n - 1);< 1119601#$Ultimate##0 ~n := #in~n; 1119193#L25 assume ~n <= 0;#res := 1; 1119603#factFINAL assume true; 1119598#factEXIT >#66#return; 1119596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119584#factFINAL assume true; 1119576#factEXIT >#66#return; 1119575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119571#factFINAL assume true; 1119557#factEXIT >#66#return; 1119556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119544#factFINAL assume true; 1119516#factEXIT >#66#return; 1119534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119779#factFINAL assume true; 1119755#factEXIT >#66#return; 1119762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119787#factFINAL assume true; 1119767#factEXIT >#66#return; 1119514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119515#factFINAL assume true; 1119446#factEXIT >#66#return; 1119445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1119415#factFINAL assume true; 1119440#factEXIT >#70#return; 1119233#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1119722#$Ultimate##0 ~n := #in~n; 1119720#L25 assume ~n <= 0;#res := 1; 1119272#factFINAL assume true; 1119205#factEXIT >#72#return; 1119264#L30-3 [2023-02-18 08:59:45,540 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:59:45,540 INFO L85 PathProgramCache]: Analyzing trace with hash -1236539968, now seen corresponding path program 86 times [2023-02-18 08:59:45,540 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:59:45,540 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1553369280] [2023-02-18 08:59:45,540 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:59:45,540 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:59:45,658 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:59:45,659 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2019026062] [2023-02-18 08:59:45,659 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:59:45,659 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:59:45,659 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:45,663 INFO L229 MonitoredProcess]: Starting monitored process 297 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:59:45,664 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (297)] Waiting until timeout for monitored process [2023-02-18 08:59:47,160 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:59:47,160 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:59:47,177 INFO L263 TraceCheckSpWp]: Trace formula consists of 4291 conjuncts, 15 conjunts are in the unsatisfiable core [2023-02-18 08:59:47,188 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:59:47,248 INFO L134 CoverageAnalysis]: Checked inductivity of 264974 backedges. 101950 proven. 338 refuted. 0 times theorem prover too weak. 162686 trivial. 0 not checked. [2023-02-18 08:59:47,248 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:59:47,375 INFO L134 CoverageAnalysis]: Checked inductivity of 264974 backedges. 2392 proven. 4695 refuted. 0 times theorem prover too weak. 257887 trivial. 0 not checked. [2023-02-18 08:59:47,375 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:59:47,375 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1553369280] [2023-02-18 08:59:47,375 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:59:47,375 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2019026062] [2023-02-18 08:59:47,375 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2019026062] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:59:47,375 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:59:47,376 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 16 [2023-02-18 08:59:47,376 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1002343055] [2023-02-18 08:59:47,376 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:59:47,376 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:59:47,376 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:59:47,376 INFO L85 PathProgramCache]: Analyzing trace with hash -1260431685, now seen corresponding path program 86 times [2023-02-18 08:59:47,376 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:59:47,376 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [90370314] [2023-02-18 08:59:47,376 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:59:47,377 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:59:47,402 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:59:47,402 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1239881059] [2023-02-18 08:59:47,402 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-18 08:59:47,403 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:59:47,403 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:47,405 INFO L229 MonitoredProcess]: Starting monitored process 298 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:59:47,406 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (298)] Waiting until timeout for monitored process [2023-02-18 08:59:49,089 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-18 08:59:49,089 INFO L229 tOrderPrioritization]: Conjunction of SSA is unknown [2023-02-18 08:59:49,098 WARN L124 FreeRefinementEngine]: Strategy CAMEL was unsuccessful and could not determine trace feasibility [2023-02-18 08:59:49,502 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:59:49,502 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:59:49,502 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:59:49,502 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:59:49,502 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-18 08:59:49,502 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:59:49,502 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:59:49,502 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:59:49,502 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration98_Loop [2023-02-18 08:59:49,503 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:59:49,503 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:59:49,506 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-18 08:59:49,507 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-18 08:59:49,511 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-18 08:59:49,511 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-18 08:59:49,513 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-18 08:59:49,513 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-18 08:59:49,513 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-18 08:59:49,514 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-18 08:59:49,523 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:59:49,523 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-18 08:59:49,523 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:59:49,523 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:49,528 INFO L229 MonitoredProcess]: Starting monitored process 299 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-18 08:59:49,529 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (299)] Waiting until timeout for monitored process [2023-02-18 08:59:49,530 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:59:49,530 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:59:49,551 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-18 08:59:49,551 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_binomialCoefficient_#t~ret3#1=1} Honda state: {ULTIMATE.start_binomialCoefficient_#t~ret3#1=1} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-18 08:59:49,559 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (299)] Forceful destruction successful, exit code 0 [2023-02-18 08:59:49,559 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:59:49,559 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:49,562 INFO L229 MonitoredProcess]: Starting monitored process 300 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-18 08:59:49,564 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (300)] Waiting until timeout for monitored process [2023-02-18 08:59:49,582 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-18 08:59:49,583 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:59:49,609 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (300)] Forceful destruction successful, exit code 0 [2023-02-18 08:59:49,610 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:59:49,610 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:49,613 INFO L229 MonitoredProcess]: Starting monitored process 301 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-18 08:59:49,615 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (301)] Waiting until timeout for monitored process [2023-02-18 08:59:49,617 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-18 08:59:49,617 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-18 08:59:49,645 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-18 08:59:49,648 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (301)] Forceful destruction successful, exit code 0 [2023-02-18 08:59:49,649 INFO L210 LassoAnalysis]: Preferences: [2023-02-18 08:59:49,649 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-18 08:59:49,649 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-18 08:59:49,649 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-18 08:59:49,649 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-18 08:59:49,649 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:59:49,649 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-18 08:59:49,649 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-18 08:59:49,649 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration98_Loop [2023-02-18 08:59:49,649 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-18 08:59:49,649 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-18 08:59:49,652 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-18 08:59:49,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-18 08:59:49,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-18 08:59:49,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-18 08:59:49,660 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-18 08:59:49,661 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-18 08:59:49,662 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-18 08:59:49,663 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-18 08:59:49,672 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-18 08:59:49,673 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-18 08:59:49,673 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:59:49,673 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:49,679 INFO L229 MonitoredProcess]: Starting monitored process 302 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-18 08:59:49,681 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (302)] Waiting until timeout for monitored process [2023-02-18 08:59:49,683 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-18 08:59:49,688 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:59:49,688 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:59:49,688 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:59:49,688 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:59:49,688 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:59:49,689 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:59:49,689 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:59:49,704 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:59:49,708 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (302)] Forceful destruction successful, exit code 0 [2023-02-18 08:59:49,708 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:59:49,708 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:49,712 INFO L229 MonitoredProcess]: Starting monitored process 303 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-18 08:59:49,714 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (303)] Waiting until timeout for monitored process [2023-02-18 08:59:49,716 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-18 08:59:49,721 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:59:49,722 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:59:49,722 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:59:49,722 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:59:49,722 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:59:49,722 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:59:49,722 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:59:49,737 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-18 08:59:49,741 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (303)] Forceful destruction successful, exit code 0 [2023-02-18 08:59:49,741 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:59:49,741 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:49,744 INFO L229 MonitoredProcess]: Starting monitored process 304 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-18 08:59:49,746 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (304)] Waiting until timeout for monitored process [2023-02-18 08:59:49,747 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-18 08:59:49,754 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-18 08:59:49,754 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-18 08:59:49,754 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-18 08:59:49,754 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-18 08:59:49,754 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-18 08:59:49,764 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-18 08:59:49,764 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-18 08:59:49,778 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-18 08:59:49,784 INFO L443 ModelExtractionUtils]: Simplification made 3 calls to the SMT solver. [2023-02-18 08:59:49,784 INFO L444 ModelExtractionUtils]: 8 out of 11 variables were initially zero. Simplification set additionally 0 variables to zero. [2023-02-18 08:59:49,784 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-18 08:59:49,784 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:49,789 INFO L229 MonitoredProcess]: Starting monitored process 305 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-18 08:59:49,790 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (305)] Waiting until timeout for monitored process [2023-02-18 08:59:49,791 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-18 08:59:49,791 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-18 08:59:49,791 INFO L513 LassoAnalysis]: Proved termination. [2023-02-18 08:59:49,791 INFO L515 LassoAnalysis]: Termination argument consisting of: Ranking function f(ULTIMATE.start_main_~n~0#1) = -2*ULTIMATE.start_main_~n~0#1 + 13 Supporting invariants [] [2023-02-18 08:59:49,795 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (304)] Forceful destruction successful, exit code 0 [2023-02-18 08:59:49,795 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-18 08:59:49,803 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:59:50,940 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (305)] Forceful destruction successful, exit code 0 [2023-02-18 08:59:51,373 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:59:51,458 INFO L263 TraceCheckSpWp]: Trace formula consists of 13279 conjuncts, 644 conjunts are in the unsatisfiable core [2023-02-18 08:59:51,476 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:59:52,920 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-18 08:59:52,983 INFO L263 TraceCheckSpWp]: Trace formula consists of 6263 conjuncts, 329 conjunts are in the unsatisfiable core [2023-02-18 08:59:52,992 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:59:53,984 INFO L134 CoverageAnalysis]: Checked inductivity of 62519 backedges. 39 proven. 5238 refuted. 0 times theorem prover too weak. 57242 trivial. 0 not checked. [2023-02-18 08:59:53,989 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-18 08:59:53,989 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 5950 states and 9845 transitions. cyclomatic complexity: 3940 Second operand has 17 states, 16 states have (on average 3.6875) internal successors, (59), 16 states have internal predecessors, (59), 7 states have call successors, (15), 2 states have call predecessors, (15), 10 states have return successors, (23), 13 states have call predecessors, (23), 7 states have call successors, (23) [2023-02-18 08:59:54,495 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 5950 states and 9845 transitions. cyclomatic complexity: 3940. Second operand has 17 states, 16 states have (on average 3.6875) internal successors, (59), 16 states have internal predecessors, (59), 7 states have call successors, (15), 2 states have call predecessors, (15), 10 states have return successors, (23), 13 states have call predecessors, (23), 7 states have call successors, (23) Result 12366 states and 20681 transitions. Complement of second has 87 states. [2023-02-18 08:59:54,496 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-18 08:59:54,496 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 17 states, 16 states have (on average 3.6875) internal successors, (59), 16 states have internal predecessors, (59), 7 states have call successors, (15), 2 states have call predecessors, (15), 10 states have return successors, (23), 13 states have call predecessors, (23), 7 states have call successors, (23) [2023-02-18 08:59:54,496 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 148 transitions. [2023-02-18 08:59:54,496 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 16 states and 148 transitions. Stem has 1994 letters. Loop has 939 letters. [2023-02-18 08:59:54,498 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:59:54,498 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 16 states and 148 transitions. Stem has 2933 letters. Loop has 939 letters. [2023-02-18 08:59:54,500 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:59:54,500 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 16 states and 148 transitions. Stem has 1994 letters. Loop has 1878 letters. [2023-02-18 08:59:54,503 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-18 08:59:54,503 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 12366 states and 20681 transitions. [2023-02-18 08:59:54,582 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 777 [2023-02-18 08:59:54,643 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 12366 states to 7984 states and 13259 transitions. [2023-02-18 08:59:54,643 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 238 [2023-02-18 08:59:54,644 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 248 [2023-02-18 08:59:54,644 INFO L73 IsDeterministic]: Start isDeterministic. Operand 7984 states and 13259 transitions. [2023-02-18 08:59:54,644 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:59:54,644 INFO L218 hiAutomatonCegarLoop]: Abstraction has 7984 states and 13259 transitions. [2023-02-18 08:59:54,647 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 7984 states and 13259 transitions. [2023-02-18 08:59:54,743 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 7984 to 7793. [2023-02-18 08:59:54,749 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7793 states, 4718 states have (on average 1.046417973717677) internal successors, (4937), 4696 states have internal predecessors, (4937), 2619 states have call successors, (2641), 733 states have call predecessors, (2641), 456 states have return successors, (5239), 2363 states have call predecessors, (5239), 2619 states have call successors, (5239) [2023-02-18 08:59:54,778 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7793 states to 7793 states and 12817 transitions. [2023-02-18 08:59:54,778 INFO L240 hiAutomatonCegarLoop]: Abstraction has 7793 states and 12817 transitions. [2023-02-18 08:59:54,778 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 08:59:54,779 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2023-02-18 08:59:54,779 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=55, Invalid=185, Unknown=0, NotChecked=0, Total=240 [2023-02-18 08:59:54,779 INFO L87 Difference]: Start difference. First operand 7793 states and 12817 transitions. Second operand has 16 states, 15 states have (on average 5.333333333333333) internal successors, (80), 16 states have internal predecessors, (80), 11 states have call successors, (38), 2 states have call predecessors, (38), 6 states have return successors, (40), 9 states have call predecessors, (40), 11 states have call successors, (40) [2023-02-18 08:59:55,354 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 08:59:55,354 INFO L93 Difference]: Finished difference Result 8802 states and 14808 transitions. [2023-02-18 08:59:55,355 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 8802 states and 14808 transitions. [2023-02-18 08:59:55,406 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 777 [2023-02-18 08:59:55,470 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 8802 states to 8607 states and 14480 transitions. [2023-02-18 08:59:55,470 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 244 [2023-02-18 08:59:55,471 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 244 [2023-02-18 08:59:55,471 INFO L73 IsDeterministic]: Start isDeterministic. Operand 8607 states and 14480 transitions. [2023-02-18 08:59:55,471 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 08:59:55,471 INFO L218 hiAutomatonCegarLoop]: Abstraction has 8607 states and 14480 transitions. [2023-02-18 08:59:55,474 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 8607 states and 14480 transitions. [2023-02-18 08:59:55,574 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 8607 to 7648. [2023-02-18 08:59:55,581 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7648 states, 4638 states have (on average 1.0459249676584734) internal successors, (4851), 4612 states have internal predecessors, (4851), 2554 states have call successors, (2572), 733 states have call predecessors, (2572), 456 states have return successors, (5138), 2302 states have call predecessors, (5138), 2554 states have call successors, (5138) [2023-02-18 08:59:55,608 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7648 states to 7648 states and 12561 transitions. [2023-02-18 08:59:55,609 INFO L240 hiAutomatonCegarLoop]: Abstraction has 7648 states and 12561 transitions. [2023-02-18 08:59:55,609 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2023-02-18 08:59:55,609 INFO L428 stractBuchiCegarLoop]: Abstraction has 7648 states and 12561 transitions. [2023-02-18 08:59:55,609 INFO L335 stractBuchiCegarLoop]: ======== Iteration 99 ============ [2023-02-18 08:59:55,609 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 7648 states and 12561 transitions. [2023-02-18 08:59:55,627 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 777 [2023-02-18 08:59:55,627 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 08:59:55,627 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 08:59:55,636 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [369, 369, 273, 273, 273, 273, 96, 32, 31, 24, 24, 24, 24, 24, 24, 24, 23, 23, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 5, 5, 1, 1, 1, 1] [2023-02-18 08:59:55,636 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [154, 154, 127, 127, 127, 127, 27, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 08:59:55,637 INFO L748 eck$LassoCheckResult]: Stem: 1175047#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 1174998#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; 1174999#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 1175019#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; 1175048#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1175324#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1175322#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1175316#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1175317#$Ultimate##0 ~n := #in~n; 1175323#L25 assume ~n <= 0;#res := 1; 1175321#factFINAL assume true; 1175315#factEXIT >#68#return; 1175313#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175314#$Ultimate##0 ~n := #in~n; 1175320#L25 assume ~n <= 0;#res := 1; 1175319#factFINAL assume true; 1175312#factEXIT >#70#return; 1175308#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175309#$Ultimate##0 ~n := #in~n; 1175318#L25 assume ~n <= 0;#res := 1; 1175311#factFINAL assume true; 1175307#factEXIT >#72#return; 1175304#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1175295#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1175294#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1175293#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1175290#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1175259#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1175260#$Ultimate##0 ~n := #in~n; 1175286#L25 assume !(~n <= 0); 1175280#L26 call #t~ret0 := fact(~n - 1);< 1175281#$Ultimate##0 ~n := #in~n; 1175292#L25 assume ~n <= 0;#res := 1; 1175289#factFINAL assume true; 1175279#factEXIT >#66#return; 1175278#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175277#factFINAL assume true; 1175258#factEXIT >#74#return; 1175256#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175257#$Ultimate##0 ~n := #in~n; 1175267#L25 assume ~n <= 0;#res := 1; 1175265#factFINAL assume true; 1175255#factEXIT >#76#return; 1175252#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175253#$Ultimate##0 ~n := #in~n; 1175266#L25 assume !(~n <= 0); 1175263#L26 call #t~ret0 := fact(~n - 1);< 1175264#$Ultimate##0 ~n := #in~n; 1175276#L25 assume ~n <= 0;#res := 1; 1175268#factFINAL assume true; 1175262#factEXIT >#66#return; 1175261#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175254#factFINAL assume true; 1175251#factEXIT >#78#return; 1175250#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1175248#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1175246#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1175243#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1175242#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1175233#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1175237#$Ultimate##0 ~n := #in~n; 1175245#L25 assume !(~n <= 0); 1175226#L26 call #t~ret0 := fact(~n - 1);< 1175231#$Ultimate##0 ~n := #in~n; 1175249#L25 assume !(~n <= 0); 1175228#L26 call #t~ret0 := fact(~n - 1);< 1175241#$Ultimate##0 ~n := #in~n; 1175247#L25 assume ~n <= 0;#res := 1; 1175244#factFINAL assume true; 1175240#factEXIT >#66#return; 1175235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175232#factFINAL assume true; 1175225#factEXIT >#66#return; 1175229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175302#factFINAL assume true; 1175236#factEXIT >#74#return; 1175216#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175217#$Ultimate##0 ~n := #in~n; 1175238#L25 assume ~n <= 0;#res := 1; 1175234#factFINAL assume true; 1175215#factEXIT >#76#return; 1175212#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175213#$Ultimate##0 ~n := #in~n; 1175239#L25 assume !(~n <= 0); 1175227#L26 call #t~ret0 := fact(~n - 1);< 1175231#$Ultimate##0 ~n := #in~n; 1175249#L25 assume !(~n <= 0); 1175228#L26 call #t~ret0 := fact(~n - 1);< 1175241#$Ultimate##0 ~n := #in~n; 1175247#L25 assume ~n <= 0;#res := 1; 1175244#factFINAL assume true; 1175240#factEXIT >#66#return; 1175235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175232#factFINAL assume true; 1175225#factEXIT >#66#return; 1175224#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175222#factFINAL assume true; 1175211#factEXIT >#78#return; 1175208#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1175206#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1175203#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1175198#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1175195#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1175192#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1175193#$Ultimate##0 ~n := #in~n; 1175205#L25 assume !(~n <= 0); 1175200#L26 call #t~ret0 := fact(~n - 1);< 1175202#$Ultimate##0 ~n := #in~n; 1175220#L25 assume !(~n <= 0); 1175201#L26 call #t~ret0 := fact(~n - 1);< 1175210#$Ultimate##0 ~n := #in~n; 1175220#L25 assume !(~n <= 0); 1175201#L26 call #t~ret0 := fact(~n - 1);< 1175210#$Ultimate##0 ~n := #in~n; 1175223#L25 assume ~n <= 0;#res := 1; 1175221#factFINAL assume true; 1175219#factEXIT >#66#return; 1175218#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175214#factFINAL assume true; 1175209#factEXIT >#66#return; 1175207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175204#factFINAL assume true; 1175199#factEXIT >#66#return; 1175197#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175194#factFINAL assume true; 1175191#factEXIT >#74#return; 1175175#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175176#$Ultimate##0 ~n := #in~n; 1175184#L25 assume ~n <= 0;#res := 1; 1175183#factFINAL assume true; 1175174#factEXIT >#76#return; 1175153#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175170#$Ultimate##0 ~n := #in~n; 1175168#L25 assume !(~n <= 0); 1175145#L26 call #t~ret0 := fact(~n - 1);< 1175149#$Ultimate##0 ~n := #in~n; 1175163#L25 assume !(~n <= 0); 1175142#L26 call #t~ret0 := fact(~n - 1);< 1175173#$Ultimate##0 ~n := #in~n; 1175163#L25 assume !(~n <= 0); 1175142#L26 call #t~ret0 := fact(~n - 1);< 1175173#$Ultimate##0 ~n := #in~n; 1175178#L25 assume ~n <= 0;#res := 1; 1175177#factFINAL assume true; 1175172#factEXIT >#66#return; 1175171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175169#factFINAL assume true; 1175165#factEXIT >#66#return; 1175164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175162#factFINAL assume true; 1175159#factEXIT >#66#return; 1175148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180122#factFINAL assume true; 1180053#factEXIT >#78#return; 1180049#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1175001#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1180047#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1180043#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1180040#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1180037#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1180035#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1180032#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1179959#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1179964#$Ultimate##0 ~n := #in~n; 1180023#L25 assume !(~n <= 0); 1179984#L26 call #t~ret0 := fact(~n - 1);< 1180017#$Ultimate##0 ~n := #in~n; 1180967#L25 assume ~n <= 0;#res := 1; 1180957#factFINAL assume true; 1180276#factEXIT >#66#return; 1180272#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180271#factFINAL assume true; 1180140#factEXIT >#68#return; 1180133#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1179948#$Ultimate##0 ~n := #in~n; 1180261#L25 assume ~n <= 0;#res := 1; 1180143#factFINAL assume true; 1180132#factEXIT >#70#return; 1180128#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1180131#$Ultimate##0 ~n := #in~n; 1180130#L25 assume !(~n <= 0); 1180004#L26 call #t~ret0 := fact(~n - 1);< 1180129#$Ultimate##0 ~n := #in~n; 1180967#L25 assume ~n <= 0;#res := 1; 1180957#factFINAL assume true; 1180276#factEXIT >#66#return; 1180283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180448#factFINAL assume true; 1180446#factEXIT >#72#return; 1180445#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1180444#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1180443#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1180441#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1180440#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1180436#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1180439#$Ultimate##0 ~n := #in~n; 1180447#L25 assume !(~n <= 0); 1179977#L26 call #t~ret0 := fact(~n - 1);< 1180129#$Ultimate##0 ~n := #in~n; 1180967#L25 assume ~n <= 0;#res := 1; 1180957#factFINAL assume true; 1180276#factEXIT >#66#return; 1180282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180442#factFINAL assume true; 1180431#factEXIT >#68#return; 1180415#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1180430#$Ultimate##0 ~n := #in~n; 1180475#L25 assume !(~n <= 0); 1180278#L26 call #t~ret0 := fact(~n - 1);< 1180472#$Ultimate##0 ~n := #in~n; 1180967#L25 assume ~n <= 0;#res := 1; 1180957#factFINAL assume true; 1180276#factEXIT >#66#return; 1180285#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180450#factFINAL assume true; 1180410#factEXIT >#70#return; 1180396#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1180408#$Ultimate##0 ~n := #in~n; 1180474#L25 assume ~n <= 0;#res := 1; 1180473#factFINAL assume true; 1180394#factEXIT >#72#return; 1180393#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1180391#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1180390#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1180388#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1180387#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1180385#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1180386#$Ultimate##0 ~n := #in~n; 1180409#L25 assume !(~n <= 0); 1179988#L26 call #t~ret0 := fact(~n - 1);< 1180392#$Ultimate##0 ~n := #in~n; 1180077#L25 assume !(~n <= 0); 1179975#L26 call #t~ret0 := fact(~n - 1);< 1180028#$Ultimate##0 ~n := #in~n; 1180033#L25 assume ~n <= 0;#res := 1; 1180030#factFINAL assume true; 1180026#factEXIT >#66#return; 1180025#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180019#factFINAL assume true; 1179973#factEXIT >#66#return; 1180014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180389#factFINAL assume true; 1180384#factEXIT >#74#return; 1180303#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1180364#$Ultimate##0 ~n := #in~n; 1180719#L25 assume !(~n <= 0); 1179981#L26 call #t~ret0 := fact(~n - 1);< 1180017#$Ultimate##0 ~n := #in~n; 1180967#L25 assume ~n <= 0;#res := 1; 1180957#factFINAL assume true; 1180276#factEXIT >#66#return; 1180284#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180686#factFINAL assume true; 1180358#factEXIT >#76#return; 1180357#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1180383#$Ultimate##0 ~n := #in~n; 1180731#L25 assume !(~n <= 0); 1180277#L26 call #t~ret0 := fact(~n - 1);< 1180472#$Ultimate##0 ~n := #in~n; 1180967#L25 assume ~n <= 0;#res := 1; 1180957#factFINAL assume true; 1180276#factEXIT >#66#return; 1180284#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180686#factFINAL assume true; 1180358#factEXIT >#78#return; 1180360#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1180375#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1180374#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1180370#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1180369#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1180189#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1180291#$Ultimate##0 ~n := #in~n; 1180912#L25 assume !(~n <= 0); 1180524#L26 call #t~ret0 := fact(~n - 1);< 1180910#$Ultimate##0 ~n := #in~n; 1180778#L25 assume !(~n <= 0); 1180510#L26 call #t~ret0 := fact(~n - 1);< 1180740#$Ultimate##0 ~n := #in~n; 1180778#L25 assume !(~n <= 0); 1180510#L26 call #t~ret0 := fact(~n - 1);< 1180740#$Ultimate##0 ~n := #in~n; 1180756#L25 assume ~n <= 0;#res := 1; 1180753#factFINAL assume true; 1180738#factEXIT >#66#return; 1180737#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180735#factFINAL assume true; 1180549#factEXIT >#66#return; 1180545#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180537#factFINAL assume true; 1180508#factEXIT >#66#return; 1180506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180500#factFINAL assume true; 1180498#factEXIT >#74#return; 1180229#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1180289#$Ultimate##0 ~n := #in~n; 1180844#L25 assume !(~n <= 0); 1180526#L26 call #t~ret0 := fact(~n - 1);< 1180987#$Ultimate##0 ~n := #in~n; 1180744#L25 assume ~n <= 0;#res := 1; 1180992#factFINAL assume true; 1180983#factEXIT >#66#return; 1180982#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180965#factFINAL assume true; 1180287#factEXIT >#76#return; 1180203#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1180240#$Ultimate##0 ~n := #in~n; 1181416#L25 assume !(~n <= 0); 1180511#L26 call #t~ret0 := fact(~n - 1);< 1180660#$Ultimate##0 ~n := #in~n; 1180762#L25 assume !(~n <= 0); 1180516#L26 call #t~ret0 := fact(~n - 1);< 1180759#$Ultimate##0 ~n := #in~n; 1180756#L25 assume ~n <= 0;#res := 1; 1180753#factFINAL assume true; 1180738#factEXIT >#66#return; 1180737#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180735#factFINAL assume true; 1180549#factEXIT >#66#return; 1180552#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180273#factFINAL assume true; 1180201#factEXIT >#78#return; 1180172#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1180170#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1180167#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1180159#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1180158#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1180154#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1180152#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1180149#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1179956#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1179964#$Ultimate##0 ~n := #in~n; 1180023#L25 assume !(~n <= 0); 1179984#L26 call #t~ret0 := fact(~n - 1);< 1180017#$Ultimate##0 ~n := #in~n; 1180042#L25 assume !(~n <= 0); 1179987#L26 call #t~ret0 := fact(~n - 1);< 1180036#$Ultimate##0 ~n := #in~n; 1180033#L25 assume ~n <= 0;#res := 1; 1180030#factFINAL assume true; 1180026#factEXIT >#66#return; 1180025#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180019#factFINAL assume true; 1179973#factEXIT >#66#return; 1179971#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1179967#factFINAL assume true; 1179954#factEXIT >#68#return; 1179962#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1179945#$Ultimate##0 ~n := #in~n; 1182336#L25 assume ~n <= 0;#res := 1; 1182335#factFINAL assume true; 1182334#factEXIT >#70#return; 1182065#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1182332#$Ultimate##0 ~n := #in~n; 1182064#L25 assume !(~n <= 0); 1181275#L26 call #t~ret0 := fact(~n - 1);< 1181305#$Ultimate##0 ~n := #in~n; 1181303#L25 assume !(~n <= 0); 1181297#L26 call #t~ret0 := fact(~n - 1);< 1181298#$Ultimate##0 ~n := #in~n; 1181302#L25 assume ~n <= 0;#res := 1; 1181301#factFINAL assume true; 1181296#factEXIT >#66#return; 1181295#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1181288#factFINAL assume true; 1181273#factEXIT >#66#return; 1181285#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1182333#factFINAL assume true; 1182327#factEXIT >#72#return; 1182328#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1182534#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1182533#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1182532#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1182531#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1182258#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1174997#$Ultimate##0 ~n := #in~n; 1182269#L25 assume !(~n <= 0); 1181276#L26 call #t~ret0 := fact(~n - 1);< 1181305#$Ultimate##0 ~n := #in~n; 1181303#L25 assume !(~n <= 0); 1181297#L26 call #t~ret0 := fact(~n - 1);< 1181298#$Ultimate##0 ~n := #in~n; 1181302#L25 assume ~n <= 0;#res := 1; 1181301#factFINAL assume true; 1181296#factEXIT >#66#return; 1181295#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1181288#factFINAL assume true; 1181273#factEXIT >#66#return; 1181286#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1182268#factFINAL assume true; 1182250#factEXIT >#68#return; 1182266#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1182293#$Ultimate##0 ~n := #in~n; 1182304#L25 assume !(~n <= 0); 1182299#L26 call #t~ret0 := fact(~n - 1);< 1175008#$Ultimate##0 ~n := #in~n; 1182305#L25 assume ~n <= 0;#res := 1; 1182303#factFINAL assume true; 1182296#factEXIT >#66#return; 1182295#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1182294#factFINAL assume true; 1182281#factEXIT >#70#return; 1182284#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1182293#$Ultimate##0 ~n := #in~n; 1182304#L25 assume !(~n <= 0); 1182299#L26 call #t~ret0 := fact(~n - 1);< 1175008#$Ultimate##0 ~n := #in~n; 1182305#L25 assume ~n <= 0;#res := 1; 1182303#factFINAL assume true; 1182296#factEXIT >#66#return; 1182295#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1182294#factFINAL assume true; 1182281#factEXIT >#72#return; 1182290#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1182524#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1182523#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1182511#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1182508#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1182254#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1174997#$Ultimate##0 ~n := #in~n; 1182269#L25 assume !(~n <= 0); 1181276#L26 call #t~ret0 := fact(~n - 1);< 1181305#$Ultimate##0 ~n := #in~n; 1181303#L25 assume !(~n <= 0); 1181297#L26 call #t~ret0 := fact(~n - 1);< 1181298#$Ultimate##0 ~n := #in~n; 1181302#L25 assume ~n <= 0;#res := 1; 1181301#factFINAL assume true; 1181296#factEXIT >#66#return; 1181295#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1181288#factFINAL assume true; 1181273#factEXIT >#66#return; 1181286#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1182268#factFINAL assume true; 1182250#factEXIT >#68#return; 1181464#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1182241#$Ultimate##0 ~n := #in~n; 1181458#L25 assume !(~n <= 0); 1181231#L26 call #t~ret0 := fact(~n - 1);< 1181291#$Ultimate##0 ~n := #in~n; 1181304#L25 assume !(~n <= 0); 1181280#L26 call #t~ret0 := fact(~n - 1);< 1181299#$Ultimate##0 ~n := #in~n; 1181302#L25 assume ~n <= 0;#res := 1; 1181301#factFINAL assume true; 1181296#factEXIT >#66#return; 1181295#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1181288#factFINAL assume true; 1181273#factEXIT >#66#return; 1181283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1182242#factFINAL assume true; 1182240#factEXIT >#70#return; 1182230#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1182237#$Ultimate##0 ~n := #in~n; 1182239#L25 assume ~n <= 0;#res := 1; 1182238#factFINAL assume true; 1182225#factEXIT >#72#return; 1182235#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1182498#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1182497#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1182412#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1182411#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1182188#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1182189#$Ultimate##0 ~n := #in~n; 1182219#L25 assume !(~n <= 0); 1182120#L26 call #t~ret0 := fact(~n - 1);< 1182146#$Ultimate##0 ~n := #in~n; 1182243#L25 assume !(~n <= 0); 1182129#L26 call #t~ret0 := fact(~n - 1);< 1182151#$Ultimate##0 ~n := #in~n; 1182243#L25 assume !(~n <= 0); 1182129#L26 call #t~ret0 := fact(~n - 1);< 1182151#$Ultimate##0 ~n := #in~n; 1182154#L25 assume ~n <= 0;#res := 1; 1182152#factFINAL assume true; 1182148#factEXIT >#66#return; 1182147#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1182144#factFINAL assume true; 1182119#factEXIT >#66#return; 1182142#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1182213#factFINAL assume true; 1182209#factEXIT >#66#return; 1182210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1182192#factFINAL assume true; 1182185#factEXIT >#74#return; 1182103#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1182113#$Ultimate##0 ~n := #in~n; 1182182#L25 assume !(~n <= 0); 1182130#L26 call #t~ret0 := fact(~n - 1);< 1182168#$Ultimate##0 ~n := #in~n; 1182164#L25 assume !(~n <= 0); 1182138#L26 call #t~ret0 := fact(~n - 1);< 1182157#$Ultimate##0 ~n := #in~n; 1182154#L25 assume ~n <= 0;#res := 1; 1182152#factFINAL assume true; 1182148#factEXIT >#66#return; 1182147#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1182144#factFINAL assume true; 1182119#factEXIT >#66#return; 1182141#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1182093#factFINAL assume true; 1182112#factEXIT >#76#return; 1182404#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1182567#$Ultimate##0 ~n := #in~n; 1182568#L25 assume !(~n <= 0); 1182159#L26 call #t~ret0 := fact(~n - 1);< 1182162#$Ultimate##0 ~n := #in~n; 1182156#L25 assume ~n <= 0;#res := 1; 1182165#factFINAL assume true; 1182158#factEXIT >#66#return; 1182161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1182566#factFINAL assume true; 1182565#factEXIT >#78#return; 1182087#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1182085#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1182083#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1182081#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1175018#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1175011#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1175012#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1181389#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1181221#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1181223#$Ultimate##0 ~n := #in~n; 1181271#L25 assume !(~n <= 0); 1181228#L26 call #t~ret0 := fact(~n - 1);< 1181262#$Ultimate##0 ~n := #in~n; 1181308#L25 assume !(~n <= 0); 1181274#L26 call #t~ret0 := fact(~n - 1);< 1181299#$Ultimate##0 ~n := #in~n; 1181303#L25 assume !(~n <= 0); 1181297#L26 call #t~ret0 := fact(~n - 1);< 1181298#$Ultimate##0 ~n := #in~n; 1181302#L25 assume ~n <= 0;#res := 1; 1181301#factFINAL assume true; 1181296#factEXIT >#66#return; 1181295#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1181288#factFINAL assume true; 1181273#factEXIT >#66#return; 1181272#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1181263#factFINAL assume true; 1181226#factEXIT >#66#return; 1181225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1181224#factFINAL assume true; 1181220#factEXIT >#68#return; 1181201#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1181203#$Ultimate##0 ~n := #in~n; 1181207#L25 assume ~n <= 0;#res := 1; 1181206#factFINAL assume true; 1181200#factEXIT >#70#return; 1180651#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1180654#$Ultimate##0 ~n := #in~n; 1180656#L25 assume !(~n <= 0); 1179304#L26 call #t~ret0 := fact(~n - 1);< 1179407#$Ultimate##0 ~n := #in~n; 1181595#L25 assume !(~n <= 0); 1179287#L26 call #t~ret0 := fact(~n - 1);< 1179374#$Ultimate##0 ~n := #in~n; 1181788#L25 assume !(~n <= 0); 1179291#L26 call #t~ret0 := fact(~n - 1);< 1179486#$Ultimate##0 ~n := #in~n; 1179507#L25 assume ~n <= 0;#res := 1; 1179505#factFINAL assume true; 1179484#factEXIT >#66#return; 1179469#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1179450#factFINAL assume true; 1179427#factEXIT >#66#return; 1179421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1179411#factFINAL assume true; 1179382#factEXIT >#66#return; 1179406#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180655#factFINAL assume true; 1180650#factEXIT >#72#return; 1180649#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1180648#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1180647#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1180646#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1180645#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1179568#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1179637#$Ultimate##0 ~n := #in~n; 1179636#L25 assume !(~n <= 0); 1179389#L26 call #t~ret0 := fact(~n - 1);< 1179566#$Ultimate##0 ~n := #in~n; 1179561#L25 assume !(~n <= 0); 1179428#L26 call #t~ret0 := fact(~n - 1);< 1179489#$Ultimate##0 ~n := #in~n; 1179517#L25 assume !(~n <= 0); 1179485#L26 call #t~ret0 := fact(~n - 1);< 1179487#$Ultimate##0 ~n := #in~n; 1179507#L25 assume ~n <= 0;#res := 1; 1179505#factFINAL assume true; 1179484#factEXIT >#66#return; 1179469#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1179450#factFINAL assume true; 1179427#factEXIT >#66#return; 1179421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1179411#factFINAL assume true; 1179382#factEXIT >#66#return; 1179399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180614#factFINAL assume true; 1180606#factEXIT >#68#return; 1180609#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1180625#$Ultimate##0 ~n := #in~n; 1180771#L25 assume !(~n <= 0); 1179460#L26 call #t~ret0 := fact(~n - 1);< 1179467#$Ultimate##0 ~n := #in~n; 1179492#L25 assume ~n <= 0;#res := 1; 1179471#factFINAL assume true; 1179455#factEXIT >#66#return; 1179465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180761#factFINAL assume true; 1180621#factEXIT >#70#return; 1179451#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1180632#$Ultimate##0 ~n := #in~n; 1181597#L25 assume !(~n <= 0); 1179432#L26 call #t~ret0 := fact(~n - 1);< 1179445#$Ultimate##0 ~n := #in~n; 1179517#L25 assume !(~n <= 0); 1179485#L26 call #t~ret0 := fact(~n - 1);< 1179487#$Ultimate##0 ~n := #in~n; 1179507#L25 assume ~n <= 0;#res := 1; 1179505#factFINAL assume true; 1179484#factEXIT >#66#return; 1179469#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1179450#factFINAL assume true; 1179427#factEXIT >#66#return; 1179441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180631#factFINAL assume true; 1180627#factEXIT >#72#return; 1180628#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1180639#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1180637#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1180635#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1180633#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1179569#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1179637#$Ultimate##0 ~n := #in~n; 1179636#L25 assume !(~n <= 0); 1179389#L26 call #t~ret0 := fact(~n - 1);< 1179566#$Ultimate##0 ~n := #in~n; 1179561#L25 assume !(~n <= 0); 1179428#L26 call #t~ret0 := fact(~n - 1);< 1179489#$Ultimate##0 ~n := #in~n; 1179517#L25 assume !(~n <= 0); 1179485#L26 call #t~ret0 := fact(~n - 1);< 1179487#$Ultimate##0 ~n := #in~n; 1179507#L25 assume ~n <= 0;#res := 1; 1179505#factFINAL assume true; 1179484#factEXIT >#66#return; 1179469#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1179450#factFINAL assume true; 1179427#factEXIT >#66#return; 1179421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1179411#factFINAL assume true; 1179382#factEXIT >#66#return; 1179399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180614#factFINAL assume true; 1180606#factEXIT >#68#return; 1179528#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1180630#$Ultimate##0 ~n := #in~n; 1181753#L25 assume !(~n <= 0); 1179392#L26 call #t~ret0 := fact(~n - 1);< 1179446#$Ultimate##0 ~n := #in~n; 1179526#L25 assume !(~n <= 0); 1179430#L26 call #t~ret0 := fact(~n - 1);< 1179489#$Ultimate##0 ~n := #in~n; 1179507#L25 assume ~n <= 0;#res := 1; 1179505#factFINAL assume true; 1179484#factEXIT >#66#return; 1179469#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1179450#factFINAL assume true; 1179427#factEXIT >#66#return; 1179441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180631#factFINAL assume true; 1180627#factEXIT >#70#return; 1180622#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1180625#$Ultimate##0 ~n := #in~n; 1180771#L25 assume !(~n <= 0); 1179460#L26 call #t~ret0 := fact(~n - 1);< 1179467#$Ultimate##0 ~n := #in~n; 1179492#L25 assume ~n <= 0;#res := 1; 1179471#factFINAL assume true; 1179455#factEXIT >#66#return; 1179465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180761#factFINAL assume true; 1180621#factEXIT >#72#return; 1180624#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1180626#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1180620#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1180618#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1180616#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1180607#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1180611#$Ultimate##0 ~n := #in~n; 1180669#L25 assume !(~n <= 0); 1179383#L26 call #t~ret0 := fact(~n - 1);< 1179408#$Ultimate##0 ~n := #in~n; 1181790#L25 assume !(~n <= 0); 1179429#L26 call #t~ret0 := fact(~n - 1);< 1179445#$Ultimate##0 ~n := #in~n; 1179517#L25 assume !(~n <= 0); 1179485#L26 call #t~ret0 := fact(~n - 1);< 1179487#$Ultimate##0 ~n := #in~n; 1179507#L25 assume ~n <= 0;#res := 1; 1179505#factFINAL assume true; 1179484#factEXIT >#66#return; 1179469#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1179450#factFINAL assume true; 1179427#factEXIT >#66#return; 1179421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1179411#factFINAL assume true; 1179382#factEXIT >#66#return; 1179399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180614#factFINAL assume true; 1180606#factEXIT >#68#return; 1179412#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1180605#$Ultimate##0 ~n := #in~n; 1181590#L25 assume !(~n <= 0); 1179387#L26 call #t~ret0 := fact(~n - 1);< 1179408#$Ultimate##0 ~n := #in~n; 1181790#L25 assume !(~n <= 0); 1179429#L26 call #t~ret0 := fact(~n - 1);< 1179445#$Ultimate##0 ~n := #in~n; 1179517#L25 assume !(~n <= 0); 1179485#L26 call #t~ret0 := fact(~n - 1);< 1179487#$Ultimate##0 ~n := #in~n; 1179507#L25 assume ~n <= 0;#res := 1; 1179505#factFINAL assume true; 1179484#factEXIT >#66#return; 1179469#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1179450#factFINAL assume true; 1179427#factEXIT >#66#return; 1179421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1179411#factFINAL assume true; 1179382#factEXIT >#66#return; 1179404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1180758#factFINAL assume true; 1180604#factEXIT >#70#return; 1180601#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1180603#$Ultimate##0 ~n := #in~n; 1180673#L25 assume ~n <= 0;#res := 1; 1180672#factFINAL assume true; 1180599#factEXIT >#72#return; 1180602#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1181660#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1181656#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1181655#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1178806#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1178803#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1178804#$Ultimate##0 ~n := #in~n; 1178909#L25 assume !(~n <= 0); 1178703#L26 call #t~ret0 := fact(~n - 1);< 1178732#$Ultimate##0 ~n := #in~n; 1178997#L25 assume !(~n <= 0); 1178707#L26 call #t~ret0 := fact(~n - 1);< 1178784#$Ultimate##0 ~n := #in~n; 1178997#L25 assume !(~n <= 0); 1178707#L26 call #t~ret0 := fact(~n - 1);< 1178784#$Ultimate##0 ~n := #in~n; 1178997#L25 assume !(~n <= 0); 1178707#L26 call #t~ret0 := fact(~n - 1);< 1178784#$Ultimate##0 ~n := #in~n; 1178792#L25 assume ~n <= 0;#res := 1; 1178787#factFINAL assume true; 1178781#factEXIT >#66#return; 1178780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178772#factFINAL assume true; 1178751#factEXIT >#66#return; 1178749#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178743#factFINAL assume true; 1178701#factEXIT >#66#return; 1178728#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1179014#factFINAL assume true; 1178902#factEXIT >#66#return; 1178901#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178900#factFINAL assume true; 1178802#factEXIT >#74#return; 1178796#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1178801#$Ultimate##0 ~n := #in~n; 1178798#L25 assume !(~n <= 0); 1178704#L26 call #t~ret0 := fact(~n - 1);< 1178786#$Ultimate##0 ~n := #in~n; 1178785#L25 assume !(~n <= 0); 1178753#L26 call #t~ret0 := fact(~n - 1);< 1178758#$Ultimate##0 ~n := #in~n; 1178996#L25 assume !(~n <= 0); 1178782#L26 call #t~ret0 := fact(~n - 1);< 1178783#$Ultimate##0 ~n := #in~n; 1178792#L25 assume ~n <= 0;#res := 1; 1178787#factFINAL assume true; 1178781#factEXIT >#66#return; 1178780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178772#factFINAL assume true; 1178751#factEXIT >#66#return; 1178749#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178743#factFINAL assume true; 1178701#factEXIT >#66#return; 1178730#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178994#factFINAL assume true; 1178917#factEXIT >#76#return; 1178623#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1177331#$Ultimate##0 ~n := #in~n; 1178770#L25 assume !(~n <= 0); 1178763#L26 call #t~ret0 := fact(~n - 1);< 1178765#$Ultimate##0 ~n := #in~n; 1178771#L25 assume ~n <= 0;#res := 1; 1178769#factFINAL assume true; 1178761#factEXIT >#66#return; 1178764#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1179110#factFINAL assume true; 1178622#factEXIT >#78#return; 1178615#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1178614#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1178613#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1178612#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1177704#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1177701#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1177699#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1177698#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1175980#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1176005#$Ultimate##0 ~n := #in~n; 1175999#L25 assume !(~n <= 0); 1175582#L26 call #t~ret0 := fact(~n - 1);< 1175942#$Ultimate##0 ~n := #in~n; 1179136#L25 assume !(~n <= 0); 1175568#L26 call #t~ret0 := fact(~n - 1);< 1175583#$Ultimate##0 ~n := #in~n; 1179139#L25 assume !(~n <= 0); 1175616#L26 call #t~ret0 := fact(~n - 1);< 1175623#$Ultimate##0 ~n := #in~n; 1179151#L25 assume !(~n <= 0); 1175631#L26 call #t~ret0 := fact(~n - 1);< 1175640#$Ultimate##0 ~n := #in~n; 1175682#L25 assume !(~n <= 0); 1175663#L26 call #t~ret0 := fact(~n - 1);< 1175675#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176646#factFINAL assume true; 1176643#factEXIT >#68#return; 1176290#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1176293#$Ultimate##0 ~n := #in~n; 1176301#L25 assume ~n <= 0;#res := 1; 1176297#factFINAL assume true; 1176280#factEXIT >#70#return; 1175982#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1176004#$Ultimate##0 ~n := #in~n; 1175986#L25 assume !(~n <= 0); 1175521#L26 call #t~ret0 := fact(~n - 1);< 1175697#$Ultimate##0 ~n := #in~n; 1175694#L25 assume !(~n <= 0); 1175522#L26 call #t~ret0 := fact(~n - 1);< 1175686#$Ultimate##0 ~n := #in~n; 1175683#L25 assume !(~n <= 0); 1175526#L26 call #t~ret0 := fact(~n - 1);< 1175674#$Ultimate##0 ~n := #in~n; 1175672#L25 assume !(~n <= 0); 1175527#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175941#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176368#factFINAL assume true; 1176365#factEXIT >#72#return; 1176269#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1177268#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1177267#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1177246#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1177244#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1175928#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1175929#$Ultimate##0 ~n := #in~n; 1175950#L25 assume !(~n <= 0); 1175580#L26 call #t~ret0 := fact(~n - 1);< 1175942#$Ultimate##0 ~n := #in~n; 1179136#L25 assume !(~n <= 0); 1175568#L26 call #t~ret0 := fact(~n - 1);< 1175583#$Ultimate##0 ~n := #in~n; 1179139#L25 assume !(~n <= 0); 1175616#L26 call #t~ret0 := fact(~n - 1);< 1175623#$Ultimate##0 ~n := #in~n; 1179151#L25 assume !(~n <= 0); 1175631#L26 call #t~ret0 := fact(~n - 1);< 1175640#$Ultimate##0 ~n := #in~n; 1175682#L25 assume !(~n <= 0); 1175663#L26 call #t~ret0 := fact(~n - 1);< 1175675#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175934#factFINAL assume true; 1175916#factEXIT >#68#return; 1175838#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175861#$Ultimate##0 ~n := #in~n; 1175887#L25 assume !(~n <= 0); 1175867#L26 call #t~ret0 := fact(~n - 1);< 1175876#$Ultimate##0 ~n := #in~n; 1175877#L25 assume ~n <= 0;#res := 1; 1175871#factFINAL assume true; 1175866#factEXIT >#66#return; 1175865#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175862#factFINAL assume true; 1175836#factEXIT >#70#return; 1175829#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175833#$Ultimate##0 ~n := #in~n; 1175831#L25 assume !(~n <= 0); 1175566#L26 call #t~ret0 := fact(~n - 1);< 1175828#$Ultimate##0 ~n := #in~n; 1175827#L25 assume !(~n <= 0); 1175619#L26 call #t~ret0 := fact(~n - 1);< 1175826#$Ultimate##0 ~n := #in~n; 1175825#L25 assume !(~n <= 0); 1175637#L26 call #t~ret0 := fact(~n - 1);< 1175664#$Ultimate##0 ~n := #in~n; 1175682#L25 assume !(~n <= 0); 1175663#L26 call #t~ret0 := fact(~n - 1);< 1175675#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175577#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175997#factFINAL assume true; 1175951#factEXIT >#72#return; 1175952#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1181807#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1181806#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1181805#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1181804#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1175925#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1175929#$Ultimate##0 ~n := #in~n; 1175950#L25 assume !(~n <= 0); 1175580#L26 call #t~ret0 := fact(~n - 1);< 1175942#$Ultimate##0 ~n := #in~n; 1179136#L25 assume !(~n <= 0); 1175568#L26 call #t~ret0 := fact(~n - 1);< 1175583#$Ultimate##0 ~n := #in~n; 1179139#L25 assume !(~n <= 0); 1175616#L26 call #t~ret0 := fact(~n - 1);< 1175623#$Ultimate##0 ~n := #in~n; 1179151#L25 assume !(~n <= 0); 1175631#L26 call #t~ret0 := fact(~n - 1);< 1175640#$Ultimate##0 ~n := #in~n; 1175682#L25 assume !(~n <= 0); 1175663#L26 call #t~ret0 := fact(~n - 1);< 1175675#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175934#factFINAL assume true; 1175916#factEXIT >#68#return; 1175796#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175821#$Ultimate##0 ~n := #in~n; 1176007#L25 assume !(~n <= 0); 1175525#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175822#factFINAL assume true; 1175780#factEXIT >#70#return; 1175628#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175660#$Ultimate##0 ~n := #in~n; 1175656#L25 assume !(~n <= 0); 1175613#L26 call #t~ret0 := fact(~n - 1);< 1175623#$Ultimate##0 ~n := #in~n; 1179151#L25 assume !(~n <= 0); 1175631#L26 call #t~ret0 := fact(~n - 1);< 1175640#$Ultimate##0 ~n := #in~n; 1175682#L25 assume !(~n <= 0); 1175663#L26 call #t~ret0 := fact(~n - 1);< 1175675#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175621#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176033#factFINAL assume true; 1176010#factEXIT >#72#return; 1176014#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1179008#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1179006#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1179004#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1179002#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1175922#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1175929#$Ultimate##0 ~n := #in~n; 1175950#L25 assume !(~n <= 0); 1175580#L26 call #t~ret0 := fact(~n - 1);< 1175942#$Ultimate##0 ~n := #in~n; 1179136#L25 assume !(~n <= 0); 1175568#L26 call #t~ret0 := fact(~n - 1);< 1175583#$Ultimate##0 ~n := #in~n; 1179139#L25 assume !(~n <= 0); 1175616#L26 call #t~ret0 := fact(~n - 1);< 1175623#$Ultimate##0 ~n := #in~n; 1179151#L25 assume !(~n <= 0); 1175631#L26 call #t~ret0 := fact(~n - 1);< 1175640#$Ultimate##0 ~n := #in~n; 1175682#L25 assume !(~n <= 0); 1175663#L26 call #t~ret0 := fact(~n - 1);< 1175675#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175934#factFINAL assume true; 1175916#factEXIT >#68#return; 1175676#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175912#$Ultimate##0 ~n := #in~n; 1179129#L25 assume !(~n <= 0); 1175516#L26 call #t~ret0 := fact(~n - 1);< 1175674#$Ultimate##0 ~n := #in~n; 1175672#L25 assume !(~n <= 0); 1175527#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175621#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176033#factFINAL assume true; 1176010#factEXIT >#70#return; 1175645#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175824#$Ultimate##0 ~n := #in~n; 1176040#L25 assume !(~n <= 0); 1175632#L26 call #t~ret0 := fact(~n - 1);< 1175646#$Ultimate##0 ~n := #in~n; 1175778#L25 assume !(~n <= 0); 1175633#L26 call #t~ret0 := fact(~n - 1);< 1175664#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175822#factFINAL assume true; 1175780#factEXIT >#72#return; 1175808#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1176924#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1176922#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1176920#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1176918#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1175917#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1175929#$Ultimate##0 ~n := #in~n; 1175950#L25 assume !(~n <= 0); 1175580#L26 call #t~ret0 := fact(~n - 1);< 1175942#$Ultimate##0 ~n := #in~n; 1179136#L25 assume !(~n <= 0); 1175568#L26 call #t~ret0 := fact(~n - 1);< 1175583#$Ultimate##0 ~n := #in~n; 1179139#L25 assume !(~n <= 0); 1175616#L26 call #t~ret0 := fact(~n - 1);< 1175623#$Ultimate##0 ~n := #in~n; 1179151#L25 assume !(~n <= 0); 1175631#L26 call #t~ret0 := fact(~n - 1);< 1175640#$Ultimate##0 ~n := #in~n; 1175682#L25 assume !(~n <= 0); 1175663#L26 call #t~ret0 := fact(~n - 1);< 1175675#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175934#factFINAL assume true; 1175916#factEXIT >#68#return; 1175679#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175912#$Ultimate##0 ~n := #in~n; 1179129#L25 assume !(~n <= 0); 1175516#L26 call #t~ret0 := fact(~n - 1);< 1175674#$Ultimate##0 ~n := #in~n; 1175672#L25 assume !(~n <= 0); 1175527#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175577#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175997#factFINAL assume true; 1175951#factEXIT >#70#return; 1175843#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175864#$Ultimate##0 ~n := #in~n; 1176041#L25 assume !(~n <= 0); 1175122#L26 call #t~ret0 := fact(~n - 1);< 1175870#$Ultimate##0 ~n := #in~n; 1175877#L25 assume ~n <= 0;#res := 1; 1175871#factFINAL assume true; 1175866#factEXIT >#66#return; 1175865#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175862#factFINAL assume true; 1175836#factEXIT >#72#return; 1175857#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1175949#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1175935#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1175931#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1175930#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1175923#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1175929#$Ultimate##0 ~n := #in~n; 1175950#L25 assume !(~n <= 0); 1175580#L26 call #t~ret0 := fact(~n - 1);< 1175942#$Ultimate##0 ~n := #in~n; 1179136#L25 assume !(~n <= 0); 1175568#L26 call #t~ret0 := fact(~n - 1);< 1175583#$Ultimate##0 ~n := #in~n; 1179139#L25 assume !(~n <= 0); 1175616#L26 call #t~ret0 := fact(~n - 1);< 1175623#$Ultimate##0 ~n := #in~n; 1179151#L25 assume !(~n <= 0); 1175631#L26 call #t~ret0 := fact(~n - 1);< 1175640#$Ultimate##0 ~n := #in~n; 1175682#L25 assume !(~n <= 0); 1175663#L26 call #t~ret0 := fact(~n - 1);< 1175675#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175934#factFINAL assume true; 1175916#factEXIT >#68#return; 1175677#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175912#$Ultimate##0 ~n := #in~n; 1179129#L25 assume !(~n <= 0); 1175516#L26 call #t~ret0 := fact(~n - 1);< 1175674#$Ultimate##0 ~n := #in~n; 1175672#L25 assume !(~n <= 0); 1175527#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175914#factFINAL assume true; 1175897#factEXIT >#70#return; 1175062#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175119#$Ultimate##0 ~n := #in~n; 1175121#L25 assume ~n <= 0;#res := 1; 1175120#factFINAL assume true; 1175053#factEXIT >#72#return; 1175013#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1175014#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1175027#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1175046#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1178965#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1178111#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1174936#$Ultimate##0 ~n := #in~n; 1178610#L25 assume !(~n <= 0); 1174943#L26 call #t~ret0 := fact(~n - 1);< 1178138#$Ultimate##0 ~n := #in~n; 1178611#L25 assume !(~n <= 0); 1174944#L26 call #t~ret0 := fact(~n - 1);< 1178142#$Ultimate##0 ~n := #in~n; 1178408#L25 assume !(~n <= 0); 1174945#L26 call #t~ret0 := fact(~n - 1);< 1178161#$Ultimate##0 ~n := #in~n; 1178411#L25 assume !(~n <= 0); 1174946#L26 call #t~ret0 := fact(~n - 1);< 1176890#$Ultimate##0 ~n := #in~n; 1176888#L25 assume !(~n <= 0); 1174949#L26 call #t~ret0 := fact(~n - 1);< 1176887#$Ultimate##0 ~n := #in~n; 1176888#L25 assume !(~n <= 0); 1174949#L26 call #t~ret0 := fact(~n - 1);< 1176887#$Ultimate##0 ~n := #in~n; 1176888#L25 assume !(~n <= 0); 1174949#L26 call #t~ret0 := fact(~n - 1);< 1176887#$Ultimate##0 ~n := #in~n; 1176888#L25 assume !(~n <= 0); 1174949#L26 call #t~ret0 := fact(~n - 1);< 1176887#$Ultimate##0 ~n := #in~n; 1177053#L25 assume ~n <= 0;#res := 1; 1177054#factFINAL assume true; 1177047#factEXIT >#66#return; 1177046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1177045#factFINAL assume true; 1177040#factEXIT >#66#return; 1177043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178193#factFINAL assume true; 1178186#factEXIT >#66#return; 1178184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178182#factFINAL assume true; 1178175#factEXIT >#66#return; 1178173#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178169#factFINAL assume true; 1178167#factEXIT >#66#return; 1178166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178165#factFINAL assume true; 1178159#factEXIT >#66#return; 1178157#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178153#factFINAL assume true; 1178145#factEXIT >#66#return; 1178144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178141#factFINAL assume true; 1178137#factEXIT >#66#return; 1178135#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178129#factFINAL assume true; 1178119#factEXIT >#74#return; 1177761#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1177765#$Ultimate##0 ~n := #in~n; 1178197#L25 assume !(~n <= 0); 1178146#L26 call #t~ret0 := fact(~n - 1);< 1178154#$Ultimate##0 ~n := #in~n; 1178164#L25 assume !(~n <= 0); 1175005#L26 call #t~ret0 := fact(~n - 1);< 1178162#$Ultimate##0 ~n := #in~n; 1178590#L25 assume !(~n <= 0); 1175004#L26 call #t~ret0 := fact(~n - 1);< 1175006#$Ultimate##0 ~n := #in~n; 1175031#L25 assume !(~n <= 0); 1175032#L26 call #t~ret0 := fact(~n - 1);< 1176886#$Ultimate##0 ~n := #in~n; 1177096#L25 assume !(~n <= 0); 1177042#L26 call #t~ret0 := fact(~n - 1);< 1177049#$Ultimate##0 ~n := #in~n; 1177055#L25 assume !(~n <= 0); 1177041#L26 call #t~ret0 := fact(~n - 1);< 1177052#$Ultimate##0 ~n := #in~n; 1177053#L25 assume ~n <= 0;#res := 1; 1177054#factFINAL assume true; 1177047#factEXIT >#66#return; 1177046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1177045#factFINAL assume true; 1177040#factEXIT >#66#return; 1177043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178193#factFINAL assume true; 1178186#factEXIT >#66#return; 1178184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178182#factFINAL assume true; 1178175#factEXIT >#66#return; 1178173#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178169#factFINAL assume true; 1178167#factEXIT >#66#return; 1178166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178165#factFINAL assume true; 1178159#factEXIT >#66#return; 1178160#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178894#factFINAL assume true; 1178809#factEXIT >#76#return; 1175049#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175050#$Ultimate##0 ~n := #in~n; 1178436#L25 assume !(~n <= 0); 1176881#L26 call #t~ret0 := fact(~n - 1);< 1176882#$Ultimate##0 ~n := #in~n; 1179154#L25 assume ~n <= 0;#res := 1; 1176885#factFINAL assume true; 1176880#factEXIT >#66#return; 1176879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176878#factFINAL assume true; 1176641#factEXIT >#78#return; 1176410#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1176409#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1176408#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1176407#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1176406#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1176405#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1176404#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1176403#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1174994#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1174995#$Ultimate##0 ~n := #in~n; 1176411#L25 assume !(~n <= 0); 1175518#L26 call #t~ret0 := fact(~n - 1);< 1176052#$Ultimate##0 ~n := #in~n; 1176049#L25 assume !(~n <= 0); 1175523#L26 call #t~ret0 := fact(~n - 1);< 1176044#$Ultimate##0 ~n := #in~n; 1176043#L25 assume !(~n <= 0); 1175524#L26 call #t~ret0 := fact(~n - 1);< 1176038#$Ultimate##0 ~n := #in~n; 1175835#L25 assume !(~n <= 0); 1175528#L26 call #t~ret0 := fact(~n - 1);< 1175584#$Ultimate##0 ~n := #in~n; 1175933#L25 assume !(~n <= 0); 1175529#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1175560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175537#factFINAL assume true; 1175499#factEXIT >#66#return; 1175533#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176308#factFINAL assume true; 1176305#factEXIT >#68#return; 1176291#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1176293#$Ultimate##0 ~n := #in~n; 1176301#L25 assume ~n <= 0;#res := 1; 1176297#factFINAL assume true; 1176280#factEXIT >#70#return; 1176265#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1176277#$Ultimate##0 ~n := #in~n; 1176347#L25 assume !(~n <= 0); 1175519#L26 call #t~ret0 := fact(~n - 1);< 1176052#$Ultimate##0 ~n := #in~n; 1176049#L25 assume !(~n <= 0); 1175523#L26 call #t~ret0 := fact(~n - 1);< 1176044#$Ultimate##0 ~n := #in~n; 1176043#L25 assume !(~n <= 0); 1175524#L26 call #t~ret0 := fact(~n - 1);< 1176038#$Ultimate##0 ~n := #in~n; 1175835#L25 assume !(~n <= 0); 1175528#L26 call #t~ret0 := fact(~n - 1);< 1175584#$Ultimate##0 ~n := #in~n; 1175933#L25 assume !(~n <= 0); 1175529#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1175535#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176279#factFINAL assume true; 1176264#factEXIT >#72#return; 1176270#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1176551#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1176550#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1176549#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1176547#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1176140#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1176171#$Ultimate##0 ~n := #in~n; 1176186#L25 assume !(~n <= 0); 1175500#L26 call #t~ret0 := fact(~n - 1);< 1175742#$Ultimate##0 ~n := #in~n; 1175738#L25 assume !(~n <= 0); 1175503#L26 call #t~ret0 := fact(~n - 1);< 1175716#$Ultimate##0 ~n := #in~n; 1175713#L25 assume !(~n <= 0); 1175506#L26 call #t~ret0 := fact(~n - 1);< 1175697#$Ultimate##0 ~n := #in~n; 1175694#L25 assume !(~n <= 0); 1175522#L26 call #t~ret0 := fact(~n - 1);< 1175686#$Ultimate##0 ~n := #in~n; 1175683#L25 assume !(~n <= 0); 1175526#L26 call #t~ret0 := fact(~n - 1);< 1175674#$Ultimate##0 ~n := #in~n; 1175672#L25 assume !(~n <= 0); 1175527#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1175560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175537#factFINAL assume true; 1175499#factEXIT >#66#return; 1175531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176213#factFINAL assume true; 1176212#factEXIT >#68#return; 1175056#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175863#$Ultimate##0 ~n := #in~n; 1175888#L25 assume !(~n <= 0); 1175867#L26 call #t~ret0 := fact(~n - 1);< 1175876#$Ultimate##0 ~n := #in~n; 1175877#L25 assume ~n <= 0;#res := 1; 1175871#factFINAL assume true; 1175866#factEXIT >#66#return; 1175865#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175862#factFINAL assume true; 1175836#factEXIT >#70#return; 1175397#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175497#$Ultimate##0 ~n := #in~n; 1179138#L25 assume !(~n <= 0); 1175510#L26 call #t~ret0 := fact(~n - 1);< 1175697#$Ultimate##0 ~n := #in~n; 1175694#L25 assume !(~n <= 0); 1175522#L26 call #t~ret0 := fact(~n - 1);< 1175686#$Ultimate##0 ~n := #in~n; 1175683#L25 assume !(~n <= 0); 1175526#L26 call #t~ret0 := fact(~n - 1);< 1175674#$Ultimate##0 ~n := #in~n; 1175672#L25 assume !(~n <= 0); 1175527#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1175560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175537#factFINAL assume true; 1175499#factEXIT >#66#return; 1175498#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175474#factFINAL assume true; 1175495#factEXIT >#72#return; 1175465#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1176370#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1176369#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1176367#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1176366#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1176103#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1176171#$Ultimate##0 ~n := #in~n; 1176186#L25 assume !(~n <= 0); 1175500#L26 call #t~ret0 := fact(~n - 1);< 1175742#$Ultimate##0 ~n := #in~n; 1175738#L25 assume !(~n <= 0); 1175503#L26 call #t~ret0 := fact(~n - 1);< 1175716#$Ultimate##0 ~n := #in~n; 1175713#L25 assume !(~n <= 0); 1175506#L26 call #t~ret0 := fact(~n - 1);< 1175697#$Ultimate##0 ~n := #in~n; 1175694#L25 assume !(~n <= 0); 1175522#L26 call #t~ret0 := fact(~n - 1);< 1175686#$Ultimate##0 ~n := #in~n; 1175683#L25 assume !(~n <= 0); 1175526#L26 call #t~ret0 := fact(~n - 1);< 1175674#$Ultimate##0 ~n := #in~n; 1175672#L25 assume !(~n <= 0); 1175527#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1175560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175537#factFINAL assume true; 1175499#factEXIT >#66#return; 1175531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176213#factFINAL assume true; 1176212#factEXIT >#68#return; 1175061#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175895#$Ultimate##0 ~n := #in~n; 1175894#L25 assume !(~n <= 0); 1175634#L26 call #t~ret0 := fact(~n - 1);< 1175881#$Ultimate##0 ~n := #in~n; 1175682#L25 assume !(~n <= 0); 1175663#L26 call #t~ret0 := fact(~n - 1);< 1175675#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175822#factFINAL assume true; 1175780#factEXIT >#70#return; 1175400#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175946#$Ultimate##0 ~n := #in~n; 1175944#L25 assume !(~n <= 0); 1175514#L26 call #t~ret0 := fact(~n - 1);< 1175697#$Ultimate##0 ~n := #in~n; 1175694#L25 assume !(~n <= 0); 1175522#L26 call #t~ret0 := fact(~n - 1);< 1175686#$Ultimate##0 ~n := #in~n; 1175683#L25 assume !(~n <= 0); 1175526#L26 call #t~ret0 := fact(~n - 1);< 1175674#$Ultimate##0 ~n := #in~n; 1175672#L25 assume !(~n <= 0); 1175527#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175914#factFINAL assume true; 1175897#factEXIT >#72#return; 1175466#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1176434#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1176432#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1176430#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1176428#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1176107#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1176171#$Ultimate##0 ~n := #in~n; 1176186#L25 assume !(~n <= 0); 1175500#L26 call #t~ret0 := fact(~n - 1);< 1175742#$Ultimate##0 ~n := #in~n; 1175738#L25 assume !(~n <= 0); 1175503#L26 call #t~ret0 := fact(~n - 1);< 1175716#$Ultimate##0 ~n := #in~n; 1175713#L25 assume !(~n <= 0); 1175506#L26 call #t~ret0 := fact(~n - 1);< 1175697#$Ultimate##0 ~n := #in~n; 1175694#L25 assume !(~n <= 0); 1175522#L26 call #t~ret0 := fact(~n - 1);< 1175686#$Ultimate##0 ~n := #in~n; 1175683#L25 assume !(~n <= 0); 1175526#L26 call #t~ret0 := fact(~n - 1);< 1175674#$Ultimate##0 ~n := #in~n; 1175672#L25 assume !(~n <= 0); 1175527#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1175560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175537#factFINAL assume true; 1175499#factEXIT >#66#return; 1175531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176213#factFINAL assume true; 1176212#factEXIT >#68#return; 1175054#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175692#$Ultimate##0 ~n := #in~n; 1175689#L25 assume !(~n <= 0); 1175502#L26 call #t~ret0 := fact(~n - 1);< 1175589#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175621#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176033#factFINAL assume true; 1176010#factEXIT >#70#return; 1175380#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175823#$Ultimate##0 ~n := #in~n; 1176009#L25 assume !(~n <= 0); 1175509#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175577#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175997#factFINAL assume true; 1175951#factEXIT >#72#return; 1175959#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1176444#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1176441#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1176439#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1176437#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1176162#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1176171#$Ultimate##0 ~n := #in~n; 1176186#L25 assume !(~n <= 0); 1175500#L26 call #t~ret0 := fact(~n - 1);< 1175742#$Ultimate##0 ~n := #in~n; 1175738#L25 assume !(~n <= 0); 1175503#L26 call #t~ret0 := fact(~n - 1);< 1175716#$Ultimate##0 ~n := #in~n; 1175713#L25 assume !(~n <= 0); 1175506#L26 call #t~ret0 := fact(~n - 1);< 1175697#$Ultimate##0 ~n := #in~n; 1175694#L25 assume !(~n <= 0); 1175522#L26 call #t~ret0 := fact(~n - 1);< 1175686#$Ultimate##0 ~n := #in~n; 1175683#L25 assume !(~n <= 0); 1175526#L26 call #t~ret0 := fact(~n - 1);< 1175674#$Ultimate##0 ~n := #in~n; 1175672#L25 assume !(~n <= 0); 1175527#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1175560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175537#factFINAL assume true; 1175499#factEXIT >#66#return; 1175531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176213#factFINAL assume true; 1176212#factEXIT >#68#return; 1175111#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175692#$Ultimate##0 ~n := #in~n; 1175689#L25 assume !(~n <= 0); 1175502#L26 call #t~ret0 := fact(~n - 1);< 1175589#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175577#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175997#factFINAL assume true; 1175951#factEXIT >#70#return; 1175435#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175823#$Ultimate##0 ~n := #in~n; 1176009#L25 assume !(~n <= 0); 1175509#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175621#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176033#factFINAL assume true; 1176010#factEXIT >#72#return; 1176027#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1176435#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1176433#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1176431#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1176429#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1176147#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1176171#$Ultimate##0 ~n := #in~n; 1176186#L25 assume !(~n <= 0); 1175500#L26 call #t~ret0 := fact(~n - 1);< 1175742#$Ultimate##0 ~n := #in~n; 1175738#L25 assume !(~n <= 0); 1175503#L26 call #t~ret0 := fact(~n - 1);< 1175716#$Ultimate##0 ~n := #in~n; 1175713#L25 assume !(~n <= 0); 1175506#L26 call #t~ret0 := fact(~n - 1);< 1175697#$Ultimate##0 ~n := #in~n; 1175694#L25 assume !(~n <= 0); 1175522#L26 call #t~ret0 := fact(~n - 1);< 1175686#$Ultimate##0 ~n := #in~n; 1175683#L25 assume !(~n <= 0); 1175526#L26 call #t~ret0 := fact(~n - 1);< 1175674#$Ultimate##0 ~n := #in~n; 1175672#L25 assume !(~n <= 0); 1175527#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1175560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175537#factFINAL assume true; 1175499#factEXIT >#66#return; 1175531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176213#factFINAL assume true; 1176212#factEXIT >#68#return; 1175077#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175692#$Ultimate##0 ~n := #in~n; 1175689#L25 assume !(~n <= 0); 1175502#L26 call #t~ret0 := fact(~n - 1);< 1175589#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175914#factFINAL assume true; 1175897#factEXIT >#70#return; 1175401#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175823#$Ultimate##0 ~n := #in~n; 1176009#L25 assume !(~n <= 0); 1175509#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175822#factFINAL assume true; 1175780#factEXIT >#72#return; 1175811#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1176426#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1176424#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1176422#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1176420#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1176143#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1176171#$Ultimate##0 ~n := #in~n; 1176186#L25 assume !(~n <= 0); 1175500#L26 call #t~ret0 := fact(~n - 1);< 1175742#$Ultimate##0 ~n := #in~n; 1175738#L25 assume !(~n <= 0); 1175503#L26 call #t~ret0 := fact(~n - 1);< 1175716#$Ultimate##0 ~n := #in~n; 1175713#L25 assume !(~n <= 0); 1175506#L26 call #t~ret0 := fact(~n - 1);< 1175697#$Ultimate##0 ~n := #in~n; 1175694#L25 assume !(~n <= 0); 1175522#L26 call #t~ret0 := fact(~n - 1);< 1175686#$Ultimate##0 ~n := #in~n; 1175683#L25 assume !(~n <= 0); 1175526#L26 call #t~ret0 := fact(~n - 1);< 1175674#$Ultimate##0 ~n := #in~n; 1175672#L25 assume !(~n <= 0); 1175527#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1175560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175537#factFINAL assume true; 1175499#factEXIT >#66#return; 1175531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176213#factFINAL assume true; 1176212#factEXIT >#68#return; 1175072#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175692#$Ultimate##0 ~n := #in~n; 1175689#L25 assume !(~n <= 0); 1175502#L26 call #t~ret0 := fact(~n - 1);< 1175589#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176195#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1179109#factFINAL assume true; 1175368#factEXIT >#70#return; 1175408#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175693#$Ultimate##0 ~n := #in~n; 1175690#L25 assume !(~n <= 0); 1175502#L26 call #t~ret0 := fact(~n - 1);< 1175589#$Ultimate##0 ~n := #in~n; 1175877#L25 assume ~n <= 0;#res := 1; 1175871#factFINAL assume true; 1175866#factEXIT >#66#return; 1175865#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175862#factFINAL assume true; 1175836#factEXIT >#72#return; 1175854#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1176416#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1176414#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1176413#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1176412#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1176151#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1176171#$Ultimate##0 ~n := #in~n; 1176186#L25 assume !(~n <= 0); 1175500#L26 call #t~ret0 := fact(~n - 1);< 1175742#$Ultimate##0 ~n := #in~n; 1175738#L25 assume !(~n <= 0); 1175503#L26 call #t~ret0 := fact(~n - 1);< 1175716#$Ultimate##0 ~n := #in~n; 1175713#L25 assume !(~n <= 0); 1175506#L26 call #t~ret0 := fact(~n - 1);< 1175697#$Ultimate##0 ~n := #in~n; 1175694#L25 assume !(~n <= 0); 1175522#L26 call #t~ret0 := fact(~n - 1);< 1175686#$Ultimate##0 ~n := #in~n; 1175683#L25 assume !(~n <= 0); 1175526#L26 call #t~ret0 := fact(~n - 1);< 1175674#$Ultimate##0 ~n := #in~n; 1175672#L25 assume !(~n <= 0); 1175527#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1175560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175537#factFINAL assume true; 1175499#factEXIT >#66#return; 1175531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176213#factFINAL assume true; 1176212#factEXIT >#68#return; 1176066#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1176080#$Ultimate##0 ~n := #in~n; 1176077#L25 assume !(~n <= 0); 1175501#L26 call #t~ret0 := fact(~n - 1);< 1176052#$Ultimate##0 ~n := #in~n; 1176049#L25 assume !(~n <= 0); 1175523#L26 call #t~ret0 := fact(~n - 1);< 1176044#$Ultimate##0 ~n := #in~n; 1176043#L25 assume !(~n <= 0); 1175524#L26 call #t~ret0 := fact(~n - 1);< 1176038#$Ultimate##0 ~n := #in~n; 1175835#L25 assume !(~n <= 0); 1175528#L26 call #t~ret0 := fact(~n - 1);< 1175584#$Ultimate##0 ~n := #in~n; 1175933#L25 assume !(~n <= 0); 1175529#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1176174#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176172#factFINAL assume true; 1176081#factEXIT >#70#return; 1175065#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175692#$Ultimate##0 ~n := #in~n; 1175689#L25 assume ~n <= 0;#res := 1; 1175120#factFINAL assume true; 1175053#factEXIT >#72#return; 1175112#L30-3 [2023-02-18 08:59:55,637 INFO L750 eck$LassoCheckResult]: Loop: 1175112#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1178127#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1178125#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1178123#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1178122#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1178113#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1178120#$Ultimate##0 ~n := #in~n; 1178223#L25 assume !(~n <= 0); 1174947#L26 call #t~ret0 := fact(~n - 1);< 1178222#$Ultimate##0 ~n := #in~n; 1178220#L25 assume !(~n <= 0); 1174950#L26 call #t~ret0 := fact(~n - 1);< 1178207#$Ultimate##0 ~n := #in~n; 1178206#L25 assume !(~n <= 0); 1174951#L26 call #t~ret0 := fact(~n - 1);< 1178205#$Ultimate##0 ~n := #in~n; 1178203#L25 assume !(~n <= 0); 1174952#L26 call #t~ret0 := fact(~n - 1);< 1178199#$Ultimate##0 ~n := #in~n; 1178198#L25 assume !(~n <= 0); 1174954#L26 call #t~ret0 := fact(~n - 1);< 1178176#$Ultimate##0 ~n := #in~n; 1178189#L25 assume !(~n <= 0); 1174940#L26 call #t~ret0 := fact(~n - 1);< 1176890#$Ultimate##0 ~n := #in~n; 1176888#L25 assume !(~n <= 0); 1174949#L26 call #t~ret0 := fact(~n - 1);< 1176887#$Ultimate##0 ~n := #in~n; 1176888#L25 assume !(~n <= 0); 1174949#L26 call #t~ret0 := fact(~n - 1);< 1176887#$Ultimate##0 ~n := #in~n; 1177053#L25 assume ~n <= 0;#res := 1; 1177054#factFINAL assume true; 1177047#factEXIT >#66#return; 1177046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1177045#factFINAL assume true; 1177040#factEXIT >#66#return; 1177043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178193#factFINAL assume true; 1178186#factEXIT >#66#return; 1178184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178182#factFINAL assume true; 1178175#factEXIT >#66#return; 1178173#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178169#factFINAL assume true; 1178167#factEXIT >#66#return; 1178166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178165#factFINAL assume true; 1178159#factEXIT >#66#return; 1178157#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178153#factFINAL assume true; 1178145#factEXIT >#66#return; 1178144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178141#factFINAL assume true; 1178137#factEXIT >#66#return; 1178135#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178129#factFINAL assume true; 1178119#factEXIT >#74#return; 1177760#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1177765#$Ultimate##0 ~n := #in~n; 1178197#L25 assume !(~n <= 0); 1178146#L26 call #t~ret0 := fact(~n - 1);< 1178154#$Ultimate##0 ~n := #in~n; 1178164#L25 assume !(~n <= 0); 1175005#L26 call #t~ret0 := fact(~n - 1);< 1178162#$Ultimate##0 ~n := #in~n; 1178590#L25 assume !(~n <= 0); 1175004#L26 call #t~ret0 := fact(~n - 1);< 1175006#$Ultimate##0 ~n := #in~n; 1175031#L25 assume !(~n <= 0); 1175032#L26 call #t~ret0 := fact(~n - 1);< 1176886#$Ultimate##0 ~n := #in~n; 1177096#L25 assume !(~n <= 0); 1177042#L26 call #t~ret0 := fact(~n - 1);< 1177049#$Ultimate##0 ~n := #in~n; 1177055#L25 assume !(~n <= 0); 1177041#L26 call #t~ret0 := fact(~n - 1);< 1177052#$Ultimate##0 ~n := #in~n; 1177053#L25 assume ~n <= 0;#res := 1; 1177054#factFINAL assume true; 1177047#factEXIT >#66#return; 1177046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1177045#factFINAL assume true; 1177040#factEXIT >#66#return; 1177043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178193#factFINAL assume true; 1178186#factEXIT >#66#return; 1178184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178182#factFINAL assume true; 1178175#factEXIT >#66#return; 1178173#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178169#factFINAL assume true; 1178167#factEXIT >#66#return; 1178166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178165#factFINAL assume true; 1178159#factEXIT >#66#return; 1178160#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1178894#factFINAL assume true; 1178809#factEXIT >#76#return; 1176642#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175050#$Ultimate##0 ~n := #in~n; 1178436#L25 assume !(~n <= 0); 1176881#L26 call #t~ret0 := fact(~n - 1);< 1176882#$Ultimate##0 ~n := #in~n; 1179154#L25 assume ~n <= 0;#res := 1; 1176885#factFINAL assume true; 1176880#factEXIT >#66#return; 1176879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176878#factFINAL assume true; 1176641#factEXIT >#78#return; 1176635#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1176633#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1176632#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1176631#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1176345#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1176344#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1176343#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1176342#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1176182#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1176200#$Ultimate##0 ~n := #in~n; 1176189#L25 assume !(~n <= 0); 1175504#L26 call #t~ret0 := fact(~n - 1);< 1175742#$Ultimate##0 ~n := #in~n; 1175738#L25 assume !(~n <= 0); 1175503#L26 call #t~ret0 := fact(~n - 1);< 1175716#$Ultimate##0 ~n := #in~n; 1175713#L25 assume !(~n <= 0); 1175506#L26 call #t~ret0 := fact(~n - 1);< 1175697#$Ultimate##0 ~n := #in~n; 1175694#L25 assume !(~n <= 0); 1175522#L26 call #t~ret0 := fact(~n - 1);< 1175686#$Ultimate##0 ~n := #in~n; 1175683#L25 assume !(~n <= 0); 1175526#L26 call #t~ret0 := fact(~n - 1);< 1175674#$Ultimate##0 ~n := #in~n; 1175672#L25 assume !(~n <= 0); 1175527#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1176177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176352#factFINAL assume true; 1176295#factEXIT >#68#return; 1176288#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1176293#$Ultimate##0 ~n := #in~n; 1176301#L25 assume ~n <= 0;#res := 1; 1176297#factFINAL assume true; 1176280#factEXIT >#70#return; 1176267#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1176277#$Ultimate##0 ~n := #in~n; 1176347#L25 assume !(~n <= 0); 1175519#L26 call #t~ret0 := fact(~n - 1);< 1176052#$Ultimate##0 ~n := #in~n; 1176049#L25 assume !(~n <= 0); 1175523#L26 call #t~ret0 := fact(~n - 1);< 1176044#$Ultimate##0 ~n := #in~n; 1176043#L25 assume !(~n <= 0); 1175524#L26 call #t~ret0 := fact(~n - 1);< 1176038#$Ultimate##0 ~n := #in~n; 1175835#L25 assume !(~n <= 0); 1175528#L26 call #t~ret0 := fact(~n - 1);< 1175584#$Ultimate##0 ~n := #in~n; 1175933#L25 assume !(~n <= 0); 1175529#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1175535#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176279#factFINAL assume true; 1176264#factEXIT >#72#return; 1176276#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1176363#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1176361#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1176359#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1176357#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1176139#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1176191#$Ultimate##0 ~n := #in~n; 1176185#L25 assume !(~n <= 0); 1175586#L26 call #t~ret0 := fact(~n - 1);< 1176179#$Ultimate##0 ~n := #in~n; 1179029#L25 assume !(~n <= 0); 1175585#L26 call #t~ret0 := fact(~n - 1);< 1175559#$Ultimate##0 ~n := #in~n; 1179153#L25 assume !(~n <= 0); 1175579#L26 call #t~ret0 := fact(~n - 1);< 1175942#$Ultimate##0 ~n := #in~n; 1179136#L25 assume !(~n <= 0); 1175568#L26 call #t~ret0 := fact(~n - 1);< 1175583#$Ultimate##0 ~n := #in~n; 1179139#L25 assume !(~n <= 0); 1175616#L26 call #t~ret0 := fact(~n - 1);< 1175623#$Ultimate##0 ~n := #in~n; 1179151#L25 assume !(~n <= 0); 1175631#L26 call #t~ret0 := fact(~n - 1);< 1175640#$Ultimate##0 ~n := #in~n; 1175682#L25 assume !(~n <= 0); 1175663#L26 call #t~ret0 := fact(~n - 1);< 1175675#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1176175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176173#factFINAL assume true; 1176082#factEXIT >#68#return; 1175837#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175861#$Ultimate##0 ~n := #in~n; 1175887#L25 assume !(~n <= 0); 1175867#L26 call #t~ret0 := fact(~n - 1);< 1175876#$Ultimate##0 ~n := #in~n; 1175877#L25 assume ~n <= 0;#res := 1; 1175871#factFINAL assume true; 1175866#factEXIT >#66#return; 1175865#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175862#factFINAL assume true; 1175836#factEXIT >#70#return; 1175385#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175988#$Ultimate##0 ~n := #in~n; 1175987#L25 assume !(~n <= 0); 1175884#L26 call #t~ret0 := fact(~n - 1);< 1175913#$Ultimate##0 ~n := #in~n; 1175886#L25 assume !(~n <= 0); 1175564#L26 call #t~ret0 := fact(~n - 1);< 1175883#$Ultimate##0 ~n := #in~n; 1175879#L25 assume !(~n <= 0); 1175565#L26 call #t~ret0 := fact(~n - 1);< 1175624#$Ultimate##0 ~n := #in~n; 1175751#L25 assume !(~n <= 0); 1175612#L26 call #t~ret0 := fact(~n - 1);< 1175641#$Ultimate##0 ~n := #in~n; 1175667#L25 assume !(~n <= 0); 1175635#L26 call #t~ret0 := fact(~n - 1);< 1175664#$Ultimate##0 ~n := #in~n; 1175682#L25 assume !(~n <= 0); 1175663#L26 call #t~ret0 := fact(~n - 1);< 1175675#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176195#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1179109#factFINAL assume true; 1175368#factEXIT >#72#return; 1175457#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1176419#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1176418#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1176417#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1176415#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1176099#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1176191#$Ultimate##0 ~n := #in~n; 1176185#L25 assume !(~n <= 0); 1175586#L26 call #t~ret0 := fact(~n - 1);< 1176179#$Ultimate##0 ~n := #in~n; 1179029#L25 assume !(~n <= 0); 1175585#L26 call #t~ret0 := fact(~n - 1);< 1175559#$Ultimate##0 ~n := #in~n; 1179153#L25 assume !(~n <= 0); 1175579#L26 call #t~ret0 := fact(~n - 1);< 1175942#$Ultimate##0 ~n := #in~n; 1179136#L25 assume !(~n <= 0); 1175568#L26 call #t~ret0 := fact(~n - 1);< 1175583#$Ultimate##0 ~n := #in~n; 1179139#L25 assume !(~n <= 0); 1175616#L26 call #t~ret0 := fact(~n - 1);< 1175623#$Ultimate##0 ~n := #in~n; 1179151#L25 assume !(~n <= 0); 1175631#L26 call #t~ret0 := fact(~n - 1);< 1175640#$Ultimate##0 ~n := #in~n; 1175682#L25 assume !(~n <= 0); 1175663#L26 call #t~ret0 := fact(~n - 1);< 1175675#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1176175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176173#factFINAL assume true; 1176082#factEXIT >#68#return; 1175781#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175896#$Ultimate##0 ~n := #in~n; 1175893#L25 assume !(~n <= 0); 1175634#L26 call #t~ret0 := fact(~n - 1);< 1175881#$Ultimate##0 ~n := #in~n; 1175682#L25 assume !(~n <= 0); 1175663#L26 call #t~ret0 := fact(~n - 1);< 1175675#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175822#factFINAL assume true; 1175780#factEXIT >#70#return; 1175802#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175995#$Ultimate##0 ~n := #in~n; 1175993#L25 assume !(~n <= 0); 1175581#L26 call #t~ret0 := fact(~n - 1);< 1175942#$Ultimate##0 ~n := #in~n; 1179136#L25 assume !(~n <= 0); 1175568#L26 call #t~ret0 := fact(~n - 1);< 1175583#$Ultimate##0 ~n := #in~n; 1179139#L25 assume !(~n <= 0); 1175616#L26 call #t~ret0 := fact(~n - 1);< 1175623#$Ultimate##0 ~n := #in~n; 1179151#L25 assume !(~n <= 0); 1175631#L26 call #t~ret0 := fact(~n - 1);< 1175640#$Ultimate##0 ~n := #in~n; 1175682#L25 assume !(~n <= 0); 1175663#L26 call #t~ret0 := fact(~n - 1);< 1175675#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175914#factFINAL assume true; 1175897#factEXIT >#72#return; 1175906#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1176671#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1176669#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1176668#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1176667#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1176109#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1176191#$Ultimate##0 ~n := #in~n; 1176185#L25 assume !(~n <= 0); 1175586#L26 call #t~ret0 := fact(~n - 1);< 1176179#$Ultimate##0 ~n := #in~n; 1179029#L25 assume !(~n <= 0); 1175585#L26 call #t~ret0 := fact(~n - 1);< 1175559#$Ultimate##0 ~n := #in~n; 1179153#L25 assume !(~n <= 0); 1175579#L26 call #t~ret0 := fact(~n - 1);< 1175942#$Ultimate##0 ~n := #in~n; 1179136#L25 assume !(~n <= 0); 1175568#L26 call #t~ret0 := fact(~n - 1);< 1175583#$Ultimate##0 ~n := #in~n; 1179139#L25 assume !(~n <= 0); 1175616#L26 call #t~ret0 := fact(~n - 1);< 1175623#$Ultimate##0 ~n := #in~n; 1179151#L25 assume !(~n <= 0); 1175631#L26 call #t~ret0 := fact(~n - 1);< 1175640#$Ultimate##0 ~n := #in~n; 1175682#L25 assume !(~n <= 0); 1175663#L26 call #t~ret0 := fact(~n - 1);< 1175675#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1176175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176173#factFINAL assume true; 1176082#factEXIT >#68#return; 1175409#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175693#$Ultimate##0 ~n := #in~n; 1175690#L25 assume !(~n <= 0); 1175502#L26 call #t~ret0 := fact(~n - 1);< 1175589#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175621#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176033#factFINAL assume true; 1176010#factEXIT >#70#return; 1175782#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175990#$Ultimate##0 ~n := #in~n; 1175989#L25 assume !(~n <= 0); 1175573#L26 call #t~ret0 := fact(~n - 1);< 1175661#$Ultimate##0 ~n := #in~n; 1175657#L25 assume !(~n <= 0); 1175574#L26 call #t~ret0 := fact(~n - 1);< 1175642#$Ultimate##0 ~n := #in~n; 1175669#L25 assume !(~n <= 0); 1175614#L26 call #t~ret0 := fact(~n - 1);< 1175666#$Ultimate##0 ~n := #in~n; 1175667#L25 assume !(~n <= 0); 1175635#L26 call #t~ret0 := fact(~n - 1);< 1175664#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175577#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175997#factFINAL assume true; 1175951#factEXIT >#72#return; 1175958#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1176427#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1176425#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1176423#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1176421#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1176091#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1176191#$Ultimate##0 ~n := #in~n; 1176185#L25 assume !(~n <= 0); 1175586#L26 call #t~ret0 := fact(~n - 1);< 1176179#$Ultimate##0 ~n := #in~n; 1179029#L25 assume !(~n <= 0); 1175585#L26 call #t~ret0 := fact(~n - 1);< 1175559#$Ultimate##0 ~n := #in~n; 1179153#L25 assume !(~n <= 0); 1175579#L26 call #t~ret0 := fact(~n - 1);< 1175942#$Ultimate##0 ~n := #in~n; 1179136#L25 assume !(~n <= 0); 1175568#L26 call #t~ret0 := fact(~n - 1);< 1175583#$Ultimate##0 ~n := #in~n; 1179139#L25 assume !(~n <= 0); 1175616#L26 call #t~ret0 := fact(~n - 1);< 1175623#$Ultimate##0 ~n := #in~n; 1179151#L25 assume !(~n <= 0); 1175631#L26 call #t~ret0 := fact(~n - 1);< 1175640#$Ultimate##0 ~n := #in~n; 1175682#L25 assume !(~n <= 0); 1175663#L26 call #t~ret0 := fact(~n - 1);< 1175675#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1176175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176173#factFINAL assume true; 1176082#factEXIT >#68#return; 1175370#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175693#$Ultimate##0 ~n := #in~n; 1175690#L25 assume !(~n <= 0); 1175502#L26 call #t~ret0 := fact(~n - 1);< 1175589#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175577#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175997#factFINAL assume true; 1175951#factEXIT >#70#return; 1175792#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175990#$Ultimate##0 ~n := #in~n; 1175989#L25 assume !(~n <= 0); 1175573#L26 call #t~ret0 := fact(~n - 1);< 1175661#$Ultimate##0 ~n := #in~n; 1175657#L25 assume !(~n <= 0); 1175574#L26 call #t~ret0 := fact(~n - 1);< 1175642#$Ultimate##0 ~n := #in~n; 1175669#L25 assume !(~n <= 0); 1175614#L26 call #t~ret0 := fact(~n - 1);< 1175666#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175621#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176033#factFINAL assume true; 1176010#factEXIT >#72#return; 1176024#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1177193#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1177191#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1177189#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1177179#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1176148#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1176191#$Ultimate##0 ~n := #in~n; 1176185#L25 assume !(~n <= 0); 1175586#L26 call #t~ret0 := fact(~n - 1);< 1176179#$Ultimate##0 ~n := #in~n; 1179029#L25 assume !(~n <= 0); 1175585#L26 call #t~ret0 := fact(~n - 1);< 1175559#$Ultimate##0 ~n := #in~n; 1179153#L25 assume !(~n <= 0); 1175579#L26 call #t~ret0 := fact(~n - 1);< 1175942#$Ultimate##0 ~n := #in~n; 1179136#L25 assume !(~n <= 0); 1175568#L26 call #t~ret0 := fact(~n - 1);< 1175583#$Ultimate##0 ~n := #in~n; 1179139#L25 assume !(~n <= 0); 1175616#L26 call #t~ret0 := fact(~n - 1);< 1175623#$Ultimate##0 ~n := #in~n; 1179151#L25 assume !(~n <= 0); 1175631#L26 call #t~ret0 := fact(~n - 1);< 1175640#$Ultimate##0 ~n := #in~n; 1175682#L25 assume !(~n <= 0); 1175663#L26 call #t~ret0 := fact(~n - 1);< 1175675#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1176175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176173#factFINAL assume true; 1176082#factEXIT >#68#return; 1175371#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175693#$Ultimate##0 ~n := #in~n; 1175690#L25 assume !(~n <= 0); 1175502#L26 call #t~ret0 := fact(~n - 1);< 1175589#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175914#factFINAL assume true; 1175897#factEXIT >#70#return; 1175794#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175990#$Ultimate##0 ~n := #in~n; 1175989#L25 assume !(~n <= 0); 1175573#L26 call #t~ret0 := fact(~n - 1);< 1175661#$Ultimate##0 ~n := #in~n; 1175657#L25 assume !(~n <= 0); 1175574#L26 call #t~ret0 := fact(~n - 1);< 1175642#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175822#factFINAL assume true; 1175780#factEXIT >#72#return; 1175813#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1177165#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1177164#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1177163#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1177162#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1176142#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1176191#$Ultimate##0 ~n := #in~n; 1176185#L25 assume !(~n <= 0); 1175586#L26 call #t~ret0 := fact(~n - 1);< 1176179#$Ultimate##0 ~n := #in~n; 1179029#L25 assume !(~n <= 0); 1175585#L26 call #t~ret0 := fact(~n - 1);< 1175559#$Ultimate##0 ~n := #in~n; 1179153#L25 assume !(~n <= 0); 1175579#L26 call #t~ret0 := fact(~n - 1);< 1175942#$Ultimate##0 ~n := #in~n; 1179136#L25 assume !(~n <= 0); 1175568#L26 call #t~ret0 := fact(~n - 1);< 1175583#$Ultimate##0 ~n := #in~n; 1179139#L25 assume !(~n <= 0); 1175616#L26 call #t~ret0 := fact(~n - 1);< 1175623#$Ultimate##0 ~n := #in~n; 1179151#L25 assume !(~n <= 0); 1175631#L26 call #t~ret0 := fact(~n - 1);< 1175640#$Ultimate##0 ~n := #in~n; 1175682#L25 assume !(~n <= 0); 1175663#L26 call #t~ret0 := fact(~n - 1);< 1175675#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1176175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176173#factFINAL assume true; 1176082#factEXIT >#68#return; 1175379#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1175693#$Ultimate##0 ~n := #in~n; 1175690#L25 assume !(~n <= 0); 1175502#L26 call #t~ret0 := fact(~n - 1);< 1175589#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176195#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1179109#factFINAL assume true; 1175368#factEXIT >#70#return; 1175454#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175891#$Ultimate##0 ~n := #in~n; 1175890#L25 assume !(~n <= 0); 1175569#L26 call #t~ret0 := fact(~n - 1);< 1175880#$Ultimate##0 ~n := #in~n; 1175877#L25 assume ~n <= 0;#res := 1; 1175871#factFINAL assume true; 1175866#factEXIT >#66#return; 1175865#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175862#factFINAL assume true; 1175836#factEXIT >#72#return; 1175851#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1178995#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1178993#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1178992#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1178991#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1176152#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1176191#$Ultimate##0 ~n := #in~n; 1176185#L25 assume !(~n <= 0); 1175586#L26 call #t~ret0 := fact(~n - 1);< 1176179#$Ultimate##0 ~n := #in~n; 1179029#L25 assume !(~n <= 0); 1175585#L26 call #t~ret0 := fact(~n - 1);< 1175559#$Ultimate##0 ~n := #in~n; 1179153#L25 assume !(~n <= 0); 1175579#L26 call #t~ret0 := fact(~n - 1);< 1175942#$Ultimate##0 ~n := #in~n; 1179136#L25 assume !(~n <= 0); 1175568#L26 call #t~ret0 := fact(~n - 1);< 1175583#$Ultimate##0 ~n := #in~n; 1179139#L25 assume !(~n <= 0); 1175616#L26 call #t~ret0 := fact(~n - 1);< 1175623#$Ultimate##0 ~n := #in~n; 1179151#L25 assume !(~n <= 0); 1175631#L26 call #t~ret0 := fact(~n - 1);< 1175640#$Ultimate##0 ~n := #in~n; 1175682#L25 assume !(~n <= 0); 1175663#L26 call #t~ret0 := fact(~n - 1);< 1175675#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1176175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176173#factFINAL assume true; 1176082#factEXIT >#68#return; 1176056#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1176080#$Ultimate##0 ~n := #in~n; 1176077#L25 assume !(~n <= 0); 1175501#L26 call #t~ret0 := fact(~n - 1);< 1176052#$Ultimate##0 ~n := #in~n; 1176049#L25 assume !(~n <= 0); 1175523#L26 call #t~ret0 := fact(~n - 1);< 1176044#$Ultimate##0 ~n := #in~n; 1176043#L25 assume !(~n <= 0); 1175524#L26 call #t~ret0 := fact(~n - 1);< 1176038#$Ultimate##0 ~n := #in~n; 1175835#L25 assume !(~n <= 0); 1175528#L26 call #t~ret0 := fact(~n - 1);< 1175584#$Ultimate##0 ~n := #in~n; 1175933#L25 assume !(~n <= 0); 1175529#L26 call #t~ret0 := fact(~n - 1);< 1175622#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175668#L25 assume !(~n <= 0); 1175511#L26 call #t~ret0 := fact(~n - 1);< 1175665#$Ultimate##0 ~n := #in~n; 1175673#L25 assume ~n <= 0;#res := 1; 1175671#factFINAL assume true; 1175662#factEXIT >#66#return; 1175658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175643#factFINAL assume true; 1175630#factEXIT >#66#return; 1175629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175626#factFINAL assume true; 1175610#factEXIT >#66#return; 1175608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175588#factFINAL assume true; 1175561#factEXIT >#66#return; 1175576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1175978#factFINAL assume true; 1175936#factEXIT >#66#return; 1175938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176202#factFINAL assume true; 1176192#factEXIT >#66#return; 1176187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176180#factFINAL assume true; 1176176#factEXIT >#66#return; 1176174#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1176172#factFINAL assume true; 1176081#factEXIT >#70#return; 1175081#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1175892#$Ultimate##0 ~n := #in~n; 1175889#L25 assume ~n <= 0;#res := 1; 1175120#factFINAL assume true; 1175053#factEXIT >#72#return; 1175112#L30-3 [2023-02-18 08:59:55,638 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:59:55,638 INFO L85 PathProgramCache]: Analyzing trace with hash -838786076, now seen corresponding path program 87 times [2023-02-18 08:59:55,638 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:59:55,638 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2108121627] [2023-02-18 08:59:55,638 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:59:55,638 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:59:55,681 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:59:55,681 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [635005347] [2023-02-18 08:59:55,681 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:59:55,681 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:59:55,681 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:55,683 INFO L229 MonitoredProcess]: Starting monitored process 306 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:59:55,684 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (306)] Waiting until timeout for monitored process [2023-02-18 08:59:57,091 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 14 check-sat command(s) [2023-02-18 08:59:57,091 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 08:59:57,098 INFO L263 TraceCheckSpWp]: Trace formula consists of 1128 conjuncts, 37 conjunts are in the unsatisfiable core [2023-02-18 08:59:57,110 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 08:59:57,264 INFO L134 CoverageAnalysis]: Checked inductivity of 348966 backedges. 19169 proven. 5361 refuted. 0 times theorem prover too weak. 324436 trivial. 0 not checked. [2023-02-18 08:59:57,264 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 08:59:57,812 INFO L134 CoverageAnalysis]: Checked inductivity of 348966 backedges. 17700 proven. 5464 refuted. 0 times theorem prover too weak. 325802 trivial. 0 not checked. [2023-02-18 08:59:57,813 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 08:59:57,813 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2108121627] [2023-02-18 08:59:57,813 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 08:59:57,813 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [635005347] [2023-02-18 08:59:57,813 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [635005347] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 08:59:57,813 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 08:59:57,813 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [21, 31] total 35 [2023-02-18 08:59:57,814 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1123450818] [2023-02-18 08:59:57,814 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 08:59:57,814 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 08:59:57,814 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 08:59:57,815 INFO L85 PathProgramCache]: Analyzing trace with hash 1079628611, now seen corresponding path program 87 times [2023-02-18 08:59:57,815 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 08:59:57,815 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [645023495] [2023-02-18 08:59:57,815 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 08:59:57,815 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 08:59:57,841 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 08:59:57,842 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [918656488] [2023-02-18 08:59:57,842 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-18 08:59:57,842 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 08:59:57,842 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 08:59:57,844 INFO L229 MonitoredProcess]: Starting monitored process 307 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 08:59:57,845 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (307)] Waiting until timeout for monitored process [2023-02-18 09:00:27,378 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 74 check-sat command(s) [2023-02-18 09:00:27,378 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 09:00:27,393 INFO L263 TraceCheckSpWp]: Trace formula consists of 1954 conjuncts, 50 conjunts are in the unsatisfiable core [2023-02-18 09:00:27,399 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 09:00:27,610 INFO L134 CoverageAnalysis]: Checked inductivity of 63383 backedges. 4330 proven. 7044 refuted. 0 times theorem prover too weak. 52009 trivial. 0 not checked. [2023-02-18 09:00:27,610 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 09:00:28,274 INFO L134 CoverageAnalysis]: Checked inductivity of 63383 backedges. 4278 proven. 7206 refuted. 0 times theorem prover too weak. 51899 trivial. 0 not checked. [2023-02-18 09:00:28,275 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 09:00:28,275 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [645023495] [2023-02-18 09:00:28,275 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 09:00:28,275 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [918656488] [2023-02-18 09:00:28,275 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [918656488] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 09:00:28,275 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 09:00:28,275 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [26, 39] total 47 [2023-02-18 09:00:28,275 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [144784162] [2023-02-18 09:00:28,275 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 09:00:28,276 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 09:00:28,276 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 09:00:28,276 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 48 interpolants. [2023-02-18 09:00:28,277 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=251, Invalid=2005, Unknown=0, NotChecked=0, Total=2256 [2023-02-18 09:00:28,277 INFO L87 Difference]: Start difference. First operand 7648 states and 12561 transitions. cyclomatic complexity: 4963 Second operand has 48 states, 39 states have (on average 2.5384615384615383) internal successors, (99), 45 states have internal predecessors, (99), 28 states have call successors, (38), 1 states have call predecessors, (38), 16 states have return successors, (49), 26 states have call predecessors, (49), 28 states have call successors, (49) [2023-02-18 09:00:32,712 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 09:00:32,712 INFO L93 Difference]: Finished difference Result 9179 states and 15036 transitions. [2023-02-18 09:00:32,712 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 9179 states and 15036 transitions. [2023-02-18 09:00:32,758 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 435 [2023-02-18 09:00:32,803 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 9179 states to 7119 states and 11522 transitions. [2023-02-18 09:00:32,803 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 391 [2023-02-18 09:00:32,803 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 431 [2023-02-18 09:00:32,803 INFO L73 IsDeterministic]: Start isDeterministic. Operand 7119 states and 11522 transitions. [2023-02-18 09:00:32,803 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 09:00:32,803 INFO L218 hiAutomatonCegarLoop]: Abstraction has 7119 states and 11522 transitions. [2023-02-18 09:00:32,805 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 7119 states and 11522 transitions. [2023-02-18 09:00:32,998 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 7119 to 6064. [2023-02-18 09:00:33,002 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6064 states, 3713 states have (on average 1.0495556154053327) internal successors, (3897), 3671 states have internal predecessors, (3897), 1913 states have call successors, (1931), 691 states have call predecessors, (1931), 438 states have return successors, (3832), 1701 states have call predecessors, (3832), 1913 states have call successors, (3832) [2023-02-18 09:00:33,020 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6064 states to 6064 states and 9660 transitions. [2023-02-18 09:00:33,020 INFO L240 hiAutomatonCegarLoop]: Abstraction has 6064 states and 9660 transitions. [2023-02-18 09:00:33,021 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 58 states. [2023-02-18 09:00:33,021 INFO L428 stractBuchiCegarLoop]: Abstraction has 6064 states and 9660 transitions. [2023-02-18 09:00:33,021 INFO L335 stractBuchiCegarLoop]: ======== Iteration 100 ============ [2023-02-18 09:00:33,021 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 6064 states and 9660 transitions. [2023-02-18 09:00:33,032 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 343 [2023-02-18 09:00:33,032 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 09:00:33,032 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 09:00:33,038 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [221, 221, 150, 150, 150, 150, 71, 24, 23, 16, 16, 16, 16, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 7, 7, 7, 7, 5, 4, 4, 1, 1, 1, 1] [2023-02-18 09:00:33,038 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [188, 188, 158, 158, 158, 158, 30, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 09:00:33,039 INFO L748 eck$LassoCheckResult]: Stem: 1211466#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 1211419#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; 1211420#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 1211440#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; 1211467#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1215271#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1215269#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1215266#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1215267#$Ultimate##0 ~n := #in~n; 1215277#L25 assume ~n <= 0;#res := 1; 1215275#factFINAL assume true; 1215265#factEXIT >#68#return; 1215256#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1215257#$Ultimate##0 ~n := #in~n; 1215263#L25 assume ~n <= 0;#res := 1; 1215262#factFINAL assume true; 1215255#factEXIT >#70#return; 1215249#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1215250#$Ultimate##0 ~n := #in~n; 1215287#L25 assume ~n <= 0;#res := 1; 1215285#factFINAL assume true; 1215248#factEXIT >#72#return; 1215246#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1215242#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1215240#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1215238#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1215237#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1215235#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1215236#$Ultimate##0 ~n := #in~n; 1215247#L25 assume !(~n <= 0); 1215244#L26 call #t~ret0 := fact(~n - 1);< 1215245#$Ultimate##0 ~n := #in~n; 1215290#L25 assume ~n <= 0;#res := 1; 1215288#factFINAL assume true; 1215243#factEXIT >#66#return; 1215241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1215239#factFINAL assume true; 1215234#factEXIT >#74#return; 1215232#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1215233#$Ultimate##0 ~n := #in~n; 1215291#L25 assume ~n <= 0;#res := 1; 1215289#factFINAL assume true; 1215231#factEXIT >#76#return; 1215229#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1215230#$Ultimate##0 ~n := #in~n; 1215298#L25 assume !(~n <= 0); 1215295#L26 call #t~ret0 := fact(~n - 1);< 1215296#$Ultimate##0 ~n := #in~n; 1215299#L25 assume ~n <= 0;#res := 1; 1215297#factFINAL assume true; 1215294#factEXIT >#66#return; 1215293#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1215292#factFINAL assume true; 1215228#factEXIT >#78#return; 1215227#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1215226#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1215224#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1215217#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1215214#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1215204#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1215207#$Ultimate##0 ~n := #in~n; 1215225#L25 assume !(~n <= 0); 1215221#L26 call #t~ret0 := fact(~n - 1);< 1215223#$Ultimate##0 ~n := #in~n; 1215278#L25 assume !(~n <= 0); 1215220#L26 call #t~ret0 := fact(~n - 1);< 1215276#$Ultimate##0 ~n := #in~n; 1215286#L25 assume ~n <= 0;#res := 1; 1215284#factFINAL assume true; 1215283#factEXIT >#66#return; 1215282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1215280#factFINAL assume true; 1215273#factEXIT >#66#return; 1215274#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1215279#factFINAL assume true; 1215272#factEXIT >#74#return; 1215206#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1215260#$Ultimate##0 ~n := #in~n; 1215270#L25 assume ~n <= 0;#res := 1; 1215268#factFINAL assume true; 1215259#factEXIT >#76#return; 1215252#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1215253#$Ultimate##0 ~n := #in~n; 1215281#L25 assume !(~n <= 0); 1215222#L26 call #t~ret0 := fact(~n - 1);< 1215223#$Ultimate##0 ~n := #in~n; 1215278#L25 assume !(~n <= 0); 1215220#L26 call #t~ret0 := fact(~n - 1);< 1215276#$Ultimate##0 ~n := #in~n; 1215286#L25 assume ~n <= 0;#res := 1; 1215284#factFINAL assume true; 1215283#factEXIT >#66#return; 1215282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1215280#factFINAL assume true; 1215273#factEXIT >#66#return; 1215264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1215258#factFINAL assume true; 1215251#factEXIT >#78#return; 1215218#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1215215#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1215212#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1215211#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1215209#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1215210#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1215528#$Ultimate##0 ~n := #in~n; 1215540#L25 assume !(~n <= 0); 1215537#L26 call #t~ret0 := fact(~n - 1);< 1215538#$Ultimate##0 ~n := #in~n; 1215546#L25 assume !(~n <= 0); 1215536#L26 call #t~ret0 := fact(~n - 1);< 1215545#$Ultimate##0 ~n := #in~n; 1215546#L25 assume !(~n <= 0); 1215536#L26 call #t~ret0 := fact(~n - 1);< 1215545#$Ultimate##0 ~n := #in~n; 1215555#L25 assume ~n <= 0;#res := 1; 1215552#factFINAL assume true; 1215550#factEXIT >#66#return; 1215549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1215547#factFINAL assume true; 1215544#factEXIT >#66#return; 1215543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1215541#factFINAL assume true; 1215535#factEXIT >#66#return; 1215533#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1215532#factFINAL assume true; 1215527#factEXIT >#74#return; 1215524#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1215525#$Ultimate##0 ~n := #in~n; 1215539#L25 assume ~n <= 0;#res := 1; 1215534#factFINAL assume true; 1215523#factEXIT >#76#return; 1214123#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1214124#$Ultimate##0 ~n := #in~n; 1214219#L25 assume !(~n <= 0); 1214160#L26 call #t~ret0 := fact(~n - 1);< 1214174#$Ultimate##0 ~n := #in~n; 1214862#L25 assume !(~n <= 0); 1214162#L26 call #t~ret0 := fact(~n - 1);< 1214860#$Ultimate##0 ~n := #in~n; 1214862#L25 assume !(~n <= 0); 1214162#L26 call #t~ret0 := fact(~n - 1);< 1214860#$Ultimate##0 ~n := #in~n; 1214913#L25 assume ~n <= 0;#res := 1; 1214911#factFINAL assume true; 1214859#factEXIT >#66#return; 1214858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1214857#factFINAL assume true; 1214178#factEXIT >#66#return; 1214176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1214173#factFINAL assume true; 1214158#factEXIT >#66#return; 1214164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217294#factFINAL assume true; 1214122#factEXIT >#78#return; 1214117#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1214114#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1214113#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1214112#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1214111#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1214110#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1214100#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1213409#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1213316#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1213322#$Ultimate##0 ~n := #in~n; 1213407#L25 assume !(~n <= 0); 1213376#L26 call #t~ret0 := fact(~n - 1);< 1213402#$Ultimate##0 ~n := #in~n; 1214322#L25 assume ~n <= 0;#res := 1; 1214240#factFINAL assume true; 1214227#factEXIT >#66#return; 1214225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1214224#factFINAL assume true; 1214206#factEXIT >#68#return; 1214199#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1213293#$Ultimate##0 ~n := #in~n; 1214323#L25 assume ~n <= 0;#res := 1; 1214226#factFINAL assume true; 1214198#factEXIT >#70#return; 1214190#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1214195#$Ultimate##0 ~n := #in~n; 1214191#L25 assume !(~n <= 0); 1213389#L26 call #t~ret0 := fact(~n - 1);< 1214189#$Ultimate##0 ~n := #in~n; 1214322#L25 assume ~n <= 0;#res := 1; 1214240#factFINAL assume true; 1214227#factEXIT >#66#return; 1214237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1214816#factFINAL assume true; 1214815#factEXIT >#72#return; 1214813#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1214812#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1214811#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1214809#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1214808#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1214244#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1214317#$Ultimate##0 ~n := #in~n; 1214316#L25 assume !(~n <= 0); 1213364#L26 call #t~ret0 := fact(~n - 1);< 1214189#$Ultimate##0 ~n := #in~n; 1214322#L25 assume ~n <= 0;#res := 1; 1214240#factFINAL assume true; 1214227#factEXIT >#66#return; 1214234#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1214810#factFINAL assume true; 1214807#factEXIT >#68#return; 1214792#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1214806#$Ultimate##0 ~n := #in~n; 1214819#L25 assume !(~n <= 0); 1214231#L26 call #t~ret0 := fact(~n - 1);< 1214242#$Ultimate##0 ~n := #in~n; 1214322#L25 assume ~n <= 0;#res := 1; 1214240#factFINAL assume true; 1214227#factEXIT >#66#return; 1214232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1214814#factFINAL assume true; 1214786#factEXIT >#70#return; 1214776#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1214785#$Ultimate##0 ~n := #in~n; 1214818#L25 assume ~n <= 0;#res := 1; 1214817#factFINAL assume true; 1214771#factEXIT >#72#return; 1214770#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1214769#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1214768#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1214766#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1214765#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1214757#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1214764#$Ultimate##0 ~n := #in~n; 1214763#L25 assume !(~n <= 0); 1213374#L26 call #t~ret0 := fact(~n - 1);< 1214755#$Ultimate##0 ~n := #in~n; 1214077#L25 assume !(~n <= 0); 1213375#L26 call #t~ret0 := fact(~n - 1);< 1213457#$Ultimate##0 ~n := #in~n; 1213499#L25 assume ~n <= 0;#res := 1; 1213498#factFINAL assume true; 1213454#factEXIT >#66#return; 1213452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213428#factFINAL assume true; 1213358#factEXIT >#66#return; 1213400#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1216406#factFINAL assume true; 1216403#factEXIT >#74#return; 1214271#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1215615#$Ultimate##0 ~n := #in~n; 1214884#L25 assume !(~n <= 0); 1213371#L26 call #t~ret0 := fact(~n - 1);< 1213402#$Ultimate##0 ~n := #in~n; 1214322#L25 assume ~n <= 0;#res := 1; 1214240#factFINAL assume true; 1214227#factEXIT >#66#return; 1214233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1216422#factFINAL assume true; 1216399#factEXIT >#76#return; 1215733#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1215730#$Ultimate##0 ~n := #in~n; 1215735#L25 assume !(~n <= 0); 1214228#L26 call #t~ret0 := fact(~n - 1);< 1214242#$Ultimate##0 ~n := #in~n; 1214322#L25 assume ~n <= 0;#res := 1; 1214240#factFINAL assume true; 1214227#factEXIT >#66#return; 1214233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1216422#factFINAL assume true; 1216399#factEXIT >#78#return; 1216398#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1216397#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1216396#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1216394#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1216392#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1214495#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1216342#$Ultimate##0 ~n := #in~n; 1216530#L25 assume !(~n <= 0); 1216360#L26 call #t~ret0 := fact(~n - 1);< 1216528#$Ultimate##0 ~n := #in~n; 1216519#L25 assume !(~n <= 0); 1216364#L26 call #t~ret0 := fact(~n - 1);< 1216518#$Ultimate##0 ~n := #in~n; 1216519#L25 assume !(~n <= 0); 1216364#L26 call #t~ret0 := fact(~n - 1);< 1216518#$Ultimate##0 ~n := #in~n; 1216425#L25 assume ~n <= 0;#res := 1; 1216424#factFINAL assume true; 1216407#factEXIT >#66#return; 1216380#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1216373#factFINAL assume true; 1216343#factEXIT >#66#return; 1216368#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1216463#factFINAL assume true; 1216453#factEXIT >#66#return; 1216445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1216418#factFINAL assume true; 1216383#factEXIT >#74#return; 1216307#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1216339#$Ultimate##0 ~n := #in~n; 1216442#L25 assume !(~n <= 0); 1216361#L26 call #t~ret0 := fact(~n - 1);< 1216416#$Ultimate##0 ~n := #in~n; 1216429#L25 assume ~n <= 0;#res := 1; 1216434#factFINAL assume true; 1216412#factEXIT >#66#return; 1216382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1216376#factFINAL assume true; 1216337#factEXIT >#76#return; 1216299#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1216334#$Ultimate##0 ~n := #in~n; 1216632#L25 assume !(~n <= 0); 1216351#L26 call #t~ret0 := fact(~n - 1);< 1216390#$Ultimate##0 ~n := #in~n; 1216648#L25 assume !(~n <= 0); 1216358#L26 call #t~ret0 := fact(~n - 1);< 1216410#$Ultimate##0 ~n := #in~n; 1216425#L25 assume ~n <= 0;#res := 1; 1216424#factFINAL assume true; 1216407#factEXIT >#66#return; 1216380#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1216373#factFINAL assume true; 1216343#factEXIT >#66#return; 1216340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1216335#factFINAL assume true; 1216297#factEXIT >#78#return; 1216296#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1216295#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1216294#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1216293#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1216291#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1216282#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1216281#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1214297#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1213313#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1213322#$Ultimate##0 ~n := #in~n; 1213407#L25 assume !(~n <= 0); 1213376#L26 call #t~ret0 := fact(~n - 1);< 1213402#$Ultimate##0 ~n := #in~n; 1213526#L25 assume !(~n <= 0); 1213367#L26 call #t~ret0 := fact(~n - 1);< 1213504#$Ultimate##0 ~n := #in~n; 1213499#L25 assume ~n <= 0;#res := 1; 1213498#factFINAL assume true; 1213454#factEXIT >#66#return; 1213452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213428#factFINAL assume true; 1213358#factEXIT >#66#return; 1213355#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213339#factFINAL assume true; 1213312#factEXIT >#68#return; 1213320#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1213292#$Ultimate##0 ~n := #in~n; 1215758#L25 assume ~n <= 0;#res := 1; 1215756#factFINAL assume true; 1215755#factEXIT >#70#return; 1214128#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1214220#$Ultimate##0 ~n := #in~n; 1214218#L25 assume !(~n <= 0); 1213753#L26 call #t~ret0 := fact(~n - 1);< 1213760#$Ultimate##0 ~n := #in~n; 1213787#L25 assume !(~n <= 0); 1213779#L26 call #t~ret0 := fact(~n - 1);< 1213782#$Ultimate##0 ~n := #in~n; 1213790#L25 assume ~n <= 0;#res := 1; 1213785#factFINAL assume true; 1213778#factEXIT >#66#return; 1213775#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213762#factFINAL assume true; 1213746#factEXIT >#66#return; 1213759#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1215754#factFINAL assume true; 1215746#factEXIT >#72#return; 1215750#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1217117#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1216939#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1216937#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1216934#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1214221#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1214222#$Ultimate##0 ~n := #in~n; 1215610#L25 assume !(~n <= 0); 1213747#L26 call #t~ret0 := fact(~n - 1);< 1213760#$Ultimate##0 ~n := #in~n; 1213787#L25 assume !(~n <= 0); 1213779#L26 call #t~ret0 := fact(~n - 1);< 1213782#$Ultimate##0 ~n := #in~n; 1213790#L25 assume ~n <= 0;#res := 1; 1213785#factFINAL assume true; 1213778#factEXIT >#66#return; 1213775#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213762#factFINAL assume true; 1213746#factEXIT >#66#return; 1213754#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1215595#factFINAL assume true; 1215576#factEXIT >#68#return; 1215170#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1215171#$Ultimate##0 ~n := #in~n; 1215638#L25 assume !(~n <= 0); 1214601#L26 call #t~ret0 := fact(~n - 1);< 1214607#$Ultimate##0 ~n := #in~n; 1214736#L25 assume ~n <= 0;#res := 1; 1214610#factFINAL assume true; 1214599#factEXIT >#66#return; 1214605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1215637#factFINAL assume true; 1215599#factEXIT >#70#return; 1215172#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1215171#$Ultimate##0 ~n := #in~n; 1215638#L25 assume !(~n <= 0); 1214601#L26 call #t~ret0 := fact(~n - 1);< 1214607#$Ultimate##0 ~n := #in~n; 1214736#L25 assume ~n <= 0;#res := 1; 1214610#factFINAL assume true; 1214599#factEXIT >#66#return; 1214605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1215637#factFINAL assume true; 1215599#factEXIT >#72#return; 1215609#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1216936#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1216933#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1216931#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1216645#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1215577#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1214222#$Ultimate##0 ~n := #in~n; 1215610#L25 assume !(~n <= 0); 1213747#L26 call #t~ret0 := fact(~n - 1);< 1213760#$Ultimate##0 ~n := #in~n; 1213787#L25 assume !(~n <= 0); 1213779#L26 call #t~ret0 := fact(~n - 1);< 1213782#$Ultimate##0 ~n := #in~n; 1213790#L25 assume ~n <= 0;#res := 1; 1213785#factFINAL assume true; 1213778#factEXIT >#66#return; 1213775#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213762#factFINAL assume true; 1213746#factEXIT >#66#return; 1213754#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1215595#factFINAL assume true; 1215576#factEXIT >#68#return; 1213765#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1215575#$Ultimate##0 ~n := #in~n; 1215644#L25 assume !(~n <= 0); 1213719#L26 call #t~ret0 := fact(~n - 1);< 1213769#$Ultimate##0 ~n := #in~n; 1213786#L25 assume !(~n <= 0); 1213752#L26 call #t~ret0 := fact(~n - 1);< 1213781#$Ultimate##0 ~n := #in~n; 1213790#L25 assume ~n <= 0;#res := 1; 1213785#factFINAL assume true; 1213778#factEXIT >#66#return; 1213775#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213762#factFINAL assume true; 1213746#factEXIT >#66#return; 1213757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1215647#factFINAL assume true; 1215574#factEXIT >#70#return; 1215563#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1215573#$Ultimate##0 ~n := #in~n; 1215705#L25 assume ~n <= 0;#res := 1; 1215702#factFINAL assume true; 1215561#factEXIT >#72#return; 1215568#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1217063#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1217062#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1217060#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1217059#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1216133#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1217015#$Ultimate##0 ~n := #in~n; 1217053#L25 assume !(~n <= 0); 1217034#L26 call #t~ret0 := fact(~n - 1);< 1217051#$Ultimate##0 ~n := #in~n; 1217147#L25 assume !(~n <= 0); 1217036#L26 call #t~ret0 := fact(~n - 1);< 1217104#$Ultimate##0 ~n := #in~n; 1217147#L25 assume !(~n <= 0); 1217036#L26 call #t~ret0 := fact(~n - 1);< 1217104#$Ultimate##0 ~n := #in~n; 1217120#L25 assume ~n <= 0;#res := 1; 1217119#factFINAL assume true; 1217102#factEXIT >#66#return; 1217100#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217092#factFINAL assume true; 1217066#factEXIT >#66#return; 1217070#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217057#factFINAL assume true; 1217026#factEXIT >#66#return; 1217025#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217024#factFINAL assume true; 1217014#factEXIT >#74#return; 1216995#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1217013#$Ultimate##0 ~n := #in~n; 1217142#L25 assume !(~n <= 0); 1217045#L26 call #t~ret0 := fact(~n - 1);< 1217061#$Ultimate##0 ~n := #in~n; 1217098#L25 assume !(~n <= 0); 1217068#L26 call #t~ret0 := fact(~n - 1);< 1217078#$Ultimate##0 ~n := #in~n; 1217120#L25 assume ~n <= 0;#res := 1; 1217119#factFINAL assume true; 1217102#factEXIT >#66#return; 1217100#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217092#factFINAL assume true; 1217066#factEXIT >#66#return; 1217069#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1216980#factFINAL assume true; 1216999#factEXIT >#76#return; 1217011#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1217122#$Ultimate##0 ~n := #in~n; 1217133#L25 assume !(~n <= 0); 1217130#L26 call #t~ret0 := fact(~n - 1);< 1217132#$Ultimate##0 ~n := #in~n; 1217107#L25 assume ~n <= 0;#res := 1; 1217134#factFINAL assume true; 1217128#factEXIT >#66#return; 1217126#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217121#factFINAL assume true; 1217111#factEXIT >#78#return; 1216955#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1216953#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1216951#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1216949#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1216948#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1216947#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1216945#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1213699#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1213693#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1213695#$Ultimate##0 ~n := #in~n; 1213744#L25 assume !(~n <= 0); 1213724#L26 call #t~ret0 := fact(~n - 1);< 1213739#$Ultimate##0 ~n := #in~n; 1213795#L25 assume !(~n <= 0); 1213750#L26 call #t~ret0 := fact(~n - 1);< 1213781#$Ultimate##0 ~n := #in~n; 1213787#L25 assume !(~n <= 0); 1213779#L26 call #t~ret0 := fact(~n - 1);< 1213782#$Ultimate##0 ~n := #in~n; 1213790#L25 assume ~n <= 0;#res := 1; 1213785#factFINAL assume true; 1213778#factEXIT >#66#return; 1213775#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213762#factFINAL assume true; 1213746#factEXIT >#66#return; 1213745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213740#factFINAL assume true; 1213702#factEXIT >#66#return; 1213698#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213697#factFINAL assume true; 1213692#factEXIT >#68#return; 1213684#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1213687#$Ultimate##0 ~n := #in~n; 1213696#L25 assume ~n <= 0;#res := 1; 1213691#factFINAL assume true; 1213683#factEXIT >#70#return; 1213507#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1213510#$Ultimate##0 ~n := #in~n; 1213509#L25 assume !(~n <= 0); 1213110#L26 call #t~ret0 := fact(~n - 1);< 1213200#$Ultimate##0 ~n := #in~n; 1213453#L25 assume !(~n <= 0); 1213119#L26 call #t~ret0 := fact(~n - 1);< 1213131#$Ultimate##0 ~n := #in~n; 1213860#L25 assume !(~n <= 0); 1213101#L26 call #t~ret0 := fact(~n - 1);< 1213223#$Ultimate##0 ~n := #in~n; 1213235#L25 assume ~n <= 0;#res := 1; 1213231#factFINAL assume true; 1213220#factEXIT >#66#return; 1213205#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213193#factFINAL assume true; 1213155#factEXIT >#66#return; 1213164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213139#factFINAL assume true; 1213089#factEXIT >#66#return; 1213128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213676#factFINAL assume true; 1213672#factEXIT >#72#return; 1213671#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1213664#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1213663#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1213662#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1213657#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1213352#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1213591#$Ultimate##0 ~n := #in~n; 1213914#L25 assume !(~n <= 0); 1213111#L26 call #t~ret0 := fact(~n - 1);< 1213308#$Ultimate##0 ~n := #in~n; 1213306#L25 assume !(~n <= 0); 1213162#L26 call #t~ret0 := fact(~n - 1);< 1213222#$Ultimate##0 ~n := #in~n; 1213302#L25 assume !(~n <= 0); 1213221#L26 call #t~ret0 := fact(~n - 1);< 1213225#$Ultimate##0 ~n := #in~n; 1213235#L25 assume ~n <= 0;#res := 1; 1213231#factFINAL assume true; 1213220#factEXIT >#66#return; 1213205#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213193#factFINAL assume true; 1213155#factEXIT >#66#return; 1213164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213139#factFINAL assume true; 1213089#factEXIT >#66#return; 1213127#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213590#factFINAL assume true; 1213582#factEXIT >#68#return; 1213586#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1213625#$Ultimate##0 ~n := #in~n; 1213647#L25 assume !(~n <= 0); 1213039#L26 call #t~ret0 := fact(~n - 1);< 1213055#$Ultimate##0 ~n := #in~n; 1213190#L25 assume ~n <= 0;#res := 1; 1213136#factFINAL assume true; 1213033#factEXIT >#66#return; 1213053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213629#factFINAL assume true; 1213621#factEXIT >#70#return; 1213340#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1213636#$Ultimate##0 ~n := #in~n; 1214102#L25 assume !(~n <= 0); 1213163#L26 call #t~ret0 := fact(~n - 1);< 1213192#$Ultimate##0 ~n := #in~n; 1213302#L25 assume !(~n <= 0); 1213221#L26 call #t~ret0 := fact(~n - 1);< 1213225#$Ultimate##0 ~n := #in~n; 1213235#L25 assume ~n <= 0;#res := 1; 1213231#factFINAL assume true; 1213220#factEXIT >#66#return; 1213205#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213193#factFINAL assume true; 1213155#factEXIT >#66#return; 1213169#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213635#factFINAL assume true; 1213630#factEXIT >#72#return; 1213631#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1213661#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1213656#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1213653#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1213650#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1213349#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1213591#$Ultimate##0 ~n := #in~n; 1213914#L25 assume !(~n <= 0); 1213111#L26 call #t~ret0 := fact(~n - 1);< 1213308#$Ultimate##0 ~n := #in~n; 1213306#L25 assume !(~n <= 0); 1213162#L26 call #t~ret0 := fact(~n - 1);< 1213222#$Ultimate##0 ~n := #in~n; 1213302#L25 assume !(~n <= 0); 1213221#L26 call #t~ret0 := fact(~n - 1);< 1213225#$Ultimate##0 ~n := #in~n; 1213235#L25 assume ~n <= 0;#res := 1; 1213231#factFINAL assume true; 1213220#factEXIT >#66#return; 1213205#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213193#factFINAL assume true; 1213155#factEXIT >#66#return; 1213164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213139#factFINAL assume true; 1213089#factEXIT >#66#return; 1213127#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213590#factFINAL assume true; 1213582#factEXIT >#68#return; 1213195#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1213633#$Ultimate##0 ~n := #in~n; 1215515#L25 assume !(~n <= 0); 1213112#L26 call #t~ret0 := fact(~n - 1);< 1213142#$Ultimate##0 ~n := #in~n; 1213232#L25 assume !(~n <= 0); 1213159#L26 call #t~ret0 := fact(~n - 1);< 1213222#$Ultimate##0 ~n := #in~n; 1213235#L25 assume ~n <= 0;#res := 1; 1213231#factFINAL assume true; 1213220#factEXIT >#66#return; 1213205#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213193#factFINAL assume true; 1213155#factEXIT >#66#return; 1213169#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213635#factFINAL assume true; 1213630#factEXIT >#70#return; 1213622#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1213625#$Ultimate##0 ~n := #in~n; 1213647#L25 assume !(~n <= 0); 1213039#L26 call #t~ret0 := fact(~n - 1);< 1213055#$Ultimate##0 ~n := #in~n; 1213190#L25 assume ~n <= 0;#res := 1; 1213136#factFINAL assume true; 1213033#factEXIT >#66#return; 1213053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213629#factFINAL assume true; 1213621#factEXIT >#72#return; 1213624#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1213595#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1213592#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1213589#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1213588#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1213583#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1213587#$Ultimate##0 ~n := #in~n; 1213637#L25 assume !(~n <= 0); 1213109#L26 call #t~ret0 := fact(~n - 1);< 1213464#$Ultimate##0 ~n := #in~n; 1215034#L25 assume !(~n <= 0); 1213160#L26 call #t~ret0 := fact(~n - 1);< 1213192#$Ultimate##0 ~n := #in~n; 1213302#L25 assume !(~n <= 0); 1213221#L26 call #t~ret0 := fact(~n - 1);< 1213225#$Ultimate##0 ~n := #in~n; 1213235#L25 assume ~n <= 0;#res := 1; 1213231#factFINAL assume true; 1213220#factEXIT >#66#return; 1213205#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213193#factFINAL assume true; 1213155#factEXIT >#66#return; 1213164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213139#factFINAL assume true; 1213089#factEXIT >#66#return; 1213127#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213590#factFINAL assume true; 1213582#factEXIT >#68#return; 1213578#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1213580#$Ultimate##0 ~n := #in~n; 1213603#L25 assume !(~n <= 0); 1213113#L26 call #t~ret0 := fact(~n - 1);< 1213464#$Ultimate##0 ~n := #in~n; 1215034#L25 assume !(~n <= 0); 1213160#L26 call #t~ret0 := fact(~n - 1);< 1213192#$Ultimate##0 ~n := #in~n; 1213302#L25 assume !(~n <= 0); 1213221#L26 call #t~ret0 := fact(~n - 1);< 1213225#$Ultimate##0 ~n := #in~n; 1213235#L25 assume ~n <= 0;#res := 1; 1213231#factFINAL assume true; 1213220#factEXIT >#66#return; 1213205#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213193#factFINAL assume true; 1213155#factEXIT >#66#return; 1213164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213139#factFINAL assume true; 1213089#factEXIT >#66#return; 1213129#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1213600#factFINAL assume true; 1213577#factEXIT >#70#return; 1213561#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1213563#$Ultimate##0 ~n := #in~n; 1213581#L25 assume ~n <= 0;#res := 1; 1213571#factFINAL assume true; 1213559#factEXIT >#72#return; 1213562#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1213977#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1213976#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1213974#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1213972#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1212900#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1213957#$Ultimate##0 ~n := #in~n; 1213954#L25 assume !(~n <= 0); 1212875#L26 call #t~ret0 := fact(~n - 1);< 1212901#$Ultimate##0 ~n := #in~n; 1214824#L25 assume !(~n <= 0); 1212880#L26 call #t~ret0 := fact(~n - 1);< 1212976#$Ultimate##0 ~n := #in~n; 1214824#L25 assume !(~n <= 0); 1212880#L26 call #t~ret0 := fact(~n - 1);< 1212976#$Ultimate##0 ~n := #in~n; 1214824#L25 assume !(~n <= 0); 1212880#L26 call #t~ret0 := fact(~n - 1);< 1212976#$Ultimate##0 ~n := #in~n; 1212984#L25 assume ~n <= 0;#res := 1; 1212983#factFINAL assume true; 1212973#factEXIT >#66#return; 1212953#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212944#factFINAL assume true; 1212933#factEXIT >#66#return; 1212931#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212920#factFINAL assume true; 1212906#factEXIT >#66#return; 1212905#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212899#factFINAL assume true; 1212862#factEXIT >#66#return; 1212889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1215146#factFINAL assume true; 1215097#factEXIT >#74#return; 1212921#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1214853#$Ultimate##0 ~n := #in~n; 1215045#L25 assume !(~n <= 0); 1212912#L26 call #t~ret0 := fact(~n - 1);< 1212922#$Ultimate##0 ~n := #in~n; 1212985#L25 assume !(~n <= 0); 1212934#L26 call #t~ret0 := fact(~n - 1);< 1212940#$Ultimate##0 ~n := #in~n; 1212988#L25 assume !(~n <= 0); 1212974#L26 call #t~ret0 := fact(~n - 1);< 1212975#$Ultimate##0 ~n := #in~n; 1212984#L25 assume ~n <= 0;#res := 1; 1212983#factFINAL assume true; 1212973#factEXIT >#66#return; 1212953#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212944#factFINAL assume true; 1212933#factEXIT >#66#return; 1212931#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212920#factFINAL assume true; 1212906#factEXIT >#66#return; 1212913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1214852#factFINAL assume true; 1214837#factEXIT >#76#return; 1214844#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1214881#$Ultimate##0 ~n := #in~n; 1214880#L25 assume !(~n <= 0); 1214871#L26 call #t~ret0 := fact(~n - 1);< 1214874#$Ultimate##0 ~n := #in~n; 1212989#L25 assume ~n <= 0;#res := 1; 1214879#factFINAL assume true; 1214869#factEXIT >#66#return; 1214872#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1216167#factFINAL assume true; 1216164#factEXIT >#78#return; 1212965#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1216700#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1216698#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1216696#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1216694#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1216691#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1216692#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1212245#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1211922#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1212233#$Ultimate##0 ~n := #in~n; 1212313#L25 assume !(~n <= 0); 1211705#L26 call #t~ret0 := fact(~n - 1);< 1211701#$Ultimate##0 ~n := #in~n; 1212597#L25 assume !(~n <= 0); 1211682#L26 call #t~ret0 := fact(~n - 1);< 1211707#$Ultimate##0 ~n := #in~n; 1212632#L25 assume !(~n <= 0); 1211718#L26 call #t~ret0 := fact(~n - 1);< 1211727#$Ultimate##0 ~n := #in~n; 1212234#L25 assume !(~n <= 0); 1211739#L26 call #t~ret0 := fact(~n - 1);< 1211743#$Ultimate##0 ~n := #in~n; 1211938#L25 assume !(~n <= 0); 1211764#L26 call #t~ret0 := fact(~n - 1);< 1211766#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212265#factFINAL assume true; 1212232#factEXIT >#68#return; 1212216#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1212231#$Ultimate##0 ~n := #in~n; 1212244#L25 assume ~n <= 0;#res := 1; 1212243#factFINAL assume true; 1212214#factEXIT >#70#return; 1211926#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1211932#$Ultimate##0 ~n := #in~n; 1211930#L25 assume !(~n <= 0); 1211658#L26 call #t~ret0 := fact(~n - 1);< 1211677#$Ultimate##0 ~n := #in~n; 1217224#L25 assume !(~n <= 0); 1211643#L26 call #t~ret0 := fact(~n - 1);< 1211875#$Ultimate##0 ~n := #in~n; 1216642#L25 assume !(~n <= 0); 1211656#L26 call #t~ret0 := fact(~n - 1);< 1211711#$Ultimate##0 ~n := #in~n; 1212552#L25 assume !(~n <= 0); 1211641#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211919#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212547#factFINAL assume true; 1212210#factEXIT >#72#return; 1212213#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1212242#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1212241#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1212239#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1212237#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1212069#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1212077#$Ultimate##0 ~n := #in~n; 1212164#L25 assume !(~n <= 0); 1211704#L26 call #t~ret0 := fact(~n - 1);< 1211701#$Ultimate##0 ~n := #in~n; 1212597#L25 assume !(~n <= 0); 1211682#L26 call #t~ret0 := fact(~n - 1);< 1211707#$Ultimate##0 ~n := #in~n; 1212632#L25 assume !(~n <= 0); 1211718#L26 call #t~ret0 := fact(~n - 1);< 1211727#$Ultimate##0 ~n := #in~n; 1212234#L25 assume !(~n <= 0); 1211739#L26 call #t~ret0 := fact(~n - 1);< 1211743#$Ultimate##0 ~n := #in~n; 1211938#L25 assume !(~n <= 0); 1211764#L26 call #t~ret0 := fact(~n - 1);< 1211766#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211918#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212144#factFINAL assume true; 1212060#factEXIT >#68#return; 1212075#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1212146#$Ultimate##0 ~n := #in~n; 1212182#L25 assume !(~n <= 0); 1212152#L26 call #t~ret0 := fact(~n - 1);< 1212161#$Ultimate##0 ~n := #in~n; 1212166#L25 assume ~n <= 0;#res := 1; 1212158#factFINAL assume true; 1212151#factEXIT >#66#return; 1212149#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212145#factFINAL assume true; 1212087#factEXIT >#70#return; 1212052#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1212135#$Ultimate##0 ~n := #in~n; 1212053#L25 assume !(~n <= 0); 1211681#L26 call #t~ret0 := fact(~n - 1);< 1212050#$Ultimate##0 ~n := #in~n; 1212049#L25 assume !(~n <= 0); 1211716#L26 call #t~ret0 := fact(~n - 1);< 1212045#$Ultimate##0 ~n := #in~n; 1212044#L25 assume !(~n <= 0); 1211735#L26 call #t~ret0 := fact(~n - 1);< 1211765#$Ultimate##0 ~n := #in~n; 1211938#L25 assume !(~n <= 0); 1211764#L26 call #t~ret0 := fact(~n - 1);< 1211766#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212134#factFINAL assume true; 1212104#factEXIT >#72#return; 1212113#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1212209#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1212207#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1212205#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1212203#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1212066#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1212077#$Ultimate##0 ~n := #in~n; 1212164#L25 assume !(~n <= 0); 1211704#L26 call #t~ret0 := fact(~n - 1);< 1211701#$Ultimate##0 ~n := #in~n; 1212597#L25 assume !(~n <= 0); 1211682#L26 call #t~ret0 := fact(~n - 1);< 1211707#$Ultimate##0 ~n := #in~n; 1212632#L25 assume !(~n <= 0); 1211718#L26 call #t~ret0 := fact(~n - 1);< 1211727#$Ultimate##0 ~n := #in~n; 1212234#L25 assume !(~n <= 0); 1211739#L26 call #t~ret0 := fact(~n - 1);< 1211743#$Ultimate##0 ~n := #in~n; 1211938#L25 assume !(~n <= 0); 1211764#L26 call #t~ret0 := fact(~n - 1);< 1211766#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211918#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212144#factFINAL assume true; 1212060#factEXIT >#68#return; 1211972#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1211992#$Ultimate##0 ~n := #in~n; 1212415#L25 assume !(~n <= 0); 1211649#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212123#factFINAL assume true; 1211971#factEXIT >#70#return; 1211730#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1211777#$Ultimate##0 ~n := #in~n; 1211776#L25 assume !(~n <= 0); 1211717#L26 call #t~ret0 := fact(~n - 1);< 1211727#$Ultimate##0 ~n := #in~n; 1212234#L25 assume !(~n <= 0); 1211739#L26 call #t~ret0 := fact(~n - 1);< 1211743#$Ultimate##0 ~n := #in~n; 1211938#L25 assume !(~n <= 0); 1211764#L26 call #t~ret0 := fact(~n - 1);< 1211766#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211726#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211965#factFINAL assume true; 1211943#factEXIT >#72#return; 1211944#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1212240#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1212238#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1212236#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1212235#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1212063#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1212077#$Ultimate##0 ~n := #in~n; 1212164#L25 assume !(~n <= 0); 1211704#L26 call #t~ret0 := fact(~n - 1);< 1211701#$Ultimate##0 ~n := #in~n; 1212597#L25 assume !(~n <= 0); 1211682#L26 call #t~ret0 := fact(~n - 1);< 1211707#$Ultimate##0 ~n := #in~n; 1212632#L25 assume !(~n <= 0); 1211718#L26 call #t~ret0 := fact(~n - 1);< 1211727#$Ultimate##0 ~n := #in~n; 1212234#L25 assume !(~n <= 0); 1211739#L26 call #t~ret0 := fact(~n - 1);< 1211743#$Ultimate##0 ~n := #in~n; 1211938#L25 assume !(~n <= 0); 1211764#L26 call #t~ret0 := fact(~n - 1);< 1211766#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211918#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212144#factFINAL assume true; 1212060#factEXIT >#68#return; 1211560#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1212057#$Ultimate##0 ~n := #in~n; 1212056#L25 assume !(~n <= 0); 1211655#L26 call #t~ret0 := fact(~n - 1);< 1211711#$Ultimate##0 ~n := #in~n; 1212552#L25 assume !(~n <= 0); 1211641#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211726#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211965#factFINAL assume true; 1211943#factEXIT >#70#return; 1211748#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1212125#$Ultimate##0 ~n := #in~n; 1212584#L25 assume !(~n <= 0); 1211736#L26 call #t~ret0 := fact(~n - 1);< 1211750#$Ultimate##0 ~n := #in~n; 1211784#L25 assume !(~n <= 0); 1211737#L26 call #t~ret0 := fact(~n - 1);< 1211765#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212123#factFINAL assume true; 1211971#factEXIT >#72#return; 1211977#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1212143#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1212142#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1212141#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1212139#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1212062#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1212077#$Ultimate##0 ~n := #in~n; 1212164#L25 assume !(~n <= 0); 1211704#L26 call #t~ret0 := fact(~n - 1);< 1211701#$Ultimate##0 ~n := #in~n; 1212597#L25 assume !(~n <= 0); 1211682#L26 call #t~ret0 := fact(~n - 1);< 1211707#$Ultimate##0 ~n := #in~n; 1212632#L25 assume !(~n <= 0); 1211718#L26 call #t~ret0 := fact(~n - 1);< 1211727#$Ultimate##0 ~n := #in~n; 1212234#L25 assume !(~n <= 0); 1211739#L26 call #t~ret0 := fact(~n - 1);< 1211743#$Ultimate##0 ~n := #in~n; 1211938#L25 assume !(~n <= 0); 1211764#L26 call #t~ret0 := fact(~n - 1);< 1211766#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211918#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212144#factFINAL assume true; 1212060#factEXIT >#68#return; 1211562#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1212057#$Ultimate##0 ~n := #in~n; 1212056#L25 assume !(~n <= 0); 1211655#L26 call #t~ret0 := fact(~n - 1);< 1211711#$Ultimate##0 ~n := #in~n; 1212552#L25 assume !(~n <= 0); 1211641#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212134#factFINAL assume true; 1212104#factEXIT >#70#return; 1212088#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1212103#$Ultimate##0 ~n := #in~n; 1212585#L25 assume !(~n <= 0); 1211509#L26 call #t~ret0 := fact(~n - 1);< 1212155#$Ultimate##0 ~n := #in~n; 1212166#L25 assume ~n <= 0;#res := 1; 1212158#factFINAL assume true; 1212151#factEXIT >#66#return; 1212149#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212145#factFINAL assume true; 1212087#factEXIT >#72#return; 1212092#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1212086#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1212084#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1212082#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1212080#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1212061#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1212077#$Ultimate##0 ~n := #in~n; 1212164#L25 assume !(~n <= 0); 1211704#L26 call #t~ret0 := fact(~n - 1);< 1211701#$Ultimate##0 ~n := #in~n; 1212597#L25 assume !(~n <= 0); 1211682#L26 call #t~ret0 := fact(~n - 1);< 1211707#$Ultimate##0 ~n := #in~n; 1212632#L25 assume !(~n <= 0); 1211718#L26 call #t~ret0 := fact(~n - 1);< 1211727#$Ultimate##0 ~n := #in~n; 1212234#L25 assume !(~n <= 0); 1211739#L26 call #t~ret0 := fact(~n - 1);< 1211743#$Ultimate##0 ~n := #in~n; 1211938#L25 assume !(~n <= 0); 1211764#L26 call #t~ret0 := fact(~n - 1);< 1211766#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211918#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212144#factFINAL assume true; 1212060#factEXIT >#68#return; 1211564#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1212057#$Ultimate##0 ~n := #in~n; 1212056#L25 assume !(~n <= 0); 1211655#L26 call #t~ret0 := fact(~n - 1);< 1211711#$Ultimate##0 ~n := #in~n; 1212552#L25 assume !(~n <= 0); 1211641#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212157#factFINAL assume true; 1211510#factEXIT >#70#return; 1211473#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1211506#$Ultimate##0 ~n := #in~n; 1211508#L25 assume ~n <= 0;#res := 1; 1211507#factFINAL assume true; 1211471#factEXIT >#72#return; 1211500#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1217434#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1217433#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1217432#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1217431#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1216976#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1217429#$Ultimate##0 ~n := #in~n; 1217427#L25 assume !(~n <= 0); 1217362#L26 call #t~ret0 := fact(~n - 1);< 1217425#$Ultimate##0 ~n := #in~n; 1217423#L25 assume !(~n <= 0); 1217361#L26 call #t~ret0 := fact(~n - 1);< 1217421#$Ultimate##0 ~n := #in~n; 1217419#L25 assume !(~n <= 0); 1217363#L26 call #t~ret0 := fact(~n - 1);< 1217417#$Ultimate##0 ~n := #in~n; 1217415#L25 assume !(~n <= 0); 1217324#L26 call #t~ret0 := fact(~n - 1);< 1217347#$Ultimate##0 ~n := #in~n; 1217349#L25 assume !(~n <= 0); 1217326#L26 call #t~ret0 := fact(~n - 1);< 1217404#$Ultimate##0 ~n := #in~n; 1217349#L25 assume !(~n <= 0); 1217326#L26 call #t~ret0 := fact(~n - 1);< 1217404#$Ultimate##0 ~n := #in~n; 1217349#L25 assume !(~n <= 0); 1217326#L26 call #t~ret0 := fact(~n - 1);< 1217404#$Ultimate##0 ~n := #in~n; 1217349#L25 assume !(~n <= 0); 1217326#L26 call #t~ret0 := fact(~n - 1);< 1217404#$Ultimate##0 ~n := #in~n; 1217400#L25 assume ~n <= 0;#res := 1; 1217405#factFINAL assume true; 1217401#factEXIT >#66#return; 1217399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217397#factFINAL assume true; 1217393#factEXIT >#66#return; 1217391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217330#factFINAL assume true; 1217316#factEXIT >#66#return; 1217328#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217389#factFINAL assume true; 1217386#factEXIT >#66#return; 1217385#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217384#factFINAL assume true; 1217381#factEXIT >#66#return; 1217380#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217379#factFINAL assume true; 1217377#factEXIT >#66#return; 1217376#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217375#factFINAL assume true; 1217373#factEXIT >#66#return; 1217372#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217371#factFINAL assume true; 1217369#factEXIT >#66#return; 1217370#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217449#factFINAL assume true; 1217448#factEXIT >#74#return; 1217309#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1217344#$Ultimate##0 ~n := #in~n; 1217345#L25 assume !(~n <= 0); 1217336#L26 call #t~ret0 := fact(~n - 1);< 1217334#$Ultimate##0 ~n := #in~n; 1217337#L25 assume !(~n <= 0); 1217333#L26 call #t~ret0 := fact(~n - 1);< 1217338#$Ultimate##0 ~n := #in~n; 1217332#L25 assume !(~n <= 0); 1217319#L26 call #t~ret0 := fact(~n - 1);< 1217342#$Ultimate##0 ~n := #in~n; 1217341#L25 assume !(~n <= 0); 1217321#L26 call #t~ret0 := fact(~n - 1);< 1217340#$Ultimate##0 ~n := #in~n; 1217339#L25 assume !(~n <= 0); 1217327#L26 call #t~ret0 := fact(~n - 1);< 1217331#$Ultimate##0 ~n := #in~n; 1217398#L25 assume !(~n <= 0); 1217394#L26 call #t~ret0 := fact(~n - 1);< 1217396#$Ultimate##0 ~n := #in~n; 1217400#L25 assume ~n <= 0;#res := 1; 1217405#factFINAL assume true; 1217401#factEXIT >#66#return; 1217399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217397#factFINAL assume true; 1217393#factEXIT >#66#return; 1217391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217330#factFINAL assume true; 1217316#factEXIT >#66#return; 1217328#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217389#factFINAL assume true; 1217386#factEXIT >#66#return; 1217385#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217384#factFINAL assume true; 1217381#factEXIT >#66#return; 1217380#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217379#factFINAL assume true; 1217377#factEXIT >#66#return; 1217378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217304#factFINAL assume true; 1217313#factEXIT >#76#return; 1211393#L30-7 [2023-02-18 09:00:33,039 INFO L750 eck$LassoCheckResult]: Loop: 1211393#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1211468#$Ultimate##0 ~n := #in~n; 1217409#L25 assume !(~n <= 0); 1211423#L26 call #t~ret0 := fact(~n - 1);< 1211424#$Ultimate##0 ~n := #in~n; 1217412#L25 assume ~n <= 0;#res := 1; 1217411#factFINAL assume true; 1217410#factEXIT >#66#return; 1211447#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211448#factFINAL assume true; 1211392#factEXIT >#78#return; 1211394#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1211421#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1211441#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1211452#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1211437#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1211438#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1217223#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1212693#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1212472#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1211404#$Ultimate##0 ~n := #in~n; 1212608#L25 assume !(~n <= 0); 1211663#L26 call #t~ret0 := fact(~n - 1);< 1212047#$Ultimate##0 ~n := #in~n; 1216946#L25 assume !(~n <= 0); 1211637#L26 call #t~ret0 := fact(~n - 1);< 1212836#$Ultimate##0 ~n := #in~n; 1212710#L25 assume !(~n <= 0); 1211654#L26 call #t~ret0 := fact(~n - 1);< 1211886#$Ultimate##0 ~n := #in~n; 1216654#L25 assume !(~n <= 0); 1211646#L26 call #t~ret0 := fact(~n - 1);< 1211677#$Ultimate##0 ~n := #in~n; 1217224#L25 assume !(~n <= 0); 1211643#L26 call #t~ret0 := fact(~n - 1);< 1211875#$Ultimate##0 ~n := #in~n; 1216642#L25 assume !(~n <= 0); 1211656#L26 call #t~ret0 := fact(~n - 1);< 1211711#$Ultimate##0 ~n := #in~n; 1212552#L25 assume !(~n <= 0); 1211641#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211888#factFINAL assume true; 1211878#factEXIT >#66#return; 1211877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211870#factFINAL assume true; 1211862#factEXIT >#66#return; 1211678#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211679#factFINAL assume true; 1211635#factEXIT >#66#return; 1211672#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212582#factFINAL assume true; 1212471#factEXIT >#68#return; 1212219#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1212231#$Ultimate##0 ~n := #in~n; 1212244#L25 assume ~n <= 0;#res := 1; 1212243#factFINAL assume true; 1212214#factEXIT >#70#return; 1211939#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1211963#$Ultimate##0 ~n := #in~n; 1211961#L25 assume !(~n <= 0); 1211660#L26 call #t~ret0 := fact(~n - 1);< 1211871#$Ultimate##0 ~n := #in~n; 1212455#L25 assume !(~n <= 0); 1211662#L26 call #t~ret0 := fact(~n - 1);< 1212305#$Ultimate##0 ~n := #in~n; 1212454#L25 assume !(~n <= 0); 1211661#L26 call #t~ret0 := fact(~n - 1);< 1212453#$Ultimate##0 ~n := #in~n; 1212452#L25 assume !(~n <= 0); 1211664#L26 call #t~ret0 := fact(~n - 1);< 1212443#$Ultimate##0 ~n := #in~n; 1212442#L25 assume !(~n <= 0); 1211667#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211888#factFINAL assume true; 1211878#factEXIT >#66#return; 1211877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211870#factFINAL assume true; 1211862#factEXIT >#66#return; 1211671#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212323#factFINAL assume true; 1212285#factEXIT >#72#return; 1212289#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1212581#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1212580#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1212579#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1212578#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1212004#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1212035#$Ultimate##0 ~n := #in~n; 1212048#L25 assume !(~n <= 0); 1211639#L26 call #t~ret0 := fact(~n - 1);< 1212047#$Ultimate##0 ~n := #in~n; 1216946#L25 assume !(~n <= 0); 1211637#L26 call #t~ret0 := fact(~n - 1);< 1212836#$Ultimate##0 ~n := #in~n; 1212710#L25 assume !(~n <= 0); 1211654#L26 call #t~ret0 := fact(~n - 1);< 1211886#$Ultimate##0 ~n := #in~n; 1216654#L25 assume !(~n <= 0); 1211646#L26 call #t~ret0 := fact(~n - 1);< 1211677#$Ultimate##0 ~n := #in~n; 1217224#L25 assume !(~n <= 0); 1211643#L26 call #t~ret0 := fact(~n - 1);< 1211875#$Ultimate##0 ~n := #in~n; 1216642#L25 assume !(~n <= 0); 1211656#L26 call #t~ret0 := fact(~n - 1);< 1211711#$Ultimate##0 ~n := #in~n; 1212552#L25 assume !(~n <= 0); 1211641#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211888#factFINAL assume true; 1211878#factEXIT >#66#return; 1211877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211870#factFINAL assume true; 1211862#factEXIT >#66#return; 1211678#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211679#factFINAL assume true; 1211635#factEXIT >#66#return; 1211669#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212046#factFINAL assume true; 1211998#factEXIT >#68#return; 1211476#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1212184#$Ultimate##0 ~n := #in~n; 1212183#L25 assume !(~n <= 0); 1212152#L26 call #t~ret0 := fact(~n - 1);< 1212161#$Ultimate##0 ~n := #in~n; 1212166#L25 assume ~n <= 0;#res := 1; 1212158#factFINAL assume true; 1212151#factEXIT >#66#return; 1212149#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212145#factFINAL assume true; 1212087#factEXIT >#70#return; 1211616#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1211995#$Ultimate##0 ~n := #in~n; 1211997#L25 assume !(~n <= 0); 1211659#L26 call #t~ret0 := fact(~n - 1);< 1211677#$Ultimate##0 ~n := #in~n; 1217224#L25 assume !(~n <= 0); 1211643#L26 call #t~ret0 := fact(~n - 1);< 1211875#$Ultimate##0 ~n := #in~n; 1216642#L25 assume !(~n <= 0); 1211656#L26 call #t~ret0 := fact(~n - 1);< 1211711#$Ultimate##0 ~n := #in~n; 1212552#L25 assume !(~n <= 0); 1211641#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211888#factFINAL assume true; 1211878#factEXIT >#66#return; 1211881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211968#factFINAL assume true; 1211969#factEXIT >#72#return; 1211828#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1212411#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1212412#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1212405#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1212406#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1212026#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1212035#$Ultimate##0 ~n := #in~n; 1212048#L25 assume !(~n <= 0); 1211639#L26 call #t~ret0 := fact(~n - 1);< 1212047#$Ultimate##0 ~n := #in~n; 1216946#L25 assume !(~n <= 0); 1211637#L26 call #t~ret0 := fact(~n - 1);< 1212836#$Ultimate##0 ~n := #in~n; 1212710#L25 assume !(~n <= 0); 1211654#L26 call #t~ret0 := fact(~n - 1);< 1211886#$Ultimate##0 ~n := #in~n; 1216654#L25 assume !(~n <= 0); 1211646#L26 call #t~ret0 := fact(~n - 1);< 1211677#$Ultimate##0 ~n := #in~n; 1217224#L25 assume !(~n <= 0); 1211643#L26 call #t~ret0 := fact(~n - 1);< 1211875#$Ultimate##0 ~n := #in~n; 1216642#L25 assume !(~n <= 0); 1211656#L26 call #t~ret0 := fact(~n - 1);< 1211711#$Ultimate##0 ~n := #in~n; 1212552#L25 assume !(~n <= 0); 1211641#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211888#factFINAL assume true; 1211878#factEXIT >#66#return; 1211877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211870#factFINAL assume true; 1211862#factEXIT >#66#return; 1211678#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211679#factFINAL assume true; 1211635#factEXIT >#66#return; 1211669#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212046#factFINAL assume true; 1211998#factEXIT >#68#return; 1211495#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1212179#$Ultimate##0 ~n := #in~n; 1212177#L25 assume !(~n <= 0); 1211740#L26 call #t~ret0 := fact(~n - 1);< 1212169#$Ultimate##0 ~n := #in~n; 1211938#L25 assume !(~n <= 0); 1211764#L26 call #t~ret0 := fact(~n - 1);< 1211766#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212123#factFINAL assume true; 1211971#factEXIT >#70#return; 1211569#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1212041#$Ultimate##0 ~n := #in~n; 1212040#L25 assume !(~n <= 0); 1211636#L26 call #t~ret0 := fact(~n - 1);< 1211677#$Ultimate##0 ~n := #in~n; 1217224#L25 assume !(~n <= 0); 1211643#L26 call #t~ret0 := fact(~n - 1);< 1211875#$Ultimate##0 ~n := #in~n; 1216642#L25 assume !(~n <= 0); 1211656#L26 call #t~ret0 := fact(~n - 1);< 1211711#$Ultimate##0 ~n := #in~n; 1212552#L25 assume !(~n <= 0); 1211641#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211888#factFINAL assume true; 1211878#factEXIT >#66#return; 1211881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211968#factFINAL assume true; 1211969#factEXIT >#72#return; 1211593#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1212385#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1212379#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1212380#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1212373#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1212031#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1212035#$Ultimate##0 ~n := #in~n; 1212048#L25 assume !(~n <= 0); 1211639#L26 call #t~ret0 := fact(~n - 1);< 1212047#$Ultimate##0 ~n := #in~n; 1216946#L25 assume !(~n <= 0); 1211637#L26 call #t~ret0 := fact(~n - 1);< 1212836#$Ultimate##0 ~n := #in~n; 1212710#L25 assume !(~n <= 0); 1211654#L26 call #t~ret0 := fact(~n - 1);< 1211886#$Ultimate##0 ~n := #in~n; 1216654#L25 assume !(~n <= 0); 1211646#L26 call #t~ret0 := fact(~n - 1);< 1211677#$Ultimate##0 ~n := #in~n; 1217224#L25 assume !(~n <= 0); 1211643#L26 call #t~ret0 := fact(~n - 1);< 1211875#$Ultimate##0 ~n := #in~n; 1216642#L25 assume !(~n <= 0); 1211656#L26 call #t~ret0 := fact(~n - 1);< 1211711#$Ultimate##0 ~n := #in~n; 1212552#L25 assume !(~n <= 0); 1211641#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211888#factFINAL assume true; 1211878#factEXIT >#66#return; 1211877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211870#factFINAL assume true; 1211862#factEXIT >#66#return; 1211678#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211679#factFINAL assume true; 1211635#factEXIT >#66#return; 1211669#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212046#factFINAL assume true; 1211998#factEXIT >#68#return; 1211498#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1212249#$Ultimate##0 ~n := #in~n; 1212248#L25 assume !(~n <= 0); 1211666#L26 call #t~ret0 := fact(~n - 1);< 1211712#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211726#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211965#factFINAL assume true; 1211943#factEXIT >#70#return; 1211583#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1211967#$Ultimate##0 ~n := #in~n; 1211785#L25 assume !(~n <= 0); 1211652#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211888#factFINAL assume true; 1211878#factEXIT >#66#return; 1211881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211968#factFINAL assume true; 1211969#factEXIT >#72#return; 1211604#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1212513#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1212512#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1212511#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1212509#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1212009#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1212035#$Ultimate##0 ~n := #in~n; 1212048#L25 assume !(~n <= 0); 1211639#L26 call #t~ret0 := fact(~n - 1);< 1212047#$Ultimate##0 ~n := #in~n; 1216946#L25 assume !(~n <= 0); 1211637#L26 call #t~ret0 := fact(~n - 1);< 1212836#$Ultimate##0 ~n := #in~n; 1212710#L25 assume !(~n <= 0); 1211654#L26 call #t~ret0 := fact(~n - 1);< 1211886#$Ultimate##0 ~n := #in~n; 1216654#L25 assume !(~n <= 0); 1211646#L26 call #t~ret0 := fact(~n - 1);< 1211677#$Ultimate##0 ~n := #in~n; 1217224#L25 assume !(~n <= 0); 1211643#L26 call #t~ret0 := fact(~n - 1);< 1211875#$Ultimate##0 ~n := #in~n; 1216642#L25 assume !(~n <= 0); 1211656#L26 call #t~ret0 := fact(~n - 1);< 1211711#$Ultimate##0 ~n := #in~n; 1212552#L25 assume !(~n <= 0); 1211641#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211888#factFINAL assume true; 1211878#factEXIT >#66#return; 1211877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211870#factFINAL assume true; 1211862#factEXIT >#66#return; 1211678#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211679#factFINAL assume true; 1211635#factEXIT >#66#return; 1211669#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212046#factFINAL assume true; 1211998#factEXIT >#68#return; 1211483#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1212249#$Ultimate##0 ~n := #in~n; 1212248#L25 assume !(~n <= 0); 1211666#L26 call #t~ret0 := fact(~n - 1);< 1211712#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212134#factFINAL assume true; 1212104#factEXIT >#70#return; 1211543#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1211967#$Ultimate##0 ~n := #in~n; 1211785#L25 assume !(~n <= 0); 1211652#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212134#factFINAL assume true; 1212104#factEXIT >#72#return; 1212105#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1212531#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1212530#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1212529#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1212527#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1211999#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1212035#$Ultimate##0 ~n := #in~n; 1212048#L25 assume !(~n <= 0); 1211639#L26 call #t~ret0 := fact(~n - 1);< 1212047#$Ultimate##0 ~n := #in~n; 1216946#L25 assume !(~n <= 0); 1211637#L26 call #t~ret0 := fact(~n - 1);< 1212836#$Ultimate##0 ~n := #in~n; 1212710#L25 assume !(~n <= 0); 1211654#L26 call #t~ret0 := fact(~n - 1);< 1211886#$Ultimate##0 ~n := #in~n; 1216654#L25 assume !(~n <= 0); 1211646#L26 call #t~ret0 := fact(~n - 1);< 1211677#$Ultimate##0 ~n := #in~n; 1217224#L25 assume !(~n <= 0); 1211643#L26 call #t~ret0 := fact(~n - 1);< 1211875#$Ultimate##0 ~n := #in~n; 1216642#L25 assume !(~n <= 0); 1211656#L26 call #t~ret0 := fact(~n - 1);< 1211711#$Ultimate##0 ~n := #in~n; 1212552#L25 assume !(~n <= 0); 1211641#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211888#factFINAL assume true; 1211878#factEXIT >#66#return; 1211877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211870#factFINAL assume true; 1211862#factEXIT >#66#return; 1211678#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211679#factFINAL assume true; 1211635#factEXIT >#66#return; 1211669#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212046#factFINAL assume true; 1211998#factEXIT >#68#return; 1211489#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1212249#$Ultimate##0 ~n := #in~n; 1212248#L25 assume !(~n <= 0); 1211666#L26 call #t~ret0 := fact(~n - 1);< 1211712#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212157#factFINAL assume true; 1211510#factEXIT >#70#return; 1211590#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1211967#$Ultimate##0 ~n := #in~n; 1211785#L25 assume !(~n <= 0); 1211652#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211726#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211965#factFINAL assume true; 1211943#factEXIT >#72#return; 1211958#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1212522#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1212520#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1212519#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1212518#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1212034#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1212035#$Ultimate##0 ~n := #in~n; 1212048#L25 assume !(~n <= 0); 1211639#L26 call #t~ret0 := fact(~n - 1);< 1212047#$Ultimate##0 ~n := #in~n; 1216946#L25 assume !(~n <= 0); 1211637#L26 call #t~ret0 := fact(~n - 1);< 1212836#$Ultimate##0 ~n := #in~n; 1212710#L25 assume !(~n <= 0); 1211654#L26 call #t~ret0 := fact(~n - 1);< 1211886#$Ultimate##0 ~n := #in~n; 1216654#L25 assume !(~n <= 0); 1211646#L26 call #t~ret0 := fact(~n - 1);< 1211677#$Ultimate##0 ~n := #in~n; 1217224#L25 assume !(~n <= 0); 1211643#L26 call #t~ret0 := fact(~n - 1);< 1211875#$Ultimate##0 ~n := #in~n; 1216642#L25 assume !(~n <= 0); 1211656#L26 call #t~ret0 := fact(~n - 1);< 1211711#$Ultimate##0 ~n := #in~n; 1212552#L25 assume !(~n <= 0); 1211641#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211888#factFINAL assume true; 1211878#factEXIT >#66#return; 1211877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211870#factFINAL assume true; 1211862#factEXIT >#66#return; 1211678#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211679#factFINAL assume true; 1211635#factEXIT >#66#return; 1211669#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212046#factFINAL assume true; 1211998#factEXIT >#68#return; 1211480#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1212249#$Ultimate##0 ~n := #in~n; 1212248#L25 assume !(~n <= 0); 1211666#L26 call #t~ret0 := fact(~n - 1);< 1211712#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211888#factFINAL assume true; 1211878#factEXIT >#66#return; 1211881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211968#factFINAL assume true; 1211969#factEXIT >#70#return; 1211541#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1211967#$Ultimate##0 ~n := #in~n; 1211785#L25 assume !(~n <= 0); 1211652#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212123#factFINAL assume true; 1211971#factEXIT >#72#return; 1211991#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1212517#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1212516#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1212515#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1212514#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1212025#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1212035#$Ultimate##0 ~n := #in~n; 1212048#L25 assume !(~n <= 0); 1211639#L26 call #t~ret0 := fact(~n - 1);< 1212047#$Ultimate##0 ~n := #in~n; 1216946#L25 assume !(~n <= 0); 1211637#L26 call #t~ret0 := fact(~n - 1);< 1212836#$Ultimate##0 ~n := #in~n; 1212710#L25 assume !(~n <= 0); 1211654#L26 call #t~ret0 := fact(~n - 1);< 1211886#$Ultimate##0 ~n := #in~n; 1216654#L25 assume !(~n <= 0); 1211646#L26 call #t~ret0 := fact(~n - 1);< 1211677#$Ultimate##0 ~n := #in~n; 1217224#L25 assume !(~n <= 0); 1211643#L26 call #t~ret0 := fact(~n - 1);< 1211875#$Ultimate##0 ~n := #in~n; 1216642#L25 assume !(~n <= 0); 1211656#L26 call #t~ret0 := fact(~n - 1);< 1211711#$Ultimate##0 ~n := #in~n; 1212552#L25 assume !(~n <= 0); 1211641#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211888#factFINAL assume true; 1211878#factEXIT >#66#return; 1211877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211870#factFINAL assume true; 1211862#factEXIT >#66#return; 1211678#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211679#factFINAL assume true; 1211635#factEXIT >#66#return; 1211669#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212046#factFINAL assume true; 1211998#factEXIT >#68#return; 1211825#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1211631#$Ultimate##0 ~n := #in~n; 1211970#L25 assume !(~n <= 0); 1211645#L26 call #t~ret0 := fact(~n - 1);< 1211871#$Ultimate##0 ~n := #in~n; 1212455#L25 assume !(~n <= 0); 1211662#L26 call #t~ret0 := fact(~n - 1);< 1212305#$Ultimate##0 ~n := #in~n; 1212454#L25 assume !(~n <= 0); 1211661#L26 call #t~ret0 := fact(~n - 1);< 1212453#$Ultimate##0 ~n := #in~n; 1212452#L25 assume !(~n <= 0); 1211664#L26 call #t~ret0 := fact(~n - 1);< 1212443#$Ultimate##0 ~n := #in~n; 1212442#L25 assume !(~n <= 0); 1211667#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211888#factFINAL assume true; 1211878#factEXIT >#66#return; 1211877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211870#factFINAL assume true; 1211862#factEXIT >#66#return; 1211866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211994#factFINAL assume true; 1211816#factEXIT >#70#return; 1211554#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1211960#$Ultimate##0 ~n := #in~n; 1212247#L25 assume !(~n <= 0); 1211666#L26 call #t~ret0 := fact(~n - 1);< 1211712#$Ultimate##0 ~n := #in~n; 1212166#L25 assume ~n <= 0;#res := 1; 1212158#factFINAL assume true; 1212151#factEXIT >#66#return; 1212149#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212145#factFINAL assume true; 1212087#factEXIT >#72#return; 1212102#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1212466#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1212464#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1212462#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1212058#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1212005#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1212035#$Ultimate##0 ~n := #in~n; 1212048#L25 assume !(~n <= 0); 1211639#L26 call #t~ret0 := fact(~n - 1);< 1212047#$Ultimate##0 ~n := #in~n; 1216946#L25 assume !(~n <= 0); 1211637#L26 call #t~ret0 := fact(~n - 1);< 1212836#$Ultimate##0 ~n := #in~n; 1212710#L25 assume !(~n <= 0); 1211654#L26 call #t~ret0 := fact(~n - 1);< 1211886#$Ultimate##0 ~n := #in~n; 1216654#L25 assume !(~n <= 0); 1211646#L26 call #t~ret0 := fact(~n - 1);< 1211677#$Ultimate##0 ~n := #in~n; 1217224#L25 assume !(~n <= 0); 1211643#L26 call #t~ret0 := fact(~n - 1);< 1211875#$Ultimate##0 ~n := #in~n; 1216642#L25 assume !(~n <= 0); 1211656#L26 call #t~ret0 := fact(~n - 1);< 1211711#$Ultimate##0 ~n := #in~n; 1212552#L25 assume !(~n <= 0); 1211641#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211888#factFINAL assume true; 1211878#factEXIT >#66#return; 1211877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211870#factFINAL assume true; 1211862#factEXIT >#66#return; 1211678#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211679#factFINAL assume true; 1211635#factEXIT >#66#return; 1211669#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1212046#factFINAL assume true; 1211998#factEXIT >#68#return; 1211613#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1211614#$Ultimate##0 ~n := #in~n; 1211993#L25 assume !(~n <= 0); 1211650#L26 call #t~ret0 := fact(~n - 1);< 1211673#$Ultimate##0 ~n := #in~n; 1212459#L25 assume !(~n <= 0); 1211648#L26 call #t~ret0 := fact(~n - 1);< 1211871#$Ultimate##0 ~n := #in~n; 1212455#L25 assume !(~n <= 0); 1211662#L26 call #t~ret0 := fact(~n - 1);< 1212305#$Ultimate##0 ~n := #in~n; 1212454#L25 assume !(~n <= 0); 1211661#L26 call #t~ret0 := fact(~n - 1);< 1212453#$Ultimate##0 ~n := #in~n; 1212452#L25 assume !(~n <= 0); 1211664#L26 call #t~ret0 := fact(~n - 1);< 1212443#$Ultimate##0 ~n := #in~n; 1212442#L25 assume !(~n <= 0); 1211667#L26 call #t~ret0 := fact(~n - 1);< 1211744#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211772#L25 assume !(~n <= 0); 1211653#L26 call #t~ret0 := fact(~n - 1);< 1211767#$Ultimate##0 ~n := #in~n; 1211774#L25 assume ~n <= 0;#res := 1; 1211770#factFINAL assume true; 1211763#factEXIT >#66#return; 1211760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211747#factFINAL assume true; 1211733#factEXIT >#66#return; 1211732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211729#factFINAL assume true; 1211715#factEXIT >#66#return; 1211713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211708#factFINAL assume true; 1211680#factEXIT >#66#return; 1211696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211921#factFINAL assume true; 1211913#factEXIT >#66#return; 1211912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211888#factFINAL assume true; 1211878#factEXIT >#66#return; 1211877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211870#factFINAL assume true; 1211862#factEXIT >#66#return; 1211678#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211679#factFINAL assume true; 1211635#factEXIT >#66#return; 1211634#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1211615#factFINAL assume true; 1211629#factEXIT >#70#return; 1211496#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1212249#$Ultimate##0 ~n := #in~n; 1212248#L25 assume ~n <= 0;#res := 1; 1211507#factFINAL assume true; 1211471#factEXIT >#72#return; 1211433#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1211434#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1211450#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1217296#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1217297#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1211455#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1211389#$Ultimate##0 ~n := #in~n; 1211454#L25 assume !(~n <= 0); 1211426#L26 call #t~ret0 := fact(~n - 1);< 1217329#$Ultimate##0 ~n := #in~n; 1211457#L25 assume !(~n <= 0); 1211425#L26 call #t~ret0 := fact(~n - 1);< 1211427#$Ultimate##0 ~n := #in~n; 1217447#L25 assume !(~n <= 0); 1211461#L26 call #t~ret0 := fact(~n - 1);< 1211460#$Ultimate##0 ~n := #in~n; 1211462#L25 assume !(~n <= 0); 1217358#L26 call #t~ret0 := fact(~n - 1);< 1217383#$Ultimate##0 ~n := #in~n; 1217446#L25 assume !(~n <= 0); 1217359#L26 call #t~ret0 := fact(~n - 1);< 1217387#$Ultimate##0 ~n := #in~n; 1217408#L25 assume !(~n <= 0); 1217320#L26 call #t~ret0 := fact(~n - 1);< 1217392#$Ultimate##0 ~n := #in~n; 1217407#L25 assume !(~n <= 0); 1217323#L26 call #t~ret0 := fact(~n - 1);< 1217347#$Ultimate##0 ~n := #in~n; 1217349#L25 assume !(~n <= 0); 1217326#L26 call #t~ret0 := fact(~n - 1);< 1217404#$Ultimate##0 ~n := #in~n; 1217400#L25 assume ~n <= 0;#res := 1; 1217405#factFINAL assume true; 1217401#factEXIT >#66#return; 1217399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217397#factFINAL assume true; 1217393#factEXIT >#66#return; 1217391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217330#factFINAL assume true; 1217316#factEXIT >#66#return; 1217328#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217389#factFINAL assume true; 1217386#factEXIT >#66#return; 1217385#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217384#factFINAL assume true; 1217381#factEXIT >#66#return; 1217380#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217379#factFINAL assume true; 1217377#factEXIT >#66#return; 1217376#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217375#factFINAL assume true; 1217373#factEXIT >#66#return; 1217372#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217371#factFINAL assume true; 1217369#factEXIT >#66#return; 1217370#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217449#factFINAL assume true; 1217448#factEXIT >#74#return; 1217306#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1217344#$Ultimate##0 ~n := #in~n; 1217345#L25 assume !(~n <= 0); 1217336#L26 call #t~ret0 := fact(~n - 1);< 1217334#$Ultimate##0 ~n := #in~n; 1217337#L25 assume !(~n <= 0); 1217333#L26 call #t~ret0 := fact(~n - 1);< 1217338#$Ultimate##0 ~n := #in~n; 1217332#L25 assume !(~n <= 0); 1217319#L26 call #t~ret0 := fact(~n - 1);< 1217342#$Ultimate##0 ~n := #in~n; 1217341#L25 assume !(~n <= 0); 1217321#L26 call #t~ret0 := fact(~n - 1);< 1217340#$Ultimate##0 ~n := #in~n; 1217339#L25 assume !(~n <= 0); 1217327#L26 call #t~ret0 := fact(~n - 1);< 1217331#$Ultimate##0 ~n := #in~n; 1217398#L25 assume !(~n <= 0); 1217394#L26 call #t~ret0 := fact(~n - 1);< 1217396#$Ultimate##0 ~n := #in~n; 1217400#L25 assume ~n <= 0;#res := 1; 1217405#factFINAL assume true; 1217401#factEXIT >#66#return; 1217399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217397#factFINAL assume true; 1217393#factEXIT >#66#return; 1217391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217330#factFINAL assume true; 1217316#factEXIT >#66#return; 1217328#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217389#factFINAL assume true; 1217386#factEXIT >#66#return; 1217385#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217384#factFINAL assume true; 1217381#factEXIT >#66#return; 1217380#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217379#factFINAL assume true; 1217377#factEXIT >#66#return; 1217378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1217304#factFINAL assume true; 1217313#factEXIT >#76#return; 1211393#L30-7 [2023-02-18 09:00:33,041 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 09:00:33,041 INFO L85 PathProgramCache]: Analyzing trace with hash -849063356, now seen corresponding path program 88 times [2023-02-18 09:00:33,041 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 09:00:33,041 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1204071288] [2023-02-18 09:00:33,041 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 09:00:33,041 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 09:00:33,072 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 09:00:33,073 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [276136831] [2023-02-18 09:00:33,073 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 09:00:33,073 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 09:00:33,073 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 09:00:33,075 INFO L229 MonitoredProcess]: Starting monitored process 308 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 09:00:33,076 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (308)] Waiting until timeout for monitored process [2023-02-18 09:00:34,635 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 09:00:34,636 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 09:00:34,647 INFO L263 TraceCheckSpWp]: Trace formula consists of 3046 conjuncts, 12 conjunts are in the unsatisfiable core [2023-02-18 09:00:34,655 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 09:00:34,724 INFO L134 CoverageAnalysis]: Checked inductivity of 121232 backedges. 60890 proven. 298 refuted. 0 times theorem prover too weak. 60044 trivial. 0 not checked. [2023-02-18 09:00:34,724 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 09:00:34,835 INFO L134 CoverageAnalysis]: Checked inductivity of 121232 backedges. 804 proven. 512 refuted. 0 times theorem prover too weak. 119916 trivial. 0 not checked. [2023-02-18 09:00:34,835 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 09:00:34,835 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1204071288] [2023-02-18 09:00:34,835 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 09:00:34,835 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [276136831] [2023-02-18 09:00:34,835 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [276136831] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 09:00:34,835 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 09:00:34,835 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 13] total 18 [2023-02-18 09:00:34,836 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [399231503] [2023-02-18 09:00:34,836 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 09:00:34,836 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 09:00:34,836 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 09:00:34,836 INFO L85 PathProgramCache]: Analyzing trace with hash 982139708, now seen corresponding path program 88 times [2023-02-18 09:00:34,836 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 09:00:34,836 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [756940410] [2023-02-18 09:00:34,836 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 09:00:34,836 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 09:00:34,865 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 09:00:34,865 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1399771431] [2023-02-18 09:00:34,865 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-18 09:00:34,865 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 09:00:34,866 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 09:00:34,868 INFO L229 MonitoredProcess]: Starting monitored process 309 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 09:00:34,869 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (309)] Waiting until timeout for monitored process [2023-02-18 09:00:36,251 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-18 09:00:36,251 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 09:00:36,262 INFO L263 TraceCheckSpWp]: Trace formula consists of 2414 conjuncts, 37 conjunts are in the unsatisfiable core [2023-02-18 09:00:36,268 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 09:00:36,425 INFO L134 CoverageAnalysis]: Checked inductivity of 95443 backedges. 18319 proven. 420 refuted. 0 times theorem prover too weak. 76704 trivial. 0 not checked. [2023-02-18 09:00:36,425 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 09:00:37,011 INFO L134 CoverageAnalysis]: Checked inductivity of 95443 backedges. 335 proven. 12842 refuted. 0 times theorem prover too weak. 82266 trivial. 0 not checked. [2023-02-18 09:00:37,011 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 09:00:37,011 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [756940410] [2023-02-18 09:00:37,011 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 09:00:37,011 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1399771431] [2023-02-18 09:00:37,011 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1399771431] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 09:00:37,011 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 09:00:37,011 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [23, 37] total 40 [2023-02-18 09:00:37,011 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [30764456] [2023-02-18 09:00:37,011 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 09:00:37,012 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-18 09:00:37,012 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-18 09:00:37,012 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 40 interpolants. [2023-02-18 09:00:37,012 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=223, Invalid=1337, Unknown=0, NotChecked=0, Total=1560 [2023-02-18 09:00:37,013 INFO L87 Difference]: Start difference. First operand 6064 states and 9660 transitions. cyclomatic complexity: 3637 Second operand has 40 states, 37 states have (on average 2.5135135135135136) internal successors, (93), 38 states have internal predecessors, (93), 22 states have call successors, (35), 2 states have call predecessors, (35), 18 states have return successors, (48), 19 states have call predecessors, (48), 22 states have call successors, (48) [2023-02-18 09:00:38,983 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-18 09:00:38,983 INFO L93 Difference]: Finished difference Result 6616 states and 10486 transitions. [2023-02-18 09:00:38,983 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 6616 states and 10486 transitions. [2023-02-18 09:00:39,019 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 426 [2023-02-18 09:00:39,208 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 6616 states to 6614 states and 10484 transitions. [2023-02-18 09:00:39,208 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 247 [2023-02-18 09:00:39,208 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 247 [2023-02-18 09:00:39,208 INFO L73 IsDeterministic]: Start isDeterministic. Operand 6614 states and 10484 transitions. [2023-02-18 09:00:39,208 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-18 09:00:39,208 INFO L218 hiAutomatonCegarLoop]: Abstraction has 6614 states and 10484 transitions. [2023-02-18 09:00:39,210 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 6614 states and 10484 transitions. [2023-02-18 09:00:39,276 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 6614 to 6070. [2023-02-18 09:00:39,281 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6070 states, 3717 states have (on average 1.0495022867904225) internal successors, (3901), 3675 states have internal predecessors, (3901), 1914 states have call successors, (1932), 692 states have call predecessors, (1932), 439 states have return successors, (3844), 1702 states have call predecessors, (3844), 1914 states have call successors, (3844) [2023-02-18 09:00:39,302 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6070 states to 6070 states and 9677 transitions. [2023-02-18 09:00:39,302 INFO L240 hiAutomatonCegarLoop]: Abstraction has 6070 states and 9677 transitions. [2023-02-18 09:00:39,302 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 37 states. [2023-02-18 09:00:39,303 INFO L428 stractBuchiCegarLoop]: Abstraction has 6070 states and 9677 transitions. [2023-02-18 09:00:39,303 INFO L335 stractBuchiCegarLoop]: ======== Iteration 101 ============ [2023-02-18 09:00:39,303 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 6070 states and 9677 transitions. [2023-02-18 09:00:39,317 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 343 [2023-02-18 09:00:39,317 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-18 09:00:39,317 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-18 09:00:39,323 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [221, 221, 150, 150, 150, 150, 71, 24, 23, 16, 16, 16, 16, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 7, 7, 7, 7, 5, 4, 4, 1, 1, 1, 1] [2023-02-18 09:00:39,323 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [193, 193, 163, 163, 163, 163, 30, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-18 09:00:39,323 INFO L748 eck$LassoCheckResult]: Stem: 1239475#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 1239430#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; 1239431#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 1239450#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; 1239476#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1245091#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1245090#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1239428#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1239429#$Ultimate##0 ~n := #in~n; 1244630#L25 assume ~n <= 0;#res := 1; 1244629#factFINAL assume true; 1244628#factEXIT >#68#return; 1239466#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1239467#$Ultimate##0 ~n := #in~n; 1244589#L25 assume ~n <= 0;#res := 1; 1244585#factFINAL assume true; 1244580#factEXIT >#70#return; 1239420#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1239421#$Ultimate##0 ~n := #in~n; 1245406#L25 assume ~n <= 0;#res := 1; 1245405#factFINAL assume true; 1245403#factEXIT >#72#return; 1245404#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1245419#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1245417#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1245414#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1239455#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1239456#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1245347#$Ultimate##0 ~n := #in~n; 1245355#L25 assume !(~n <= 0); 1245352#L26 call #t~ret0 := fact(~n - 1);< 1245353#$Ultimate##0 ~n := #in~n; 1245359#L25 assume ~n <= 0;#res := 1; 1245356#factFINAL assume true; 1245351#factEXIT >#66#return; 1245349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1245348#factFINAL assume true; 1245346#factEXIT >#74#return; 1245344#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1245345#$Ultimate##0 ~n := #in~n; 1245354#L25 assume ~n <= 0;#res := 1; 1245350#factFINAL assume true; 1245343#factEXIT >#76#return; 1245341#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1245342#$Ultimate##0 ~n := #in~n; 1245365#L25 assume !(~n <= 0); 1245362#L26 call #t~ret0 := fact(~n - 1);< 1245363#$Ultimate##0 ~n := #in~n; 1245366#L25 assume ~n <= 0;#res := 1; 1245364#factFINAL assume true; 1245361#factEXIT >#66#return; 1245360#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1245358#factFINAL assume true; 1245340#factEXIT >#78#return; 1245337#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1245333#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1245329#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1245326#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1245325#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1245323#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1245324#$Ultimate##0 ~n := #in~n; 1245338#L25 assume !(~n <= 0); 1245314#L26 call #t~ret0 := fact(~n - 1);< 1245319#$Ultimate##0 ~n := #in~n; 1245336#L25 assume !(~n <= 0); 1245316#L26 call #t~ret0 := fact(~n - 1);< 1245332#$Ultimate##0 ~n := #in~n; 1245335#L25 assume ~n <= 0;#res := 1; 1245334#factFINAL assume true; 1245331#factEXIT >#66#return; 1245330#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1245327#factFINAL assume true; 1245313#factEXIT >#66#return; 1245318#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1245407#factFINAL assume true; 1245322#factEXIT >#74#return; 1245304#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1245305#$Ultimate##0 ~n := #in~n; 1245320#L25 assume ~n <= 0;#res := 1; 1245311#factFINAL assume true; 1245303#factEXIT >#76#return; 1245294#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1245295#$Ultimate##0 ~n := #in~n; 1245328#L25 assume !(~n <= 0); 1245315#L26 call #t~ret0 := fact(~n - 1);< 1245319#$Ultimate##0 ~n := #in~n; 1245336#L25 assume !(~n <= 0); 1245316#L26 call #t~ret0 := fact(~n - 1);< 1245332#$Ultimate##0 ~n := #in~n; 1245335#L25 assume ~n <= 0;#res := 1; 1245334#factFINAL assume true; 1245331#factEXIT >#66#return; 1245330#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1245327#factFINAL assume true; 1245313#factEXIT >#66#return; 1245309#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1245302#factFINAL assume true; 1245293#factEXIT >#78#return; 1245289#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1245286#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1245282#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1245276#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1245271#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1245264#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1245265#$Ultimate##0 ~n := #in~n; 1245285#L25 assume !(~n <= 0); 1245280#L26 call #t~ret0 := fact(~n - 1);< 1245281#$Ultimate##0 ~n := #in~n; 1245301#L25 assume !(~n <= 0); 1245279#L26 call #t~ret0 := fact(~n - 1);< 1245292#$Ultimate##0 ~n := #in~n; 1245301#L25 assume !(~n <= 0); 1245279#L26 call #t~ret0 := fact(~n - 1);< 1245292#$Ultimate##0 ~n := #in~n; 1245312#L25 assume ~n <= 0;#res := 1; 1245308#factFINAL assume true; 1245300#factEXIT >#66#return; 1245299#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1245298#factFINAL assume true; 1245291#factEXIT >#66#return; 1245288#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1245284#factFINAL assume true; 1245278#factEXIT >#66#return; 1245275#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1245270#factFINAL assume true; 1245263#factEXIT >#74#return; 1245259#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1245260#$Ultimate##0 ~n := #in~n; 1245269#L25 assume ~n <= 0;#res := 1; 1245262#factFINAL assume true; 1245258#factEXIT >#76#return; 1239457#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1245256#$Ultimate##0 ~n := #in~n; 1245369#L25 assume !(~n <= 0); 1239415#L26 call #t~ret0 := fact(~n - 1);< 1245274#$Ultimate##0 ~n := #in~n; 1245310#L25 assume !(~n <= 0); 1239413#L26 call #t~ret0 := fact(~n - 1);< 1245297#$Ultimate##0 ~n := #in~n; 1245310#L25 assume !(~n <= 0); 1239413#L26 call #t~ret0 := fact(~n - 1);< 1245297#$Ultimate##0 ~n := #in~n; 1245307#L25 assume ~n <= 0;#res := 1; 1245306#factFINAL assume true; 1245296#factEXIT >#66#return; 1245290#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1245287#factFINAL assume true; 1245283#factEXIT >#66#return; 1245277#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1245273#factFINAL assume true; 1245266#factEXIT >#66#return; 1239419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239458#factFINAL assume true; 1245255#factEXIT >#78#return; 1245251#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1239433#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1245242#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1245233#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1239449#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1239442#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1239443#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1241633#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1241568#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1241572#$Ultimate##0 ~n := #in~n; 1241626#L25 assume !(~n <= 0); 1241612#L26 call #t~ret0 := fact(~n - 1);< 1241621#$Ultimate##0 ~n := #in~n; 1243981#L25 assume ~n <= 0;#res := 1; 1243978#factFINAL assume true; 1243895#factEXIT >#66#return; 1243905#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1245194#factFINAL assume true; 1241984#factEXIT >#68#return; 1241977#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1241471#$Ultimate##0 ~n := #in~n; 1241994#L25 assume ~n <= 0;#res := 1; 1241989#factFINAL assume true; 1241976#factEXIT >#70#return; 1241967#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1241974#$Ultimate##0 ~n := #in~n; 1241972#L25 assume !(~n <= 0); 1241608#L26 call #t~ret0 := fact(~n - 1);< 1241968#$Ultimate##0 ~n := #in~n; 1243981#L25 assume ~n <= 0;#res := 1; 1243978#factFINAL assume true; 1243895#factEXIT >#66#return; 1243900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1243961#factFINAL assume true; 1243960#factEXIT >#72#return; 1243955#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1243953#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1243952#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1243950#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1243949#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1243934#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1243948#$Ultimate##0 ~n := #in~n; 1244093#L25 assume !(~n <= 0); 1241604#L26 call #t~ret0 := fact(~n - 1);< 1241968#$Ultimate##0 ~n := #in~n; 1243981#L25 assume ~n <= 0;#res := 1; 1243978#factFINAL assume true; 1243895#factEXIT >#66#return; 1243904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1243999#factFINAL assume true; 1243947#factEXIT >#68#return; 1243868#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1243880#$Ultimate##0 ~n := #in~n; 1243973#L25 assume !(~n <= 0); 1243898#L26 call #t~ret0 := fact(~n - 1);< 1243906#$Ultimate##0 ~n := #in~n; 1243981#L25 assume ~n <= 0;#res := 1; 1243978#factFINAL assume true; 1243895#factEXIT >#66#return; 1243902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1243946#factFINAL assume true; 1243860#factEXIT >#70#return; 1243757#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1243766#$Ultimate##0 ~n := #in~n; 1243770#L25 assume ~n <= 0;#res := 1; 1243769#factFINAL assume true; 1243752#factEXIT >#72#return; 1243751#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1243749#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1243748#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1243746#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1243745#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1243740#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1243743#$Ultimate##0 ~n := #in~n; 1243767#L25 assume !(~n <= 0); 1241598#L26 call #t~ret0 := fact(~n - 1);< 1243750#$Ultimate##0 ~n := #in~n; 1244502#L25 assume !(~n <= 0); 1241605#L26 call #t~ret0 := fact(~n - 1);< 1241631#$Ultimate##0 ~n := #in~n; 1241634#L25 assume ~n <= 0;#res := 1; 1241632#factFINAL assume true; 1241628#factEXIT >#66#return; 1241627#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241622#factFINAL assume true; 1241577#factEXIT >#66#return; 1241619#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1243747#factFINAL assume true; 1243744#factEXIT >#74#return; 1243681#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1243736#$Ultimate##0 ~n := #in~n; 1243908#L25 assume !(~n <= 0); 1241586#L26 call #t~ret0 := fact(~n - 1);< 1241621#$Ultimate##0 ~n := #in~n; 1243981#L25 assume ~n <= 0;#res := 1; 1243978#factFINAL assume true; 1243895#factEXIT >#66#return; 1243894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1243847#factFINAL assume true; 1243669#factEXIT >#76#return; 1243675#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1243706#$Ultimate##0 ~n := #in~n; 1243986#L25 assume !(~n <= 0); 1243897#L26 call #t~ret0 := fact(~n - 1);< 1243906#$Ultimate##0 ~n := #in~n; 1243981#L25 assume ~n <= 0;#res := 1; 1243978#factFINAL assume true; 1243895#factEXIT >#66#return; 1243894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1243847#factFINAL assume true; 1243669#factEXIT >#78#return; 1243668#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1243666#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1243665#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1243664#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1243662#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1243449#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1243657#$Ultimate##0 ~n := #in~n; 1245158#L25 assume !(~n <= 0); 1243351#L26 call #t~ret0 := fact(~n - 1);< 1243844#$Ultimate##0 ~n := #in~n; 1244567#L25 assume !(~n <= 0); 1243801#L26 call #t~ret0 := fact(~n - 1);< 1243828#$Ultimate##0 ~n := #in~n; 1244567#L25 assume !(~n <= 0); 1243801#L26 call #t~ret0 := fact(~n - 1);< 1243828#$Ultimate##0 ~n := #in~n; 1243832#L25 assume ~n <= 0;#res := 1; 1243831#factFINAL assume true; 1243825#factEXIT >#66#return; 1243824#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1243818#factFINAL assume true; 1243798#factEXIT >#66#return; 1243815#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1243884#factFINAL assume true; 1243838#factEXIT >#66#return; 1243836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1243656#factFINAL assume true; 1243648#factEXIT >#74#return; 1242921#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1243646#$Ultimate##0 ~n := #in~n; 1243823#L25 assume !(~n <= 0); 1243352#L26 call #t~ret0 := fact(~n - 1);< 1243822#$Ultimate##0 ~n := #in~n; 1243830#L25 assume ~n <= 0;#res := 1; 1243375#factFINAL assume true; 1243348#factEXIT >#66#return; 1243260#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1243262#factFINAL assume true; 1243645#factEXIT >#76#return; 1242913#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1243456#$Ultimate##0 ~n := #in~n; 1244601#L25 assume !(~n <= 0); 1243353#L26 call #t~ret0 := fact(~n - 1);< 1244085#$Ultimate##0 ~n := #in~n; 1244028#L25 assume !(~n <= 0); 1243813#L26 call #t~ret0 := fact(~n - 1);< 1243930#$Ultimate##0 ~n := #in~n; 1243832#L25 assume ~n <= 0;#res := 1; 1243831#factFINAL assume true; 1243825#factEXIT >#66#return; 1243824#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1243818#factFINAL assume true; 1243798#factEXIT >#66#return; 1243796#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1242958#factFINAL assume true; 1242902#factEXIT >#78#return; 1242947#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1245198#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1244721#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1244720#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1244719#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1244718#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1244716#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1244714#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1241564#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1241572#$Ultimate##0 ~n := #in~n; 1241626#L25 assume !(~n <= 0); 1241612#L26 call #t~ret0 := fact(~n - 1);< 1241621#$Ultimate##0 ~n := #in~n; 1241642#L25 assume !(~n <= 0); 1241607#L26 call #t~ret0 := fact(~n - 1);< 1241639#$Ultimate##0 ~n := #in~n; 1241634#L25 assume ~n <= 0;#res := 1; 1241632#factFINAL assume true; 1241628#factEXIT >#66#return; 1241627#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241622#factFINAL assume true; 1241577#factEXIT >#66#return; 1241575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241573#factFINAL assume true; 1241562#factEXIT >#68#return; 1241570#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1241474#$Ultimate##0 ~n := #in~n; 1243112#L25 assume ~n <= 0;#res := 1; 1243110#factFINAL assume true; 1243099#factEXIT >#70#return; 1243089#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1243098#$Ultimate##0 ~n := #in~n; 1243118#L25 assume !(~n <= 0); 1241749#L26 call #t~ret0 := fact(~n - 1);< 1241780#$Ultimate##0 ~n := #in~n; 1241778#L25 assume !(~n <= 0); 1241772#L26 call #t~ret0 := fact(~n - 1);< 1241775#$Ultimate##0 ~n := #in~n; 1241779#L25 assume ~n <= 0;#res := 1; 1241776#factFINAL assume true; 1241771#factEXIT >#66#return; 1241770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241758#factFINAL assume true; 1241742#factEXIT >#66#return; 1241755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1243113#factFINAL assume true; 1243086#factEXIT >#72#return; 1243096#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1245005#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1245004#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1245002#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1245000#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1242038#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1243060#$Ultimate##0 ~n := #in~n; 1244713#L25 assume !(~n <= 0); 1241744#L26 call #t~ret0 := fact(~n - 1);< 1241780#$Ultimate##0 ~n := #in~n; 1241778#L25 assume !(~n <= 0); 1241772#L26 call #t~ret0 := fact(~n - 1);< 1241775#$Ultimate##0 ~n := #in~n; 1241779#L25 assume ~n <= 0;#res := 1; 1241776#factFINAL assume true; 1241771#factEXIT >#66#return; 1241770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241758#factFINAL assume true; 1241742#factEXIT >#66#return; 1241753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1243120#factFINAL assume true; 1243054#factEXIT >#68#return; 1243059#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1243018#$Ultimate##0 ~n := #in~n; 1243121#L25 assume !(~n <= 0); 1242122#L26 call #t~ret0 := fact(~n - 1);< 1242128#$Ultimate##0 ~n := #in~n; 1242137#L25 assume ~n <= 0;#res := 1; 1242133#factFINAL assume true; 1242120#factEXIT >#66#return; 1242126#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1243119#factFINAL assume true; 1243066#factEXIT >#70#return; 1243071#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1243018#$Ultimate##0 ~n := #in~n; 1243121#L25 assume !(~n <= 0); 1242122#L26 call #t~ret0 := fact(~n - 1);< 1242128#$Ultimate##0 ~n := #in~n; 1242137#L25 assume ~n <= 0;#res := 1; 1242133#factFINAL assume true; 1242120#factEXIT >#66#return; 1242126#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1243119#factFINAL assume true; 1243066#factEXIT >#72#return; 1243076#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1244997#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1244996#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1244994#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1244992#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1242029#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1243060#$Ultimate##0 ~n := #in~n; 1244713#L25 assume !(~n <= 0); 1241744#L26 call #t~ret0 := fact(~n - 1);< 1241780#$Ultimate##0 ~n := #in~n; 1241778#L25 assume !(~n <= 0); 1241772#L26 call #t~ret0 := fact(~n - 1);< 1241775#$Ultimate##0 ~n := #in~n; 1241779#L25 assume ~n <= 0;#res := 1; 1241776#factFINAL assume true; 1241771#factEXIT >#66#return; 1241770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241758#factFINAL assume true; 1241742#factEXIT >#66#return; 1241753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1243120#factFINAL assume true; 1243054#factEXIT >#68#return; 1241761#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1243053#$Ultimate##0 ~n := #in~n; 1245203#L25 assume !(~n <= 0); 1241717#L26 call #t~ret0 := fact(~n - 1);< 1241736#$Ultimate##0 ~n := #in~n; 1241777#L25 assume !(~n <= 0); 1241747#L26 call #t~ret0 := fact(~n - 1);< 1241774#$Ultimate##0 ~n := #in~n; 1241779#L25 assume ~n <= 0;#res := 1; 1241776#factFINAL assume true; 1241771#factEXIT >#66#return; 1241770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241758#factFINAL assume true; 1241742#factEXIT >#66#return; 1241754#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1243126#factFINAL assume true; 1243052#factEXIT >#70#return; 1243041#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1243050#$Ultimate##0 ~n := #in~n; 1243127#L25 assume ~n <= 0;#res := 1; 1243125#factFINAL assume true; 1243038#factEXIT >#72#return; 1243049#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1244989#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1244988#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1244986#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1244984#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1243028#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1244981#$Ultimate##0 ~n := #in~n; 1245011#L25 assume !(~n <= 0); 1244850#L26 call #t~ret0 := fact(~n - 1);< 1244952#$Ultimate##0 ~n := #in~n; 1245059#L25 assume !(~n <= 0); 1244854#L26 call #t~ret0 := fact(~n - 1);< 1245058#$Ultimate##0 ~n := #in~n; 1245059#L25 assume !(~n <= 0); 1244854#L26 call #t~ret0 := fact(~n - 1);< 1245058#$Ultimate##0 ~n := #in~n; 1244883#L25 assume ~n <= 0;#res := 1; 1245087#factFINAL assume true; 1244875#factEXIT >#66#return; 1244874#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1244872#factFINAL assume true; 1244834#factEXIT >#66#return; 1244857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1244974#factFINAL assume true; 1244970#factEXIT >#66#return; 1244973#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1245006#factFINAL assume true; 1244980#factEXIT >#74#return; 1244789#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1244979#$Ultimate##0 ~n := #in~n; 1245094#L25 assume !(~n <= 0); 1244845#L26 call #t~ret0 := fact(~n - 1);< 1244873#$Ultimate##0 ~n := #in~n; 1244886#L25 assume !(~n <= 0); 1244849#L26 call #t~ret0 := fact(~n - 1);< 1244882#$Ultimate##0 ~n := #in~n; 1244883#L25 assume ~n <= 0;#res := 1; 1245087#factFINAL assume true; 1244875#factEXIT >#66#return; 1244874#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1244872#factFINAL assume true; 1244834#factEXIT >#66#return; 1244856#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1245088#factFINAL assume true; 1244779#factEXIT >#76#return; 1244797#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1244978#$Ultimate##0 ~n := #in~n; 1245028#L25 assume !(~n <= 0); 1245016#L26 call #t~ret0 := fact(~n - 1);< 1245019#$Ultimate##0 ~n := #in~n; 1245041#L25 assume ~n <= 0;#res := 1; 1245038#factFINAL assume true; 1245014#factEXIT >#66#return; 1245012#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1244977#factFINAL assume true; 1244890#factEXIT >#78#return; 1241757#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1241741#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1241740#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1241738#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1241733#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1241694#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1241692#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1241691#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1241685#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1241687#$Ultimate##0 ~n := #in~n; 1241737#L25 assume !(~n <= 0); 1241724#L26 call #t~ret0 := fact(~n - 1);< 1241732#$Ultimate##0 ~n := #in~n; 1241783#L25 assume !(~n <= 0); 1241745#L26 call #t~ret0 := fact(~n - 1);< 1241774#$Ultimate##0 ~n := #in~n; 1241778#L25 assume !(~n <= 0); 1241772#L26 call #t~ret0 := fact(~n - 1);< 1241775#$Ultimate##0 ~n := #in~n; 1241779#L25 assume ~n <= 0;#res := 1; 1241776#factFINAL assume true; 1241771#factEXIT >#66#return; 1241770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241758#factFINAL assume true; 1241742#factEXIT >#66#return; 1241739#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241734#factFINAL assume true; 1241695#factEXIT >#66#return; 1241693#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241688#factFINAL assume true; 1241684#factEXIT >#68#return; 1241679#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1241682#$Ultimate##0 ~n := #in~n; 1241689#L25 assume ~n <= 0;#res := 1; 1241683#factFINAL assume true; 1241677#factEXIT >#70#return; 1240996#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1241675#$Ultimate##0 ~n := #in~n; 1245191#L25 assume !(~n <= 0); 1240978#L26 call #t~ret0 := fact(~n - 1);< 1240997#$Ultimate##0 ~n := #in~n; 1242142#L25 assume !(~n <= 0); 1240983#L26 call #t~ret0 := fact(~n - 1);< 1241075#$Ultimate##0 ~n := #in~n; 1242535#L25 assume !(~n <= 0); 1240962#L26 call #t~ret0 := fact(~n - 1);< 1241082#$Ultimate##0 ~n := #in~n; 1241088#L25 assume ~n <= 0;#res := 1; 1241086#factFINAL assume true; 1241080#factEXIT >#66#return; 1241078#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241068#factFINAL assume true; 1241001#factEXIT >#66#return; 1240999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240994#factFINAL assume true; 1240945#factEXIT >#66#return; 1240991#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241676#factFINAL assume true; 1241673#factEXIT >#72#return; 1241674#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1241793#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1241786#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1241784#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1241782#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1240865#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1240880#$Ultimate##0 ~n := #in~n; 1245187#L25 assume !(~n <= 0); 1240975#L26 call #t~ret0 := fact(~n - 1);< 1241025#$Ultimate##0 ~n := #in~n; 1245383#L25 assume !(~n <= 0); 1241013#L26 call #t~ret0 := fact(~n - 1);< 1241023#$Ultimate##0 ~n := #in~n; 1241210#L25 assume !(~n <= 0); 1241081#L26 call #t~ret0 := fact(~n - 1);< 1241084#$Ultimate##0 ~n := #in~n; 1241088#L25 assume ~n <= 0;#res := 1; 1241086#factFINAL assume true; 1241080#factEXIT >#66#return; 1241078#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241068#factFINAL assume true; 1241001#factEXIT >#66#return; 1240999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240994#factFINAL assume true; 1240945#factEXIT >#66#return; 1240990#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240879#factFINAL assume true; 1240859#factEXIT >#68#return; 1240869#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1240890#$Ultimate##0 ~n := #in~n; 1241042#L25 assume !(~n <= 0); 1240941#L26 call #t~ret0 := fact(~n - 1);< 1241041#$Ultimate##0 ~n := #in~n; 1241063#L25 assume ~n <= 0;#res := 1; 1241043#factFINAL assume true; 1241029#factEXIT >#66#return; 1241028#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241026#factFINAL assume true; 1240884#factEXIT >#70#return; 1240889#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1241065#$Ultimate##0 ~n := #in~n; 1241281#L25 assume !(~n <= 0); 1241002#L26 call #t~ret0 := fact(~n - 1);< 1241212#$Ultimate##0 ~n := #in~n; 1241210#L25 assume !(~n <= 0); 1241081#L26 call #t~ret0 := fact(~n - 1);< 1241084#$Ultimate##0 ~n := #in~n; 1241088#L25 assume ~n <= 0;#res := 1; 1241086#factFINAL assume true; 1241080#factEXIT >#66#return; 1241078#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241068#factFINAL assume true; 1241001#factEXIT >#66#return; 1241014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241064#factFINAL assume true; 1240892#factEXIT >#72#return; 1239446#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1239447#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1239461#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1240900#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1240897#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1240860#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1240880#$Ultimate##0 ~n := #in~n; 1245187#L25 assume !(~n <= 0); 1240975#L26 call #t~ret0 := fact(~n - 1);< 1241025#$Ultimate##0 ~n := #in~n; 1245383#L25 assume !(~n <= 0); 1241013#L26 call #t~ret0 := fact(~n - 1);< 1241023#$Ultimate##0 ~n := #in~n; 1241210#L25 assume !(~n <= 0); 1241081#L26 call #t~ret0 := fact(~n - 1);< 1241084#$Ultimate##0 ~n := #in~n; 1241088#L25 assume ~n <= 0;#res := 1; 1241086#factFINAL assume true; 1241080#factEXIT >#66#return; 1241078#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241068#factFINAL assume true; 1241001#factEXIT >#66#return; 1240999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240994#factFINAL assume true; 1240945#factEXIT >#66#return; 1240990#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240879#factFINAL assume true; 1240859#factEXIT >#68#return; 1240866#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1240894#$Ultimate##0 ~n := #in~n; 1245423#L25 assume !(~n <= 0); 1240979#L26 call #t~ret0 := fact(~n - 1);< 1241022#$Ultimate##0 ~n := #in~n; 1241205#L25 assume !(~n <= 0); 1241010#L26 call #t~ret0 := fact(~n - 1);< 1241023#$Ultimate##0 ~n := #in~n; 1241088#L25 assume ~n <= 0;#res := 1; 1241086#factFINAL assume true; 1241080#factEXIT >#66#return; 1241078#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241068#factFINAL assume true; 1241001#factEXIT >#66#return; 1241014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241064#factFINAL assume true; 1240892#factEXIT >#70#return; 1240885#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1240890#$Ultimate##0 ~n := #in~n; 1241042#L25 assume !(~n <= 0); 1240941#L26 call #t~ret0 := fact(~n - 1);< 1241041#$Ultimate##0 ~n := #in~n; 1241063#L25 assume ~n <= 0;#res := 1; 1241043#factFINAL assume true; 1241029#factEXIT >#66#return; 1241028#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241026#factFINAL assume true; 1240884#factEXIT >#72#return; 1240881#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1240882#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1240875#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1240876#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1240872#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1240863#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1240870#$Ultimate##0 ~n := #in~n; 1241522#L25 assume !(~n <= 0); 1240974#L26 call #t~ret0 := fact(~n - 1);< 1240992#$Ultimate##0 ~n := #in~n; 1241408#L25 assume !(~n <= 0); 1241012#L26 call #t~ret0 := fact(~n - 1);< 1241212#$Ultimate##0 ~n := #in~n; 1241210#L25 assume !(~n <= 0); 1241081#L26 call #t~ret0 := fact(~n - 1);< 1241084#$Ultimate##0 ~n := #in~n; 1241088#L25 assume ~n <= 0;#res := 1; 1241086#factFINAL assume true; 1241080#factEXIT >#66#return; 1241078#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241068#factFINAL assume true; 1241001#factEXIT >#66#return; 1240999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240994#factFINAL assume true; 1240945#factEXIT >#66#return; 1240990#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240879#factFINAL assume true; 1240859#factEXIT >#68#return; 1240856#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1240857#$Ultimate##0 ~n := #in~n; 1240993#L25 assume !(~n <= 0); 1240960#L26 call #t~ret0 := fact(~n - 1);< 1240992#$Ultimate##0 ~n := #in~n; 1241408#L25 assume !(~n <= 0); 1241012#L26 call #t~ret0 := fact(~n - 1);< 1241212#$Ultimate##0 ~n := #in~n; 1241210#L25 assume !(~n <= 0); 1241081#L26 call #t~ret0 := fact(~n - 1);< 1241084#$Ultimate##0 ~n := #in~n; 1241088#L25 assume ~n <= 0;#res := 1; 1241086#factFINAL assume true; 1241080#factEXIT >#66#return; 1241078#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241068#factFINAL assume true; 1241001#factEXIT >#66#return; 1240999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240994#factFINAL assume true; 1240945#factEXIT >#66#return; 1240944#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240942#factFINAL assume true; 1240854#factEXIT >#70#return; 1240850#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1240852#$Ultimate##0 ~n := #in~n; 1240940#L25 assume ~n <= 0;#res := 1; 1240938#factFINAL assume true; 1240848#factEXIT >#72#return; 1240845#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1240846#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1240832#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1240833#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1240827#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1240824#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1240825#$Ultimate##0 ~n := #in~n; 1245131#L25 assume !(~n <= 0); 1241167#L26 call #t~ret0 := fact(~n - 1);< 1241363#$Ultimate##0 ~n := #in~n; 1241369#L25 assume !(~n <= 0); 1241166#L26 call #t~ret0 := fact(~n - 1);< 1241366#$Ultimate##0 ~n := #in~n; 1241369#L25 assume !(~n <= 0); 1241166#L26 call #t~ret0 := fact(~n - 1);< 1241366#$Ultimate##0 ~n := #in~n; 1241369#L25 assume !(~n <= 0); 1241166#L26 call #t~ret0 := fact(~n - 1);< 1241366#$Ultimate##0 ~n := #in~n; 1241410#L25 assume ~n <= 0;#res := 1; 1241409#factFINAL assume true; 1241304#factEXIT >#66#return; 1241301#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241229#factFINAL assume true; 1241196#factEXIT >#66#return; 1241195#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241189#factFINAL assume true; 1241157#factEXIT >#66#return; 1241184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241552#factFINAL assume true; 1241476#factEXIT >#66#return; 1241359#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1244722#factFINAL assume true; 1240823#factEXIT >#74#return; 1240813#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1240821#$Ultimate##0 ~n := #in~n; 1243021#L25 assume !(~n <= 0); 1241174#L26 call #t~ret0 := fact(~n - 1);< 1241188#$Ultimate##0 ~n := #in~n; 1243474#L25 assume !(~n <= 0); 1241199#L26 call #t~ret0 := fact(~n - 1);< 1241204#$Ultimate##0 ~n := #in~n; 1241308#L25 assume !(~n <= 0); 1241305#L26 call #t~ret0 := fact(~n - 1);< 1241307#$Ultimate##0 ~n := #in~n; 1241410#L25 assume ~n <= 0;#res := 1; 1241409#factFINAL assume true; 1241304#factEXIT >#66#return; 1241301#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241229#factFINAL assume true; 1241196#factEXIT >#66#return; 1241195#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241189#factFINAL assume true; 1241157#factEXIT >#66#return; 1241156#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241146#factFINAL assume true; 1240806#factEXIT >#76#return; 1240794#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1240797#$Ultimate##0 ~n := #in~n; 1245106#L25 assume !(~n <= 0); 1245098#L26 call #t~ret0 := fact(~n - 1);< 1245102#$Ultimate##0 ~n := #in~n; 1241331#L25 assume ~n <= 0;#res := 1; 1245105#factFINAL assume true; 1245097#factEXIT >#66#return; 1245100#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240803#factFINAL assume true; 1240793#factEXIT >#78#return; 1240796#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1244823#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1244822#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1244821#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1244819#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1244817#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1244818#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1241152#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1239896#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1240424#$Ultimate##0 ~n := #in~n; 1240423#L25 assume !(~n <= 0); 1239877#L26 call #t~ret0 := fact(~n - 1);< 1239892#$Ultimate##0 ~n := #in~n; 1240937#L25 assume !(~n <= 0); 1239910#L26 call #t~ret0 := fact(~n - 1);< 1239917#$Ultimate##0 ~n := #in~n; 1241527#L25 assume !(~n <= 0); 1239955#L26 call #t~ret0 := fact(~n - 1);< 1239965#$Ultimate##0 ~n := #in~n; 1241090#L25 assume !(~n <= 0); 1240005#L26 call #t~ret0 := fact(~n - 1);< 1240014#$Ultimate##0 ~n := #in~n; 1240628#L25 assume !(~n <= 0); 1240142#L26 call #t~ret0 := fact(~n - 1);< 1240144#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240782#factFINAL assume true; 1240779#factEXIT >#68#return; 1240508#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1240519#$Ultimate##0 ~n := #in~n; 1240547#L25 assume ~n <= 0;#res := 1; 1240546#factFINAL assume true; 1240506#factEXIT >#70#return; 1240250#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1240595#$Ultimate##0 ~n := #in~n; 1240593#L25 assume !(~n <= 0); 1239628#L26 call #t~ret0 := fact(~n - 1);< 1240223#$Ultimate##0 ~n := #in~n; 1240626#L25 assume !(~n <= 0); 1239631#L26 call #t~ret0 := fact(~n - 1);< 1240253#$Ultimate##0 ~n := #in~n; 1244512#L25 assume !(~n <= 0); 1239629#L26 call #t~ret0 := fact(~n - 1);< 1239922#$Ultimate##0 ~n := #in~n; 1245426#L25 assume !(~n <= 0); 1239632#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239888#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1241297#factFINAL assume true; 1240777#factEXIT >#72#return; 1240503#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1245381#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1245380#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1245379#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1241060#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1239852#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1239866#$Ultimate##0 ~n := #in~n; 1239903#L25 assume !(~n <= 0); 1239884#L26 call #t~ret0 := fact(~n - 1);< 1239892#$Ultimate##0 ~n := #in~n; 1240937#L25 assume !(~n <= 0); 1239910#L26 call #t~ret0 := fact(~n - 1);< 1239917#$Ultimate##0 ~n := #in~n; 1241527#L25 assume !(~n <= 0); 1239955#L26 call #t~ret0 := fact(~n - 1);< 1239965#$Ultimate##0 ~n := #in~n; 1241090#L25 assume !(~n <= 0); 1240005#L26 call #t~ret0 := fact(~n - 1);< 1240014#$Ultimate##0 ~n := #in~n; 1240628#L25 assume !(~n <= 0); 1240142#L26 call #t~ret0 := fact(~n - 1);< 1240144#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239868#factFINAL assume true; 1239847#factEXIT >#68#return; 1239862#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1239996#$Ultimate##0 ~n := #in~n; 1240943#L25 assume !(~n <= 0); 1239519#L26 call #t~ret0 := fact(~n - 1);< 1240025#$Ultimate##0 ~n := #in~n; 1240138#L25 assume ~n <= 0;#res := 1; 1240039#factFINAL assume true; 1240022#factEXIT >#66#return; 1240020#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239995#factFINAL assume true; 1239930#factEXIT >#70#return; 1239944#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1240656#$Ultimate##0 ~n := #in~n; 1240655#L25 assume !(~n <= 0); 1239911#L26 call #t~ret0 := fact(~n - 1);< 1240652#$Ultimate##0 ~n := #in~n; 1240651#L25 assume !(~n <= 0); 1239954#L26 call #t~ret0 := fact(~n - 1);< 1240648#$Ultimate##0 ~n := #in~n; 1240646#L25 assume !(~n <= 0); 1240006#L26 call #t~ret0 := fact(~n - 1);< 1240143#$Ultimate##0 ~n := #in~n; 1240628#L25 assume !(~n <= 0); 1240142#L26 call #t~ret0 := fact(~n - 1);< 1240144#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240018#factFINAL assume true; 1239967#factEXIT >#72#return; 1239978#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1240584#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1240429#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1240428#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1240427#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1239851#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1239866#$Ultimate##0 ~n := #in~n; 1239903#L25 assume !(~n <= 0); 1239884#L26 call #t~ret0 := fact(~n - 1);< 1239892#$Ultimate##0 ~n := #in~n; 1240937#L25 assume !(~n <= 0); 1239910#L26 call #t~ret0 := fact(~n - 1);< 1239917#$Ultimate##0 ~n := #in~n; 1241527#L25 assume !(~n <= 0); 1239955#L26 call #t~ret0 := fact(~n - 1);< 1239965#$Ultimate##0 ~n := #in~n; 1241090#L25 assume !(~n <= 0); 1240005#L26 call #t~ret0 := fact(~n - 1);< 1240014#$Ultimate##0 ~n := #in~n; 1240628#L25 assume !(~n <= 0); 1240142#L26 call #t~ret0 := fact(~n - 1);< 1240144#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239868#factFINAL assume true; 1239847#factEXIT >#68#return; 1239861#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1240425#$Ultimate##0 ~n := #in~n; 1240614#L25 assume !(~n <= 0); 1239634#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240012#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240430#factFINAL assume true; 1240101#factEXIT >#70#return; 1240000#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1240409#$Ultimate##0 ~n := #in~n; 1240408#L25 assume !(~n <= 0); 1239958#L26 call #t~ret0 := fact(~n - 1);< 1239965#$Ultimate##0 ~n := #in~n; 1241090#L25 assume !(~n <= 0); 1240005#L26 call #t~ret0 := fact(~n - 1);< 1240014#$Ultimate##0 ~n := #in~n; 1240628#L25 assume !(~n <= 0); 1240142#L26 call #t~ret0 := fact(~n - 1);< 1240144#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239964#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240431#factFINAL assume true; 1240119#factEXIT >#72#return; 1240128#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1240422#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1240421#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1240419#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1240418#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1239849#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1239866#$Ultimate##0 ~n := #in~n; 1239903#L25 assume !(~n <= 0); 1239884#L26 call #t~ret0 := fact(~n - 1);< 1239892#$Ultimate##0 ~n := #in~n; 1240937#L25 assume !(~n <= 0); 1239910#L26 call #t~ret0 := fact(~n - 1);< 1239917#$Ultimate##0 ~n := #in~n; 1241527#L25 assume !(~n <= 0); 1239955#L26 call #t~ret0 := fact(~n - 1);< 1239965#$Ultimate##0 ~n := #in~n; 1241090#L25 assume !(~n <= 0); 1240005#L26 call #t~ret0 := fact(~n - 1);< 1240014#$Ultimate##0 ~n := #in~n; 1240628#L25 assume !(~n <= 0); 1240142#L26 call #t~ret0 := fact(~n - 1);< 1240144#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239868#factFINAL assume true; 1239847#factEXIT >#68#return; 1239830#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1239844#$Ultimate##0 ~n := #in~n; 1240759#L25 assume !(~n <= 0); 1239657#L26 call #t~ret0 := fact(~n - 1);< 1239922#$Ultimate##0 ~n := #in~n; 1245426#L25 assume !(~n <= 0); 1239632#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239964#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240431#factFINAL assume true; 1240119#factEXIT >#70#return; 1240029#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1240117#$Ultimate##0 ~n := #in~n; 1240778#L25 assume !(~n <= 0); 1240007#L26 call #t~ret0 := fact(~n - 1);< 1240030#$Ultimate##0 ~n := #in~n; 1240610#L25 assume !(~n <= 0); 1240008#L26 call #t~ret0 := fact(~n - 1);< 1240143#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240012#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240430#factFINAL assume true; 1240101#factEXIT >#72#return; 1240099#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1240052#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1240051#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1240026#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1240021#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1239855#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1239866#$Ultimate##0 ~n := #in~n; 1239903#L25 assume !(~n <= 0); 1239884#L26 call #t~ret0 := fact(~n - 1);< 1239892#$Ultimate##0 ~n := #in~n; 1240937#L25 assume !(~n <= 0); 1239910#L26 call #t~ret0 := fact(~n - 1);< 1239917#$Ultimate##0 ~n := #in~n; 1241527#L25 assume !(~n <= 0); 1239955#L26 call #t~ret0 := fact(~n - 1);< 1239965#$Ultimate##0 ~n := #in~n; 1241090#L25 assume !(~n <= 0); 1240005#L26 call #t~ret0 := fact(~n - 1);< 1240014#$Ultimate##0 ~n := #in~n; 1240628#L25 assume !(~n <= 0); 1240142#L26 call #t~ret0 := fact(~n - 1);< 1240144#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239868#factFINAL assume true; 1239847#factEXIT >#68#return; 1239821#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1239844#$Ultimate##0 ~n := #in~n; 1240759#L25 assume !(~n <= 0); 1239657#L26 call #t~ret0 := fact(~n - 1);< 1239922#$Ultimate##0 ~n := #in~n; 1245426#L25 assume !(~n <= 0); 1239632#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240018#factFINAL assume true; 1239967#factEXIT >#70#return; 1239932#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1239951#$Ultimate##0 ~n := #in~n; 1240642#L25 assume !(~n <= 0); 1240009#L26 call #t~ret0 := fact(~n - 1);< 1240636#$Ultimate##0 ~n := #in~n; 1240138#L25 assume ~n <= 0;#res := 1; 1240039#factFINAL assume true; 1240022#factEXIT >#66#return; 1240020#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239995#factFINAL assume true; 1239930#factEXIT >#72#return; 1239919#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1239904#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1239900#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1239893#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1239869#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1239856#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1239866#$Ultimate##0 ~n := #in~n; 1239903#L25 assume !(~n <= 0); 1239884#L26 call #t~ret0 := fact(~n - 1);< 1239892#$Ultimate##0 ~n := #in~n; 1240937#L25 assume !(~n <= 0); 1239910#L26 call #t~ret0 := fact(~n - 1);< 1239917#$Ultimate##0 ~n := #in~n; 1241527#L25 assume !(~n <= 0); 1239955#L26 call #t~ret0 := fact(~n - 1);< 1239965#$Ultimate##0 ~n := #in~n; 1241090#L25 assume !(~n <= 0); 1240005#L26 call #t~ret0 := fact(~n - 1);< 1240014#$Ultimate##0 ~n := #in~n; 1240628#L25 assume !(~n <= 0); 1240142#L26 call #t~ret0 := fact(~n - 1);< 1240144#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239868#factFINAL assume true; 1239847#factEXIT >#68#return; 1239822#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1239844#$Ultimate##0 ~n := #in~n; 1240759#L25 assume !(~n <= 0); 1239657#L26 call #t~ret0 := fact(~n - 1);< 1239922#$Ultimate##0 ~n := #in~n; 1245426#L25 assume !(~n <= 0); 1239632#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239845#factFINAL assume true; 1239815#factEXIT >#70#return; 1239503#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1239814#$Ultimate##0 ~n := #in~n; 1240643#L25 assume ~n <= 0;#res := 1; 1239517#factFINAL assume true; 1239480#factEXIT >#72#return; 1239513#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1239812#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1239810#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1239808#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1239805#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1239688#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1239804#$Ultimate##0 ~n := #in~n; 1239803#L25 assume !(~n <= 0); 1239707#L26 call #t~ret0 := fact(~n - 1);< 1239802#$Ultimate##0 ~n := #in~n; 1239800#L25 assume !(~n <= 0); 1239706#L26 call #t~ret0 := fact(~n - 1);< 1239798#$Ultimate##0 ~n := #in~n; 1239796#L25 assume !(~n <= 0); 1239708#L26 call #t~ret0 := fact(~n - 1);< 1239794#$Ultimate##0 ~n := #in~n; 1239792#L25 assume !(~n <= 0); 1239711#L26 call #t~ret0 := fact(~n - 1);< 1239758#$Ultimate##0 ~n := #in~n; 1239788#L25 assume !(~n <= 0); 1239712#L26 call #t~ret0 := fact(~n - 1);< 1239782#$Ultimate##0 ~n := #in~n; 1239788#L25 assume !(~n <= 0); 1239712#L26 call #t~ret0 := fact(~n - 1);< 1239782#$Ultimate##0 ~n := #in~n; 1239788#L25 assume !(~n <= 0); 1239712#L26 call #t~ret0 := fact(~n - 1);< 1239782#$Ultimate##0 ~n := #in~n; 1239788#L25 assume !(~n <= 0); 1239712#L26 call #t~ret0 := fact(~n - 1);< 1239782#$Ultimate##0 ~n := #in~n; 1239779#L25 assume ~n <= 0;#res := 1; 1239787#factFINAL assume true; 1239780#factEXIT >#66#return; 1239778#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239774#factFINAL assume true; 1239770#factEXIT >#66#return; 1239769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239768#factFINAL assume true; 1239763#factEXIT >#66#return; 1239762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239761#factFINAL assume true; 1239755#factEXIT >#66#return; 1239753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239750#factFINAL assume true; 1239744#factEXIT >#66#return; 1239743#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239741#factFINAL assume true; 1239736#factEXIT >#66#return; 1239735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239732#factFINAL assume true; 1239728#factEXIT >#66#return; 1239727#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239724#factFINAL assume true; 1239701#factEXIT >#66#return; 1239699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239696#factFINAL assume true; 1239697#factEXIT >#74#return; 1239681#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1239754#$Ultimate##0 ~n := #in~n; 1239752#L25 assume !(~n <= 0); 1239729#L26 call #t~ret0 := fact(~n - 1);< 1239734#$Ultimate##0 ~n := #in~n; 1239742#L25 assume !(~n <= 0); 1239737#L26 call #t~ret0 := fact(~n - 1);< 1239740#$Ultimate##0 ~n := #in~n; 1239749#L25 assume !(~n <= 0); 1239745#L26 call #t~ret0 := fact(~n - 1);< 1239748#$Ultimate##0 ~n := #in~n; 1239760#L25 assume !(~n <= 0); 1239756#L26 call #t~ret0 := fact(~n - 1);< 1239759#$Ultimate##0 ~n := #in~n; 1239767#L25 assume !(~n <= 0); 1239764#L26 call #t~ret0 := fact(~n - 1);< 1239766#$Ultimate##0 ~n := #in~n; 1239777#L25 assume !(~n <= 0); 1239771#L26 call #t~ret0 := fact(~n - 1);< 1239773#$Ultimate##0 ~n := #in~n; 1239779#L25 assume ~n <= 0;#res := 1; 1239787#factFINAL assume true; 1239780#factEXIT >#66#return; 1239778#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239774#factFINAL assume true; 1239770#factEXIT >#66#return; 1239769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239768#factFINAL assume true; 1239763#factEXIT >#66#return; 1239762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239761#factFINAL assume true; 1239755#factEXIT >#66#return; 1239753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239750#factFINAL assume true; 1239744#factEXIT >#66#return; 1239743#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239741#factFINAL assume true; 1239736#factEXIT >#66#return; 1239738#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240698#factFINAL assume true; 1240697#factEXIT >#76#return; 1239436#L30-7 [2023-02-18 09:00:39,323 INFO L750 eck$LassoCheckResult]: Loop: 1239436#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1240044#$Ultimate##0 ~n := #in~n; 1240042#L25 assume !(~n <= 0); 1239409#L26 call #t~ret0 := fact(~n - 1);< 1239437#$Ultimate##0 ~n := #in~n; 1239462#L25 assume ~n <= 0;#res := 1; 1239422#factFINAL assume true; 1239407#factEXIT >#66#return; 1239410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240545#factFINAL assume true; 1240539#factEXIT >#78#return; 1240537#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1240535#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 1240533#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1240531#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1240529#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1240527#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1240525#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1240524#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1240522#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1240523#$Ultimate##0 ~n := #in~n; 1240549#L25 assume !(~n <= 0); 1239637#L26 call #t~ret0 := fact(~n - 1);< 1239678#$Ultimate##0 ~n := #in~n; 1240709#L25 assume !(~n <= 0); 1239636#L26 call #t~ret0 := fact(~n - 1);< 1240708#$Ultimate##0 ~n := #in~n; 1240707#L25 assume !(~n <= 0); 1239638#L26 call #t~ret0 := fact(~n - 1);< 1240691#$Ultimate##0 ~n := #in~n; 1240690#L25 assume !(~n <= 0); 1239640#L26 call #t~ret0 := fact(~n - 1);< 1240223#$Ultimate##0 ~n := #in~n; 1240626#L25 assume !(~n <= 0); 1239631#L26 call #t~ret0 := fact(~n - 1);< 1240253#$Ultimate##0 ~n := #in~n; 1244512#L25 assume !(~n <= 0); 1239629#L26 call #t~ret0 := fact(~n - 1);< 1239922#$Ultimate##0 ~n := #in~n; 1245426#L25 assume !(~n <= 0); 1239632#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240282#factFINAL assume true; 1240266#factEXIT >#66#return; 1240264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240246#factFINAL assume true; 1240208#factEXIT >#66#return; 1240213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240354#factFINAL assume true; 1240351#factEXIT >#66#return; 1239661#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240526#factFINAL assume true; 1240520#factEXIT >#68#return; 1240511#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1240519#$Ultimate##0 ~n := #in~n; 1240547#L25 assume ~n <= 0;#res := 1; 1240546#factFINAL assume true; 1240506#factEXIT >#70#return; 1239677#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1240505#$Ultimate##0 ~n := #in~n; 1240617#L25 assume !(~n <= 0); 1239648#L26 call #t~ret0 := fact(~n - 1);< 1239678#$Ultimate##0 ~n := #in~n; 1240709#L25 assume !(~n <= 0); 1239636#L26 call #t~ret0 := fact(~n - 1);< 1240708#$Ultimate##0 ~n := #in~n; 1240707#L25 assume !(~n <= 0); 1239638#L26 call #t~ret0 := fact(~n - 1);< 1240691#$Ultimate##0 ~n := #in~n; 1240690#L25 assume !(~n <= 0); 1239640#L26 call #t~ret0 := fact(~n - 1);< 1240223#$Ultimate##0 ~n := #in~n; 1240626#L25 assume !(~n <= 0); 1239631#L26 call #t~ret0 := fact(~n - 1);< 1240253#$Ultimate##0 ~n := #in~n; 1244512#L25 assume !(~n <= 0); 1239629#L26 call #t~ret0 := fact(~n - 1);< 1239922#$Ultimate##0 ~n := #in~n; 1245426#L25 assume !(~n <= 0); 1239632#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240282#factFINAL assume true; 1240266#factEXIT >#66#return; 1240264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240246#factFINAL assume true; 1240208#factEXIT >#66#return; 1240213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240354#factFINAL assume true; 1240351#factEXIT >#66#return; 1239660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240553#factFINAL assume true; 1240495#factEXIT >#72#return; 1240494#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1240492#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1240490#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1240488#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1240486#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1240074#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1240098#$Ultimate##0 ~n := #in~n; 1240420#L25 assume !(~n <= 0); 1239647#L26 call #t~ret0 := fact(~n - 1);< 1239678#$Ultimate##0 ~n := #in~n; 1240709#L25 assume !(~n <= 0); 1239636#L26 call #t~ret0 := fact(~n - 1);< 1240708#$Ultimate##0 ~n := #in~n; 1240707#L25 assume !(~n <= 0); 1239638#L26 call #t~ret0 := fact(~n - 1);< 1240691#$Ultimate##0 ~n := #in~n; 1240690#L25 assume !(~n <= 0); 1239640#L26 call #t~ret0 := fact(~n - 1);< 1240223#$Ultimate##0 ~n := #in~n; 1240626#L25 assume !(~n <= 0); 1239631#L26 call #t~ret0 := fact(~n - 1);< 1240253#$Ultimate##0 ~n := #in~n; 1244512#L25 assume !(~n <= 0); 1239629#L26 call #t~ret0 := fact(~n - 1);< 1239922#$Ultimate##0 ~n := #in~n; 1245426#L25 assume !(~n <= 0); 1239632#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240282#factFINAL assume true; 1240266#factEXIT >#66#return; 1240264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240246#factFINAL assume true; 1240208#factEXIT >#66#return; 1240213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240354#factFINAL assume true; 1240351#factEXIT >#66#return; 1239663#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240417#factFINAL assume true; 1240053#factEXIT >#68#return; 1239505#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1240485#$Ultimate##0 ~n := #in~n; 1239518#L25 assume !(~n <= 0); 1239519#L26 call #t~ret0 := fact(~n - 1);< 1240025#$Ultimate##0 ~n := #in~n; 1240138#L25 assume ~n <= 0;#res := 1; 1240039#factFINAL assume true; 1240022#factEXIT >#66#return; 1240020#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239995#factFINAL assume true; 1239930#factEXIT >#70#return; 1239522#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1240203#$Ultimate##0 ~n := #in~n; 1240350#L25 assume !(~n <= 0); 1239627#L26 call #t~ret0 := fact(~n - 1);< 1240223#$Ultimate##0 ~n := #in~n; 1240626#L25 assume !(~n <= 0); 1239631#L26 call #t~ret0 := fact(~n - 1);< 1240253#$Ultimate##0 ~n := #in~n; 1244512#L25 assume !(~n <= 0); 1239629#L26 call #t~ret0 := fact(~n - 1);< 1239922#$Ultimate##0 ~n := #in~n; 1245426#L25 assume !(~n <= 0); 1239632#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240282#factFINAL assume true; 1240266#factEXIT >#66#return; 1240254#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240220#factFINAL assume true; 1239520#factEXIT >#72#return; 1239585#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1240484#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1240482#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1240480#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1240478#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1240077#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1240098#$Ultimate##0 ~n := #in~n; 1240420#L25 assume !(~n <= 0); 1239647#L26 call #t~ret0 := fact(~n - 1);< 1239678#$Ultimate##0 ~n := #in~n; 1240709#L25 assume !(~n <= 0); 1239636#L26 call #t~ret0 := fact(~n - 1);< 1240708#$Ultimate##0 ~n := #in~n; 1240707#L25 assume !(~n <= 0); 1239638#L26 call #t~ret0 := fact(~n - 1);< 1240691#$Ultimate##0 ~n := #in~n; 1240690#L25 assume !(~n <= 0); 1239640#L26 call #t~ret0 := fact(~n - 1);< 1240223#$Ultimate##0 ~n := #in~n; 1240626#L25 assume !(~n <= 0); 1239631#L26 call #t~ret0 := fact(~n - 1);< 1240253#$Ultimate##0 ~n := #in~n; 1244512#L25 assume !(~n <= 0); 1239629#L26 call #t~ret0 := fact(~n - 1);< 1239922#$Ultimate##0 ~n := #in~n; 1245426#L25 assume !(~n <= 0); 1239632#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240282#factFINAL assume true; 1240266#factEXIT >#66#return; 1240264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240246#factFINAL assume true; 1240208#factEXIT >#66#return; 1240213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240354#factFINAL assume true; 1240351#factEXIT >#66#return; 1239663#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240417#factFINAL assume true; 1240053#factEXIT >#68#return; 1239502#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1240476#$Ultimate##0 ~n := #in~n; 1240639#L25 assume !(~n <= 0); 1240010#L26 call #t~ret0 := fact(~n - 1);< 1240629#$Ultimate##0 ~n := #in~n; 1240628#L25 assume !(~n <= 0); 1240142#L26 call #t~ret0 := fact(~n - 1);< 1240144#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240012#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240430#factFINAL assume true; 1240101#factEXIT >#70#return; 1239539#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1240205#$Ultimate##0 ~n := #in~n; 1240260#L25 assume !(~n <= 0); 1239642#L26 call #t~ret0 := fact(~n - 1);< 1240223#$Ultimate##0 ~n := #in~n; 1240626#L25 assume !(~n <= 0); 1239631#L26 call #t~ret0 := fact(~n - 1);< 1240253#$Ultimate##0 ~n := #in~n; 1244512#L25 assume !(~n <= 0); 1239629#L26 call #t~ret0 := fact(~n - 1);< 1239922#$Ultimate##0 ~n := #in~n; 1245426#L25 assume !(~n <= 0); 1239632#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240282#factFINAL assume true; 1240266#factEXIT >#66#return; 1240254#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240220#factFINAL assume true; 1239520#factEXIT >#72#return; 1239599#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1240474#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1240473#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1240472#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1240471#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1240065#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1240098#$Ultimate##0 ~n := #in~n; 1240420#L25 assume !(~n <= 0); 1239647#L26 call #t~ret0 := fact(~n - 1);< 1239678#$Ultimate##0 ~n := #in~n; 1240709#L25 assume !(~n <= 0); 1239636#L26 call #t~ret0 := fact(~n - 1);< 1240708#$Ultimate##0 ~n := #in~n; 1240707#L25 assume !(~n <= 0); 1239638#L26 call #t~ret0 := fact(~n - 1);< 1240691#$Ultimate##0 ~n := #in~n; 1240690#L25 assume !(~n <= 0); 1239640#L26 call #t~ret0 := fact(~n - 1);< 1240223#$Ultimate##0 ~n := #in~n; 1240626#L25 assume !(~n <= 0); 1239631#L26 call #t~ret0 := fact(~n - 1);< 1240253#$Ultimate##0 ~n := #in~n; 1244512#L25 assume !(~n <= 0); 1239629#L26 call #t~ret0 := fact(~n - 1);< 1239922#$Ultimate##0 ~n := #in~n; 1245426#L25 assume !(~n <= 0); 1239632#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240282#factFINAL assume true; 1240266#factEXIT >#66#return; 1240264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240246#factFINAL assume true; 1240208#factEXIT >#66#return; 1240213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240354#factFINAL assume true; 1240351#factEXIT >#66#return; 1239663#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240417#factFINAL assume true; 1240053#factEXIT >#68#return; 1239498#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1240050#$Ultimate##0 ~n := #in~n; 1240047#L25 assume !(~n <= 0); 1239635#L26 call #t~ret0 := fact(~n - 1);< 1239929#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239964#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240431#factFINAL assume true; 1240119#factEXIT >#70#return; 1239569#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1240204#$Ultimate##0 ~n := #in~n; 1240259#L25 assume !(~n <= 0); 1239645#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240282#factFINAL assume true; 1240266#factEXIT >#66#return; 1240264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240246#factFINAL assume true; 1240208#factEXIT >#66#return; 1240214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240202#factFINAL assume true; 1240160#factEXIT >#72#return; 1239594#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1240467#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1240465#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1240464#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1240463#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1240088#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1240098#$Ultimate##0 ~n := #in~n; 1240420#L25 assume !(~n <= 0); 1239647#L26 call #t~ret0 := fact(~n - 1);< 1239678#$Ultimate##0 ~n := #in~n; 1240709#L25 assume !(~n <= 0); 1239636#L26 call #t~ret0 := fact(~n - 1);< 1240708#$Ultimate##0 ~n := #in~n; 1240707#L25 assume !(~n <= 0); 1239638#L26 call #t~ret0 := fact(~n - 1);< 1240691#$Ultimate##0 ~n := #in~n; 1240690#L25 assume !(~n <= 0); 1239640#L26 call #t~ret0 := fact(~n - 1);< 1240223#$Ultimate##0 ~n := #in~n; 1240626#L25 assume !(~n <= 0); 1239631#L26 call #t~ret0 := fact(~n - 1);< 1240253#$Ultimate##0 ~n := #in~n; 1244512#L25 assume !(~n <= 0); 1239629#L26 call #t~ret0 := fact(~n - 1);< 1239922#$Ultimate##0 ~n := #in~n; 1245426#L25 assume !(~n <= 0); 1239632#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240282#factFINAL assume true; 1240266#factEXIT >#66#return; 1240264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240246#factFINAL assume true; 1240208#factEXIT >#66#return; 1240213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240354#factFINAL assume true; 1240351#factEXIT >#66#return; 1239663#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240417#factFINAL assume true; 1240053#factEXIT >#68#return; 1239484#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1240050#$Ultimate##0 ~n := #in~n; 1240047#L25 assume !(~n <= 0); 1239635#L26 call #t~ret0 := fact(~n - 1);< 1239929#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240018#factFINAL assume true; 1239967#factEXIT >#70#return; 1239574#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1240204#$Ultimate##0 ~n := #in~n; 1240259#L25 assume !(~n <= 0); 1239645#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240018#factFINAL assume true; 1239967#factEXIT >#72#return; 1239985#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1240557#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1240556#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1240555#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1240552#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1240071#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1240098#$Ultimate##0 ~n := #in~n; 1240420#L25 assume !(~n <= 0); 1239647#L26 call #t~ret0 := fact(~n - 1);< 1239678#$Ultimate##0 ~n := #in~n; 1240709#L25 assume !(~n <= 0); 1239636#L26 call #t~ret0 := fact(~n - 1);< 1240708#$Ultimate##0 ~n := #in~n; 1240707#L25 assume !(~n <= 0); 1239638#L26 call #t~ret0 := fact(~n - 1);< 1240691#$Ultimate##0 ~n := #in~n; 1240690#L25 assume !(~n <= 0); 1239640#L26 call #t~ret0 := fact(~n - 1);< 1240223#$Ultimate##0 ~n := #in~n; 1240626#L25 assume !(~n <= 0); 1239631#L26 call #t~ret0 := fact(~n - 1);< 1240253#$Ultimate##0 ~n := #in~n; 1244512#L25 assume !(~n <= 0); 1239629#L26 call #t~ret0 := fact(~n - 1);< 1239922#$Ultimate##0 ~n := #in~n; 1245426#L25 assume !(~n <= 0); 1239632#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240282#factFINAL assume true; 1240266#factEXIT >#66#return; 1240264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240246#factFINAL assume true; 1240208#factEXIT >#66#return; 1240213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240354#factFINAL assume true; 1240351#factEXIT >#66#return; 1239663#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240417#factFINAL assume true; 1240053#factEXIT >#68#return; 1239497#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1240050#$Ultimate##0 ~n := #in~n; 1240047#L25 assume !(~n <= 0); 1239635#L26 call #t~ret0 := fact(~n - 1);< 1239929#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239867#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239845#factFINAL assume true; 1239815#factEXIT >#70#return; 1239545#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1240204#$Ultimate##0 ~n := #in~n; 1240259#L25 assume !(~n <= 0); 1239645#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239964#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240431#factFINAL assume true; 1240119#factEXIT >#72#return; 1240130#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1240493#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1240491#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1240489#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1240487#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1240086#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1240098#$Ultimate##0 ~n := #in~n; 1240420#L25 assume !(~n <= 0); 1239647#L26 call #t~ret0 := fact(~n - 1);< 1239678#$Ultimate##0 ~n := #in~n; 1240709#L25 assume !(~n <= 0); 1239636#L26 call #t~ret0 := fact(~n - 1);< 1240708#$Ultimate##0 ~n := #in~n; 1240707#L25 assume !(~n <= 0); 1239638#L26 call #t~ret0 := fact(~n - 1);< 1240691#$Ultimate##0 ~n := #in~n; 1240690#L25 assume !(~n <= 0); 1239640#L26 call #t~ret0 := fact(~n - 1);< 1240223#$Ultimate##0 ~n := #in~n; 1240626#L25 assume !(~n <= 0); 1239631#L26 call #t~ret0 := fact(~n - 1);< 1240253#$Ultimate##0 ~n := #in~n; 1244512#L25 assume !(~n <= 0); 1239629#L26 call #t~ret0 := fact(~n - 1);< 1239922#$Ultimate##0 ~n := #in~n; 1245426#L25 assume !(~n <= 0); 1239632#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240282#factFINAL assume true; 1240266#factEXIT >#66#return; 1240264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240246#factFINAL assume true; 1240208#factEXIT >#66#return; 1240213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240354#factFINAL assume true; 1240351#factEXIT >#66#return; 1239663#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240417#factFINAL assume true; 1240053#factEXIT >#68#return; 1239508#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1240050#$Ultimate##0 ~n := #in~n; 1240047#L25 assume !(~n <= 0); 1239635#L26 call #t~ret0 := fact(~n - 1);< 1239929#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240282#factFINAL assume true; 1240266#factEXIT >#66#return; 1240254#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240220#factFINAL assume true; 1239520#factEXIT >#70#return; 1239548#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1240204#$Ultimate##0 ~n := #in~n; 1240259#L25 assume !(~n <= 0); 1239645#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240012#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240430#factFINAL assume true; 1240101#factEXIT >#72#return; 1240107#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1240483#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1240481#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1240479#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1240477#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1240069#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1240098#$Ultimate##0 ~n := #in~n; 1240420#L25 assume !(~n <= 0); 1239647#L26 call #t~ret0 := fact(~n - 1);< 1239678#$Ultimate##0 ~n := #in~n; 1240709#L25 assume !(~n <= 0); 1239636#L26 call #t~ret0 := fact(~n - 1);< 1240708#$Ultimate##0 ~n := #in~n; 1240707#L25 assume !(~n <= 0); 1239638#L26 call #t~ret0 := fact(~n - 1);< 1240691#$Ultimate##0 ~n := #in~n; 1240690#L25 assume !(~n <= 0); 1239640#L26 call #t~ret0 := fact(~n - 1);< 1240223#$Ultimate##0 ~n := #in~n; 1240626#L25 assume !(~n <= 0); 1239631#L26 call #t~ret0 := fact(~n - 1);< 1240253#$Ultimate##0 ~n := #in~n; 1244512#L25 assume !(~n <= 0); 1239629#L26 call #t~ret0 := fact(~n - 1);< 1239922#$Ultimate##0 ~n := #in~n; 1245426#L25 assume !(~n <= 0); 1239632#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240282#factFINAL assume true; 1240266#factEXIT >#66#return; 1240264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240246#factFINAL assume true; 1240208#factEXIT >#66#return; 1240213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240354#factFINAL assume true; 1240351#factEXIT >#66#return; 1239663#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240417#factFINAL assume true; 1240053#factEXIT >#68#return; 1240091#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1240165#$Ultimate##0 ~n := #in~n; 1240591#L25 assume !(~n <= 0); 1239654#L26 call #t~ret0 := fact(~n - 1);< 1240222#$Ultimate##0 ~n := #in~n; 1243472#L25 assume !(~n <= 0); 1239626#L26 call #t~ret0 := fact(~n - 1);< 1240275#$Ultimate##0 ~n := #in~n; 1240624#L25 assume !(~n <= 0); 1239651#L26 call #t~ret0 := fact(~n - 1);< 1240622#$Ultimate##0 ~n := #in~n; 1240620#L25 assume !(~n <= 0); 1239655#L26 call #t~ret0 := fact(~n - 1);< 1240616#$Ultimate##0 ~n := #in~n; 1240615#L25 assume !(~n <= 0); 1239658#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240282#factFINAL assume true; 1240266#factEXIT >#66#return; 1240264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240246#factFINAL assume true; 1240208#factEXIT >#66#return; 1240214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240202#factFINAL assume true; 1240160#factEXIT >#70#return; 1239527#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1240049#$Ultimate##0 ~n := #in~n; 1240048#L25 assume !(~n <= 0); 1239635#L26 call #t~ret0 := fact(~n - 1);< 1239929#$Ultimate##0 ~n := #in~n; 1240138#L25 assume ~n <= 0;#res := 1; 1240039#factFINAL assume true; 1240022#factEXIT >#66#return; 1240020#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239995#factFINAL assume true; 1239930#factEXIT >#72#return; 1239940#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1240674#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1240672#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1240670#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1240668#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1240084#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1240098#$Ultimate##0 ~n := #in~n; 1240420#L25 assume !(~n <= 0); 1239647#L26 call #t~ret0 := fact(~n - 1);< 1239678#$Ultimate##0 ~n := #in~n; 1240709#L25 assume !(~n <= 0); 1239636#L26 call #t~ret0 := fact(~n - 1);< 1240708#$Ultimate##0 ~n := #in~n; 1240707#L25 assume !(~n <= 0); 1239638#L26 call #t~ret0 := fact(~n - 1);< 1240691#$Ultimate##0 ~n := #in~n; 1240690#L25 assume !(~n <= 0); 1239640#L26 call #t~ret0 := fact(~n - 1);< 1240223#$Ultimate##0 ~n := #in~n; 1240626#L25 assume !(~n <= 0); 1239631#L26 call #t~ret0 := fact(~n - 1);< 1240253#$Ultimate##0 ~n := #in~n; 1244512#L25 assume !(~n <= 0); 1239629#L26 call #t~ret0 := fact(~n - 1);< 1239922#$Ultimate##0 ~n := #in~n; 1245426#L25 assume !(~n <= 0); 1239632#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240282#factFINAL assume true; 1240266#factEXIT >#66#return; 1240264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240246#factFINAL assume true; 1240208#factEXIT >#66#return; 1240213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240354#factFINAL assume true; 1240351#factEXIT >#66#return; 1239663#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240417#factFINAL assume true; 1240053#factEXIT >#68#return; 1239611#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1239622#$Ultimate##0 ~n := #in~n; 1240397#L25 assume !(~n <= 0); 1239630#L26 call #t~ret0 := fact(~n - 1);< 1239664#$Ultimate##0 ~n := #in~n; 1241495#L25 assume !(~n <= 0); 1239633#L26 call #t~ret0 := fact(~n - 1);< 1240222#$Ultimate##0 ~n := #in~n; 1243472#L25 assume !(~n <= 0); 1239626#L26 call #t~ret0 := fact(~n - 1);< 1240275#$Ultimate##0 ~n := #in~n; 1240624#L25 assume !(~n <= 0); 1239651#L26 call #t~ret0 := fact(~n - 1);< 1240622#$Ultimate##0 ~n := #in~n; 1240620#L25 assume !(~n <= 0); 1239655#L26 call #t~ret0 := fact(~n - 1);< 1240616#$Ultimate##0 ~n := #in~n; 1240615#L25 assume !(~n <= 0); 1239658#L26 call #t~ret0 := fact(~n - 1);< 1240015#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240150#L25 assume !(~n <= 0); 1239656#L26 call #t~ret0 := fact(~n - 1);< 1240146#$Ultimate##0 ~n := #in~n; 1240460#L25 assume ~n <= 0;#res := 1; 1240459#factFINAL assume true; 1240141#factEXIT >#66#return; 1240139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240027#factFINAL assume true; 1240003#factEXIT >#66#return; 1240002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239999#factFINAL assume true; 1239953#factEXIT >#66#return; 1239952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239921#factFINAL assume true; 1239906#factEXIT >#66#return; 1239902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239895#factFINAL assume true; 1239871#factEXIT >#66#return; 1239887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240282#factFINAL assume true; 1240266#factEXIT >#66#return; 1240264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240246#factFINAL assume true; 1240208#factEXIT >#66#return; 1240213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1240354#factFINAL assume true; 1240351#factEXIT >#66#return; 1239624#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239608#factFINAL assume true; 1239621#factEXIT >#70#return; 1239491#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1240050#$Ultimate##0 ~n := #in~n; 1240047#L25 assume ~n <= 0;#res := 1; 1239517#factFINAL assume true; 1239480#factEXIT >#72#return; 1239512#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1240623#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1240621#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1240619#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1240618#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1239693#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1239694#$Ultimate##0 ~n := #in~n; 1239801#L25 assume !(~n <= 0); 1239716#L26 call #t~ret0 := fact(~n - 1);< 1239799#$Ultimate##0 ~n := #in~n; 1239797#L25 assume !(~n <= 0); 1239719#L26 call #t~ret0 := fact(~n - 1);< 1239795#$Ultimate##0 ~n := #in~n; 1239793#L25 assume !(~n <= 0); 1239704#L26 call #t~ret0 := fact(~n - 1);< 1239791#$Ultimate##0 ~n := #in~n; 1239790#L25 assume !(~n <= 0); 1239702#L26 call #t~ret0 := fact(~n - 1);< 1239786#$Ultimate##0 ~n := #in~n; 1239785#L25 assume !(~n <= 0); 1239705#L26 call #t~ret0 := fact(~n - 1);< 1239776#$Ultimate##0 ~n := #in~n; 1239775#L25 assume !(~n <= 0); 1239709#L26 call #t~ret0 := fact(~n - 1);< 1239765#$Ultimate##0 ~n := #in~n; 1239789#L25 assume !(~n <= 0); 1239710#L26 call #t~ret0 := fact(~n - 1);< 1239758#$Ultimate##0 ~n := #in~n; 1239788#L25 assume !(~n <= 0); 1239712#L26 call #t~ret0 := fact(~n - 1);< 1239782#$Ultimate##0 ~n := #in~n; 1239788#L25 assume !(~n <= 0); 1239712#L26 call #t~ret0 := fact(~n - 1);< 1239782#$Ultimate##0 ~n := #in~n; 1239779#L25 assume ~n <= 0;#res := 1; 1239787#factFINAL assume true; 1239780#factEXIT >#66#return; 1239778#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239774#factFINAL assume true; 1239770#factEXIT >#66#return; 1239769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239768#factFINAL assume true; 1239763#factEXIT >#66#return; 1239762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239761#factFINAL assume true; 1239755#factEXIT >#66#return; 1239753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239750#factFINAL assume true; 1239744#factEXIT >#66#return; 1239743#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239741#factFINAL assume true; 1239736#factEXIT >#66#return; 1239735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239732#factFINAL assume true; 1239728#factEXIT >#66#return; 1239727#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239724#factFINAL assume true; 1239701#factEXIT >#66#return; 1239721#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239726#factFINAL assume true; 1239723#factEXIT >#66#return; 1239700#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239698#factFINAL assume true; 1239687#factEXIT >#74#return; 1239683#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1240046#$Ultimate##0 ~n := #in~n; 1240416#L25 assume !(~n <= 0); 1239703#L26 call #t~ret0 := fact(~n - 1);< 1239733#$Ultimate##0 ~n := #in~n; 1239788#L25 assume !(~n <= 0); 1239712#L26 call #t~ret0 := fact(~n - 1);< 1239782#$Ultimate##0 ~n := #in~n; 1239788#L25 assume !(~n <= 0); 1239712#L26 call #t~ret0 := fact(~n - 1);< 1239782#$Ultimate##0 ~n := #in~n; 1239788#L25 assume !(~n <= 0); 1239712#L26 call #t~ret0 := fact(~n - 1);< 1239782#$Ultimate##0 ~n := #in~n; 1239788#L25 assume !(~n <= 0); 1239712#L26 call #t~ret0 := fact(~n - 1);< 1239782#$Ultimate##0 ~n := #in~n; 1239788#L25 assume !(~n <= 0); 1239712#L26 call #t~ret0 := fact(~n - 1);< 1239782#$Ultimate##0 ~n := #in~n; 1239788#L25 assume !(~n <= 0); 1239712#L26 call #t~ret0 := fact(~n - 1);< 1239782#$Ultimate##0 ~n := #in~n; 1239788#L25 assume !(~n <= 0); 1239712#L26 call #t~ret0 := fact(~n - 1);< 1239782#$Ultimate##0 ~n := #in~n; 1239779#L25 assume ~n <= 0;#res := 1; 1239787#factFINAL assume true; 1239780#factEXIT >#66#return; 1239778#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239774#factFINAL assume true; 1239770#factEXIT >#66#return; 1239769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239768#factFINAL assume true; 1239763#factEXIT >#66#return; 1239762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239761#factFINAL assume true; 1239755#factEXIT >#66#return; 1239753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239750#factFINAL assume true; 1239744#factEXIT >#66#return; 1239743#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239741#factFINAL assume true; 1239736#factEXIT >#66#return; 1239735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239732#factFINAL assume true; 1239728#factEXIT >#66#return; 1239727#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239724#factFINAL assume true; 1239701#factEXIT >#66#return; 1239699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1239696#factFINAL assume true; 1239697#factEXIT >#76#return; 1239436#L30-7 [2023-02-18 09:00:39,325 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 09:00:39,325 INFO L85 PathProgramCache]: Analyzing trace with hash -849063356, now seen corresponding path program 89 times [2023-02-18 09:00:39,325 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 09:00:39,325 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [792369805] [2023-02-18 09:00:39,325 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 09:00:39,325 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 09:00:39,360 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 09:00:39,360 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1901313209] [2023-02-18 09:00:39,360 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 09:00:39,360 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 09:00:39,360 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 09:00:39,364 INFO L229 MonitoredProcess]: Starting monitored process 310 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 09:00:39,365 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (310)] Waiting until timeout for monitored process [2023-02-18 09:00:46,054 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 45 check-sat command(s) [2023-02-18 09:00:46,055 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-18 09:00:46,072 INFO L263 TraceCheckSpWp]: Trace formula consists of 2888 conjuncts, 18 conjunts are in the unsatisfiable core [2023-02-18 09:00:46,079 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-18 09:00:46,178 INFO L134 CoverageAnalysis]: Checked inductivity of 121232 backedges. 61158 proven. 1311 refuted. 0 times theorem prover too weak. 58763 trivial. 0 not checked. [2023-02-18 09:00:46,179 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-18 09:00:46,348 INFO L134 CoverageAnalysis]: Checked inductivity of 121232 backedges. 1072 proven. 2802 refuted. 0 times theorem prover too weak. 117358 trivial. 0 not checked. [2023-02-18 09:00:46,348 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-18 09:00:46,348 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [792369805] [2023-02-18 09:00:46,348 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-18 09:00:46,348 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1901313209] [2023-02-18 09:00:46,348 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1901313209] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-18 09:00:46,348 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-18 09:00:46,348 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 18] total 25 [2023-02-18 09:00:46,348 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [359181673] [2023-02-18 09:00:46,348 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-18 09:00:46,349 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-18 09:00:46,349 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-18 09:00:46,349 INFO L85 PathProgramCache]: Analyzing trace with hash -1452764172, now seen corresponding path program 89 times [2023-02-18 09:00:46,349 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-18 09:00:46,349 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1096630329] [2023-02-18 09:00:46,349 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-18 09:00:46,349 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-18 09:00:46,379 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-18 09:00:46,380 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2053919868] [2023-02-18 09:00:46,380 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-18 09:00:46,380 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-18 09:00:46,380 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-18 09:00:46,382 INFO L229 MonitoredProcess]: Starting monitored process 311 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-18 09:00:46,383 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (311)] Waiting until timeout for monitored process