Lean 4 fork for HoTT-compatible kernel extensions (Path types, transport, HITs). Maintained against upstream leanprover/lean4.
Find a file
Leonardo de Moura 729047b5a2 feat: auto bound implicit at constructors
@Kha This commit adds auto bound implicits to constructors.
I was excited until I tried to define the `Bigstep` type again without
`autoBoundImplicitLocal`, and found small typos.
Example, I had
```
  | ifTrue  : eval σ₁ b = true  → Bigstep (c₁, σ₁) σ₂ t → Bigstep (cond b c₁ c₂, σ₁) σ₂ (t₁ + 1)
```
where `t₁` should be `t`, but the declaration was accepted. I am
wondering whether Isabelle performs some kind of sanity checking,
and/or enforces rules such as: auto-bound implicits may only be
introduced by hypotheses.
Note that this is not an issue for definitions, because the body of
the definition will probably not type check when we have this kind of
typo in the header.
Anyway, I am putting the experiment in this branch for now.
That being said, the `Bigstep` declaration is way nicer with
`autoBoundImplicitLocal`s.

Another option is to add a new option `ctorAutoBoundImplicitLocal`
that is false by default, and activates auto implicit locals for
constructors when set to true.
2021-02-02 10:18:21 -08:00
.github chore: Nix: update Nix client to resolve https://github.com/NixOS/nix/issues/4469 2021-01-26 18:01:39 +01:00
doc doc: update dev setup editor instructions 2021-02-02 17:30:51 +01:00
images
lean4-mode feat: add register_builtin_option keyword 2021-01-26 17:46:08 -08:00
nix chore: Nix: do not set extra cmake flags like fsanitize for stage 0 2021-02-01 11:58:37 +01:00
script chore: nightly releases 2021-01-04 13:46:20 +01:00
src feat: auto bound implicit at constructors 2021-02-02 10:18:21 -08:00
stage0 chore: update stage0 2021-02-01 18:04:28 -08:00
tests feat: auto bound implicit at constructors 2021-02-02 10:18:21 -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
CONTRIBUTING.md doc: contribution guidelines & README update 2021-01-12 14:38:36 -08:00
default.nix doc: setup 2021-01-03 13:21:58 +01:00
flake.lock chore: Nix: update Nix client to resolve https://github.com/NixOS/nix/issues/4469 2021-01-26 18:01:39 +01:00
flake.nix chore: Nix: stage0debug 2021-01-20 16:48:50 +01:00
LICENSE
README.md doc: contribution guidelines & README update 2021-01-12 14:38:36 -08:00
shell.nix doc: update dev setup editor instructions 2021-02-02 17:30:51 +01:00

This is the repository for Lean 4, which is currently being released as milestone releases towards a first stable release. Lean 3 is still the latest stable release.

About

Installation

See Setting Up Lean.

Contributing

Please read our Contribution Guidelines first.

Building from Source

See Building Lean.