# A The SWI-Prolog library

This chapter documents the SWI-Prolog library. As SWI-Prolog provides auto-loading, there is little difference between library predicates and built-in predicates. Part of the library is therefore documented in the rest of the manual. Library predicates differ from built-in predicates in the following ways.

- User-definition of a built-in leads to a permission-error, while using the name of a library predicate is allowed.

- If autoloading is disabled explicitely or because trapping unknown predicates is disabled (see unknown/2 and current_prolog_flag/2), library predicates must be loaded explicitely.

- Using libraries reduce the footprint of applications that don't need them.

> The documentation of the library is just started. Material from the standard packages should be moved here, some material from other parts of the manual should be moved too and various libraries are not documented at all.

## Section Index