gives the min limit kf(k) of the sequence f as k tends to over the integers.


gives the nested min limit f(k1,,kn) over the integers.


gives the multivariate min limit f(k1,,kn) over the integers.

Details and Options

  • DiscreteMinLimit is also known as limit inferior, infimum limit, liminf, lower limit and inner limit.
  • DiscreteMinLimit computes the largest lower bound for the limit and is always defined for real-valued sequences. It is often used to give conditions of convergence and other asymptotic properties that do not rely on an actual limit to exist.
  • DiscreteMinLimit[f,k] can be entered as f. A template can be entered as dmlim, and moves the cursor from the underscript to the body.
  • DiscreteMinLimit[f,{k1,,kn}{,,}] can be entered asf.
  • The possible limit points are ±.
  • The min limit is defined as a limit of the min envelope sequence min[ω]:
  • DiscreteMinLimit[f,k]DiscreteLimit[min[ω],ω]
  • DiscreteMinLimit[f[k],k-] is equivalent to DiscreteMinLimit[f[-l],l] etc.
  • The definition uses the min envelope min[ω]MinValue[{f[k],kωk},k] for univariate f[k] and min[ω]MinValue[{f[k1,,kn],k1ωknωki},{k1,,kn}] for multivariate f[k1,,kn]. The sequence min[ω] is monotone increasing as ω, so always has a limit, which may be ±.
  • The illustration shows min[k] and min[Min[k1,k2]] in blue.
  • DiscreteMinLimit returns unevaluated when the min limit cannot be found.
  • The following options can be given:
  • Assumptions $Assumptionsassumptions on parameters
    GenerateConditions Automaticwhether to generate conditions on parameters
    Method Automaticmethod to use
    PerformanceGoal "Quality"aspects of performance to optimize
  • Possible settings for GenerateConditions include:
  • Automaticnon-generic conditions only
    Trueall conditions
    Falseno conditions
    Nonereturn unevaluated if conditions are needed
  • Possible settings for PerformanceGoal include $PerformanceGoal, "Quality" and "Speed". With the "Quality" setting, DiscreteMinLimit typically solves more problems or produces simpler results, but it potentially uses more time and memory.


open allclose all

Basic Examples  (4)

Min limit of a sequence:

Min limit of a product:

Use dmlim to enter the template and to move from the underscript to the body:

TraditionalForm typesetting:

Scope  (22)

Basic Uses  (4)

Compute the min limit of a sequence when n approaches Infinity:

Compute the min limit of a sequence when n approaches -Infinity:

Compute a nested limit for a multivariate sequence:

Compute the limit of a list of sequences:

Elementary Function Sequences  (6)

Find the min limit of a rational-exponential sequence:

Convergent geometric sequence:

Oscillating geometric sequence:

Divergent oscillating geometric sequence:

Exponential sequence:

Power sequence:

Trigonometric sequences:

Inverse trigonometric sequence:

Logarithmic sequence:

Integer Function Sequences  (3)

Sequences involving Factorial:

Sequence involving FactorialPower:

Compute the limit of a sequence involving Fibonacci:

Periodic Sequences  (3)

Limits of periodic sequences:

Eventually periodic sequence:

Densely aperiodic sequences:

Piecewise Function Sequences  (2)

Piecewise sequence with a finite min limit:

Piecewise sequence with an infinite min limit:

Piecewise sequence with periodic conditions:

Number Theoretic Sequences  (2)

Limits involving LCM and GCD:

Sequence involving Prime:

Multivariate Sequences  (2)

Compute a nested min limit:

Plot the sequence and its limit:

Multivariate min limits:

Options  (6)

Assumptions  (1)

Specify assumptions on a parameter:

Different assumptions can produce different results:

GenerateConditions  (3)

Return a result without stating conditions:

This result is only valid if x>1:

Return unevaluated if the results depend on the value of parameters:

By default, conditions are generated that return a unique result:

By default, conditions are not generated if only special values invalidate the result:

With GenerateConditions->True, even these non-generic conditions are reported:

Method  (1)

