Lean 4 fork for HoTT-compatible kernel extensions (Path types, transport, HITs). Maintained against upstream leanprover/lean4.
Find a file
Leonardo de Moura f650a1b873 refactor(library/init/meta): avoid '_core' idiom using default parameters
I kept a few core methods (e.g., exact_core and apply_core). Reason:
if we use default parameters

    meta constant exact (e : expr) (md := semireducible) : tactic unit

then, we will not be able to write

    to_expr p >>= exact

The workaround is

    do t <- to_expr p, exact t

or
    to_expr p >>= (fun x, exact x)

One alternative is to change how we handle default parameters, and
eta-expand applications that involve default parameters.
We may also have an attribute [eta_expand]. Then

    attribute [eta_expand] foo

instructs the elaborator to automatically eta-expand foo-applications.
The attribute would give users more control, and avoid potential
performance problems. Without the attribute, then for every function
application the elaborator has to check the type and decide whether it
must be eta-expanded or not.

@gebner @kha What do you think?
2017-02-14 09:46:55 -08:00
bin refactor(gitignore): remove old ignore entries 2016-12-10 08:42:39 -08:00
doc feat(kernel,library,frontends/lean,api): remove global universe levels from kernel and APIs 2017-02-08 17:41:44 -08:00
extras chore(extra/latex/*): update to changes in syntax 2017-01-03 11:22:04 -08:00
images chore(CMakeLists.txt): move Lean logo to make sure we can test leanemacs without installing Lean 2015-01-31 17:38:49 -08:00
library refactor(library/init/meta): avoid '_core' idiom using default parameters 2017-02-14 09:46:55 -08:00
old_library refactor(gitignore): remove old ignore entries 2016-12-10 08:42:39 -08:00
script refactor(emacs/load-lean): install emacs dependencies directly from (M)ELPA 2016-12-02 16:50:50 -08:00
src refactor(library/init/meta): avoid '_core' idiom using default parameters 2017-02-14 09:46:55 -08:00
tests refactor(library/init/meta): avoid '_core' idiom using default parameters 2017-02-14 09:46:55 -08:00
tmp refactor(library/debugger): move debugger to tools 2016-12-17 10:50:13 -08:00
.appveyor.yml chore(CMakeLists): make sure we change the version number in a single place 2017-01-19 18:28:51 -08:00
.appveyor.yml.in chore(CMakeLists): make sure we change the version number in a single place 2017-01-19 18:28:51 -08:00
.codecov.yml feat(.travis.yml): add codecov 2016-12-02 17:01:58 -08:00
.gitignore chore(.gitignore): ignore VSCode config file 2016-12-18 12:35:25 -08:00
.travis.yml chore(.travis.yml): reduce ctest verbosity 2017-02-04 13:49:30 -08:00
.travis.yml.in chore(.travis.yml): reduce ctest verbosity 2017-02-04 13:49:30 -08:00
LICENSE Add LICENSE file 2013-07-15 18:55:48 -07:00
README.md workaround instruction for gperftools on macOS Sierra 2017-01-17 16:37:06 -08:00

logo

LicenseWindowsLinux / macOSTest Coverage
Codecov

Issue Stats

About

Requirements

Installing required packages at

Windows

Linux

OS X

Build Instructions

Miscellaneous