The set of predefined functions in Lua is small but powerful. Most of them provide features that allows some degree of reflexivity in the language. Many of these features cannot be simulated with the rest of the Language nor with the standard API.
The libraries, on the other hand, provide useful routines that are implemented directly through the standard API. Therefore, they are not necessary to the language, and are provided as separated C modules. Currently there are three standard libraries: