Lean 4 fork for HoTT-compatible kernel extensions (Path types, transport, HITs). Maintained against upstream leanprover/lean4.
Find a file
Leonardo de Moura 06ad52575a feat: force users to use discard when action result is not being bound and it is not PUnit
After this commit, we have to use an explicit `discard` in code such as
```
def g (x : Nat) : IO Nat := ...
def f (x : Nat) : IO Unit := do
  discard <| g x   -- type error without the `discard`
  IO.println x
```

Motivation: prevent users from making mistakes such as
```
def f (xs : Array Nat) : IO Unit := do
  xs.set! 0 1
  IO.println xs
```
when they meant to write
```
def f (xs : Array Nat) : IO Unit := do
  let xs := xs.set! 0 1
  IO.println xs
```
2020-12-08 06:14:48 -08:00
.github fix: Nix: don't try to push PRs 2020-11-24 19:16:27 +01:00
doc doc: auto bound implicit arguments 2020-12-07 16:38:55 -08:00
images
lean4-mode chore: add keyword "scoped" 2020-12-04 11:28:40 -08:00
nix fix: Nix: use stage 1 outside of src/ 2020-12-03 18:49:29 +01:00
script fix: gen_constants_cpp.py: mark constants as persistent 2020-11-29 18:59:39 +01:00
src feat: force users to use discard when action result is not being bound and it is not PUnit 2020-12-08 06:14:48 -08:00
stage0 chore: update stage0 2020-12-07 10:48:44 -08:00
tests feat: force users to use discard when action result is not being bound and it is not PUnit 2020-12-08 06:14:48 -08:00
tmp chore: remove tactic framework dependency 2020-11-10 14:32:58 -08:00
.gitattributes chore: restore marking stage0/ as binary files, which we lost at some point 2020-08-14 11:12:13 +02:00
.gitignore chore: ignore result files from nix build 2020-11-24 19:16:27 +01:00
CMakeLists.txt chore: use standard release build for stage 0 2020-10-12 10:34:48 +02:00
default.nix feat: Nix: compatibility default.nix 2020-11-24 19:16:27 +01:00
flake.lock chore: go back to LLVM 10 2020-11-30 12:32:53 +01:00
flake.nix feat: Nix: thread-sanitized build 2020-11-29 18:59:39 +01:00
LICENSE
README.md chore: add link to manual 2020-11-23 10:21:52 -08:00
shell.nix fix: CI: Linux release job 2020-11-24 19:16:27 +01:00

We are currently developing Lean 4. The Lean 4 manual (work in progress) will give you an overview of the language.

Lean 3 is still the latest official release. This repository contains work in progress.

Important. Unless you are one of our collaborators

  • We strongly suggest you use Lean 3.
  • Pull requests are not welcome.
  • New issues are not welcome, and will be closed without any feedback.