Zulip Chat Archive

Stream: Machine Learning for Theorem Proving

Topic: build issues: A dataset of proofs for 20 IMO problems ...


Eric Wieser (Mar 04 2025 at 09:21):

Can you add a lake-manifest.json to your repo? Without it, it is impossible for a human to check if your proofs actually work!

Roozbeh Yousefzadeh (Mar 04 2025 at 09:37):

Thanks for the suggestion -- I added the file. The proofs compile with no error using Lean 4.17.0 and also Lean 4.17.0-rc1.

Eric Wieser (Mar 04 2025 at 10:13):

You should also add the lean-toolchain and lakefiles.lean files

Eric Wieser (Mar 04 2025 at 10:14):

(the manifest was important because it specifies the mathlib version, not just the Lean version)

Roozbeh Yousefzadeh (Mar 04 2025 at 10:19):

Makes sense. I added both lean-toolchain and lakefile.lean.

Eric Wieser (Mar 04 2025 at 10:54):

The lakefile.lean looks like you copied it from mathlib, which means it is not going to work.

Eric Wieser (Mar 04 2025 at 10:55):

Similarly, in https://github.com/roozbeh-yz/IMO-Steps/commit/a0b8f80d4e6e4aa9f861e63614dce54bb8625c55 you overwrote a good lake-manifest.json with a bad one

Roozbeh Yousefzadeh (Mar 04 2025 at 12:18):

Thank you, Eric. I have now replaced them with the correct files.

Eric Wieser (Mar 04 2025 at 12:23):

If I attempt to build your code, I get

Dependency Mathlib uses a different lean-toolchain
  Project uses leanprover/lean4:v4.17.0
  Mathlib uses leanprover/lean4:v4.17.0-rc1

Probably the advice here can be used to fix this, though then I get

$ lake build
error: no such file or directory (error code: 2)
  file: ././././ImoSteps.lean

Roozbeh Yousefzadeh (Mar 04 2025 at 12:43):

I added the ImoSteps.lean , though I'm not sure why there is such a file. I also implemented the advice regarding the upgrade to v4.17.0. Please let me know if there are any other issues.

Eric Wieser (Mar 04 2025 at 12:51):

Roozbeh Yousefzadeh said:

added the ImoSteps.lean , though I'm not sure why there is such a file

This is because you promised it existed in your lakefile.toml.

If you switch to a lakefile.lean, then you can write

@[default_target]
lean_lib imo_proofs where
  globs := #[.submodules `imo_proofs]

and delete ImoSteps.lean.

Eric Wieser (Mar 04 2025 at 12:52):

@Mac Malone, can you confirm there is no way to use the submodules spelling from a toml file?

Notification Bot (Mar 04 2025 at 12:54):

13 messages were moved here from #Machine Learning for Theorem Proving > A dataset of proofs for 20 IMO problems and extracted lemmas by Eric Wieser.

Mac Malone (Mar 05 2025 at 07:42):

@Eric Wieser The TOMl syntax is globs = ["imo_proofs.+"].

This shorthand can also be used in Lean as well: globs := #[`imo_proofs.+].

Damiano Testa (Mar 05 2025 at 07:53):

imo_proofs.+ is valid syntax? Wow!

Patrick Massot (Mar 05 2025 at 08:01):

Where is this documented?

Kim Morrison (Mar 05 2025 at 09:34):

It seems like it should be on https://lean-lang.org/doc/reference/latest/Build-Tools-and-Distribution/Lake/#lake-config, but is not. Would someone like to open an issue against the language reference for globs?

Eric Wieser (Mar 05 2025 at 09:36):

Is `.+ legal for "all files"?

Mac Malone (Mar 05 2025 at 09:47):

@Eric Wieser No.

Roozbeh Yousefzadeh (Mar 14 2025 at 08:31):

Thank you everyone for your comments and advice.

Eric Wieser (Mar 14 2025 at 10:37):

I think the build is still broken ; you can test by running lake build inside your project


Last updated: May 02 2025 at 03:31 UTC