Zulip Chat Archive

Stream: new members

Topic: beginner question: imports


Dean Young (Feb 21 2023 at 20:22):

Here's an example that works:

import data.int.basic

What happens when I import something? Where on my computer is data.int.basic?

Shreyas Srinivas (Feb 21 2023 at 20:26):

There is an elan folder usually in the home directory, that contains all your toolchains.

Shreyas Srinivas (Feb 21 2023 at 20:28):

Within it, you would find, among other things, some basic library files. Mathlib imports (and anything else downloaded by lake as a dependency) are stored inside a folder called lake-packages inside the project directory.

James Gallicchio (Feb 21 2023 at 20:29):

(^ at least in Lean4 if you're using Lake; lean3 package system was a lot more ad-hoc I believe)

Notification Bot (Feb 21 2023 at 20:55):

This topic was moved here from #mathlib4 > beginner question: imports by Floris van Doorn.

Floris van Doorn (Feb 21 2023 at 20:56):

This seems to be a question about Lean 3, so moving it to a different stream.

Floris van Doorn (Feb 21 2023 at 20:58):

In Lean 3 every project is supposed to have a leanpkg.toml file which contains all the dependencies. Then, if you import a file, it will look at:

  • The current project
  • Any dependency as marked by the leanpkg.toml file, which usually exists in a _target subdirectory.
  • The Lean core library itself (the elan tool should take care of putting these in a subfolder of your home directory).

Eric Wieser (Feb 21 2023 at 21:02):

Slightly more precisely, when you run leanpkg configure it reads your leanpkg.toml and outputs a leanpkg.path. It is this .path file (or the LEAN_PATH environment variable in its absence) that is what is used to resolve import data.int.basic to some_folder/data/int/basic.lean.

Eric Wieser (Feb 21 2023 at 21:03):

You can run lean --path to see how lean processed the leanpkg.path file.

Dean Young (Feb 21 2023 at 22:17):

Thanks for all of your help, this is good info!


Last updated: Dec 20 2023 at 11:08 UTC