Compute the min limit of a periodic sequence using the default method:

Obtain the same answer using the method for periodic sequences:

The limit of the sequence is undefined, since it oscillates between 0 and 1:

PerformanceGoal  (1)

DiscreteMinLimit computes limits involving sequences of arbitrarily large periods:

Use PerformanceGoal to avoid potentially expensive computations in such cases:

The Method option overrides PerformanceGoal:

Applications  (3)

Compute the asymptotic minimum of a sequence:

Plot the sequence and the asymptotic minimum:

Verify that the following sequence does not have a limit:

Show that DiscreteMaxLimit and DiscreteMinLimit are not equal:

Confirm that the limit does not exist by using DiscreteLimit:

An algorithm runtime function is said to be "big-omega of ", written , if _(n->_(TemplateBox[{}, Integers])infty) (f(n))/(g(n))>0:

Similarly, is said to be "big-theta of ", written if _(n->_(TemplateBox[{}, Integers])infty) (f(n))/(g(n))<infty and _(n->_(TemplateBox[{}, Integers])infty)(f(n))/(g(n))>0:

The statement is always true:

If and , then :

It is possible for two functions to share neither relationship:

Hence, defines a reflexive partial order on the space of algorithm runtimes similar to :

If and , then , which implies that is an equivalence relation:

Properties & Relations  (11)

A real-valued function always has a (possibly infinite) min limit:

The corresponding limit may not exist:

If and have finite min limits, then TemplateBox[{{(, {f, +, g}, )}, x, a}, DiscreteMinLimit]>=TemplateBox[{f, x, a}, DiscreteMinLimit]+TemplateBox[{g, x, a}, DiscreteMinLimit]:

In this case, there is strict inequality:

Positive multiplicative constants can be moved outside a limit:

For a real-valued sequence, if DiscreteLimit exists, DiscreteMinLimit has the same value:

If has a finite limit, then TemplateBox[{{(, {f, +, g}, )}, x, a}, DiscreteMinLimit]=TemplateBox[{f, x, a}, DiscreteMinLimit]+TemplateBox[{g, x, a}, DiscreteMinLimit]:

DiscreteMinLimit is less than or equal to DiscreteMaxLimit:

If DiscreteMinLimit equals DiscreteMaxLimit, the limit exists and equals their common value:

If the min limit is , then the max limit and thus the limit are also :

DiscreteMinLimit can be computed as -DiscreteMaxLimit[-f,]:

If , then TemplateBox[{{g, (, n, )}, x, a}, MinLimit2Arg]>=TemplateBox[{{f, (, n, )}, x, a}, MaxLimit2Arg]>=TemplateBox[{{f,  , {(, n, )}}, x, a}, MinLimit2Arg]:

If the two max limits are equalas in this examplethen has a limit:

This is a generalization of the "squeezing" or "sandwich" theorem:

MinLimit is always less than or equal to DiscreteMinLimit:

Possible Issues  (1)

DiscreteMinLimit is only defined for real-valued sequences:

Neat Examples  (1)

Visualize a set of sequence min limits:

Wolfram Research (2017), DiscreteMinLimit, Wolfram Language function, https://reference.wolfram.com/language/ref/DiscreteMinLimit.html.


Wolfram Research (2017), DiscreteMinLimit, Wolfram Language function, https://reference.wolfram.com/language/ref/DiscreteMinLimit.html.


Wolfram Language. 2017. "DiscreteMinLimit." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/DiscreteMinLimit.html.


Wolfram Language. (2017). DiscreteMinLimit. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/DiscreteMinLimit.html


@misc{reference.wolfram_2024_discreteminlimit, author="Wolfram Research", title="{DiscreteMinLimit}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/DiscreteMinLimit.html}", note=[Accessed: 19-July-2024 ]}


@online{reference.wolfram_2024_discreteminlimit, organization={Wolfram Research}, title={DiscreteMinLimit}, year={2017}, url={https://reference.wolfram.com/language/ref/DiscreteMinLimit.html}, note=[Accessed: 19-July-2024 ]}