Is there a way to navigate the Lean core library in VSCode, with Lean interpeting these files without error?
If I am in a separate repo and open a file from Core (say Lean.Expr
) I get the error
unknown package 'Std'
You might need to open 'c:\Users\Floris\.elan\toolchains\leanprover--lean4---v4.13.0-rc3\src\lean' as a workspace in your editor
If I open that folder as a workspace, I get the same error
If I checkout the Lean4-repo at the v4.13.0-rc3
branch I get some scary errors. This also contains the output of elan --show
(with weird errors)
c:\Users\Floris\projects\lean4> curl --version
curl 8.9.1 (Windows) libcurl/8.9.1 Schannel zlib/1.3 WinIDN
Release-Date: 2024-07-31
Protocols: dict file ftp ftps http https imap imaps ipfs ipns mqtt pop3 pop3s smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS HSTS HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM SPNEGO SSL SSPI threadsafe Unicode UnixSockets
c:\Users\Floris\projects\lean4> git --version
git version 2.40.0.windows.1
c:\Users\Floris\projects\lean4> lean --version
info: downloading component 'lean'
Error(Download(HttpStatus(404)), State { next_error: None, backtrace: InternalBacktrace { backtrace: None } })
error: could not download nonexistent lean version `lean4`
info: caused by: could not download file from 'https://github.com/leanprover/lean4/releases/expanded_assets/lean4' to 'C:\Users\Floris\.elan\tmp\uc5szft0m8kenn2g_file'
info: caused by: http request returned an unsuccessful status code: 404
=> Operation failed. Exit code: 1.
c:\Users\Floris\projects\lean4> curl --version
curl 8.9.1 (Windows) libcurl/8.9.1 Schannel zlib/1.3 WinIDN
Release-Date: 2024-07-31
Protocols: dict file ftp ftps http https imap imaps ipfs ipns mqtt pop3 pop3s smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS HSTS HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM SPNEGO SSL SSPI threadsafe Unicode UnixSockets
c:\Users\Floris\projects\lean4> git --version
git version 2.40.0.windows.1
c:\Users\Floris\projects\lean4> elan --version
elan 3.1.1 (71ddc6633 2024-02-22)
c:\Users\Floris\projects\lean4> lean --version
info: downloading component 'lean'
Error(Download(HttpStatus(404)), State { next_error: None, backtrace: InternalBacktrace { backtrace: None } })
error: could not download nonexistent lean version `lean4`
info: caused by: could not download file from 'https://github.com/leanprover/lean4/releases/expanded_assets/lean4' to 'C:\Users\Floris\.elan\tmp\mg239zxor5bhaqp8_file'
info: caused by: http request returned an unsuccessful status code: 404
=> Operation failed. Exit code: 1.
c:\Users\Floris\projects\lean4> elan show
info: downloading component 'lean'
Error(Download(HttpStatus(404)), State { next_error: None, backtrace: InternalBacktrace { backtrace: None } })
installed toolchains
--------------------
gebner/lean4:reenableeta230506
leanprover-community/lean:3.35.1
leanprover-community/lean:3.44.1
leanprover-community/lean:3.45.0
leanprover-community/lean:3.50.3
leanprover-community/lean:3.51.0
leanprover-community/lean:3.51.1
leanprover/lean4-pr-releases:pr-release-4595
leanprover/lean4:nightly
leanprover/lean4:nightly-2022-10-20
leanprover/lean4:nightly-2022-12-16
leanprover/lean4:nightly-2023-02-04
leanprover/lean4:nightly-2023-03-09
leanprover/lean4:nightly-2023-03-31 (default)
leanprover/lean4:nightly-2023-04-11
leanprover/lean4:nightly-2023-04-20
leanprover/lean4:nightly-2023-05-06
leanprover/lean4:nightly-2023-05-16
leanprover/lean4:nightly-2023-05-31
leanprover/lean4:nightly-2023-06-10
leanprover/lean4:nightly-2023-06-20
leanprover/lean4:nightly-2023-07-01
leanprover/lean4:nightly-2023-07-12
leanprover/lean4:nightly-2023-07-15
leanprover/lean4:nightly-2023-07-29
leanprover/lean4:nightly-2023-08-05
leanprover/lean4:nightly-2023-08-19
leanprover/lean4:nightly-2023-08-23
leanprover/lean4:nightly-2024-03-01
leanprover/lean4:nightly-2024-03-02
leanprover/lean4:nightly-2024-04-24
leanprover/lean4:nightly-2024-04-29
leanprover/lean4:nightly-2024-04-30
leanprover/lean4:nightly-2024-05-14
leanprover/lean4:stable
leanprover/lean4:v4.0.0
leanprover/lean4:v4.0.0-rc2
leanprover/lean4:v4.0.0-rc4
leanprover/lean4:v4.1.0
leanprover/lean4:v4.1.0-rc1
leanprover/lean4:v4.10.0-rc1
leanprover/lean4:v4.10.0-rc2
leanprover/lean4:v4.11.0-rc1
leanprover/lean4:v4.11.0-rc2
leanprover/lean4:v4.12.0
leanprover/lean4:v4.12.0-rc1
leanprover/lean4:v4.13.0-rc1
leanprover/lean4:v4.13.0-rc3
leanprover/lean4:v4.2.0
leanprover/lean4:v4.2.0-rc1
leanprover/lean4:v4.2.0-rc2
leanprover/lean4:v4.2.0-rc3
leanprover/lean4:v4.2.0-rc4
leanprover/lean4:v4.3.0
leanprover/lean4:v4.3.0-rc1
leanprover/lean4:v4.3.0-rc2
leanprover/lean4:v4.4.0-rc1
leanprover/lean4:v4.5.0-rc1
leanprover/lean4:v4.6.0
leanprover/lean4:v4.6.0-rc1
leanprover/lean4:v4.7.0
leanprover/lean4:v4.7.0-rc2
leanprover/lean4:v4.8.0-rc1
leanprover/lean4:v4.8.0-rc2
leanprover/lean4:v4.9.0-rc1
leanprover/lean4:v4.9.0-rc2
leanprover/lean4:v4.9.0-rc3
3.4.2
active toolchain
----------------
(error: could not download nonexistent lean version `lean4`, could not download file from 'https://github.com/leanprover/lean4/releases/expanded_assets/lean4' to 'C:\Users\Floris\.elan\tmp\8j1upf5clzjvy6zx_file')
(note: if I checkout the Lean 4 repo at a commit from ~1 year ago, it works just fine in VSCode)
Oh, I guess this related to the latest release candidate, so feel free to ignore this if this is WIP. It works fine on Lean from 1 month ago.
I think this is because when you open the lean folder, elan just uses a random lean toolchain
And so the fix is to set the default elan toolchain to the same version as the source you're looking at
I did try to look at the v4.13.0-rc3
branch with the same default toolchain, which also didn't work.
It might have to do with the fact that Core has been split into Lean
+ Std
recently?
Have you followed the instructions at https://lean-lang.org/lean4/doc/dev/index.html#dev-setup-using-elan
in particular about creating the toolchains?
I have not. I am also not trying to change Lean Core, just navigate the existing code without errors, so I was not aware that that page was relevant for me.
When I Ctrl+click on e.g. import Lean.Expr
in Mathlib.Lean.Expr.ReplaceRec, everything works for me and "Lean 4: Troubleshooting: Show Setup Information" says
...
Elan : Reasonably up-to-date (version: 3.1.1)
Lean : Reasonably up-to-date (version: 4.13.0-rc3)
Project : Valid Lean project (path: /home/sebastian/.elan/toolchains/leanprover--lean4---v4.13.0-rc3/src/lean)
active toolchain
leanprover/lean4:v4.13.0-rc3 (override because inside toolchain directory '/home/sebastian/.elan/toolchains/leanprover--lean4---v4.13.0-rc3')
Lean (version 4.13.0-rc3, x86_64-unknown-linux-gnu, commit 01d414ac36dc, Release)
Last updated: May 02 2025 at 03:31 UTC