## 2.5 Logical paths of libraries and compilation units

##### Libraries

The theories developed in Coq are stored in libraries. A library is characterized by a name called root of the library. The standard library of Coq has root name `Coq` and is known by default when a Coq session starts.
Libraries have a tree structure. E.g., the `Coq` library contains the sub-libraries `Init`, `Logic`, `Arith`, `Lists`, ... The ``dot notation'' is used to separate the different component of a library name. For instance, the `Arith` library of Coq standard library is written ```Coq.Arith`''.
Remark: no blank is allowed between the dot and the identifier on its right, otherwise the dot is interpreted as the full stop (period) of the command!

##### Physical paths vs logical paths

Libraries and sub-libraries are denoted by logical directory paths (written dirpath and of which the syntax is the same as qualid, see 1.2.2). Logical directory paths can be mapped to physical directories of the operating system using the command (see 5.5.3)

> `Add LoadPath` `physical_path` `as` dirpath.

A library can inherit the tree structure of a physical directory by using the `-R` option to `coqtop` or the command (see 5.5.4)

> `Add Rec LoadPath` `physical_path` `as` dirpath.

##### Compilation units (or modules)

At some point, (sub-)libraries contain modules which coincide with files at the physical level. As for sublibraries, the dot notation is used to denote a specific module of a library. Typically, `Coq.Init.Logic` is the logical path associated to the file `Logic.v` of Coq standard library.
If the physical directory where a file `file.v` lies is mapped to the empty logical directory path (which is the default when using the simple form of `Add LoadPath` or `-I` option to coqtop), then the name of the module it defines is simply `file`.