First of all, let's get rid of infinities: a function can tend to #\pm\infty# either at the extreme points of its domain or because of some vertical asymptote.

So, you should first of all check

#lim_{x \to x_0} f(x)#

for every point #x_0# at the boundary of the domain. For example, if the domain is #(-\infty,\infty)#, you should check

#lim_{x \to \pm\infty} f(x)#

If the domain is like #\mathbb{R}\setminus\{2\}# you should check

#lim_{x \to \pm\infty} f(x),\qquad lim_{x \to 2^\pm} f(x)#

and so on. If any of these limits is #-\infty#, the function has no finite lower bound.

Else, you can check the derivative: when you set #f'(x)=0#, you will find points of maximum of minimum. For every #x# which solves #f'(x)=0#, you should compute #f''(x)#. If #f''(x)>0#, the point is indeed a minumum.

Now, in the most general case, you have a collection of points #x_1,...,x_n# such that

#f'(x_i)=0,\qquad f''(x_i)>0# for every #i=1,.., n#

Which means that they are all **local** minima of your function. The lower bound of the function, i.e. the **global** minimum, will be the smallest image of those points: you just need to compare

#f(x_1), ..., f(x_n)#, and choose the smallest one.