Zulip Chat Archive

Stream: mathlib4

Topic: Minimize imports


Moritz Firsching (Mar 15 2024 at 20:49):

Is there an automated method for a file that works with import Mathlib, to figure out what is a minimal set of imports needed, so that it still works when removing import Mathlib?

Kevin Buzzard (Mar 15 2024 at 20:53):

I think there's find_home! which works on individual declarations; I don't know about a file-wide solution.

Michael Stoll (Mar 15 2024 at 20:56):

#minimize_imports (at the end of the file).

Michael Rothgang (Mar 15 2024 at 21:19):

If you want to minimize imports across multiple files, lake exe shake is really useful. You can run this on an individual "module" (think file, but with names à la Mathlib.Data.Real.Basic instead of Mathlib/Data/Real/Basic.lean), but also on the whole project. It even works on projects depending on mathlib.

Michael Rothgang (Mar 15 2024 at 21:20):

Both #minimize_imports and lake exe shake do not take notation or tactics into account: you might find that it removes "too much".

Kim Morrison (Mar 15 2024 at 21:52):

I wrote #minimize_imports (I think??) and Mario wrote lake exe shake, so you should expect shake to be more reliable. :-)


Last updated: May 02 2025 at 03:31 UTC