Can anyone explain Gröbner bases in detail i.e. some basic definitions, theorems, examples, and applications?