lean4-htt/src
Leonardo de Moura 0b7d987699 feat(frontends/lean, library/init/lean): opaque constants
@kha I have added support for opaque constants to the old C++ frontend,
and made sure the new frontend can still parse `library/init/core.lean`.
The kernel should enforce that opaque constants are really opaque, and
the following example should fail
```
constant x : nat := 0
theorem foo : x = 0 := rfl
```
If it doesn't, it is a bug.

Here are some remaining issues:
1- `environment.mk_empty` is currently an axiom because we cannot create
an inhabitant of an opaque type. A possible solution is to use
`option environment` instead of `environment`.

2- There is no support for opaque constants in the new
frontend. However, I modified it to handle axioms, and fixed the literal
values with decl_cmd_kind. I tried to mark some of my changes with
comments, but it is probably much easier for you to just check the
commit change list.

3- I did not add any support for automatically constructing `e`
at `constant x : t := e`. I think we can do this later
after we replace the old frontend with the new one. BTW, it took only a
few minutes to provide the inhabitants manually.
2019-03-15 17:41:44 -07:00
..
boot feat(frontends/lean, library/init/lean): opaque constants 2019-03-15 17:41:44 -07:00
cmake chore(cmake/Modules/cpplint): disable yet another buggy check 2018-06-06 15:28:44 -07:00
frontends/lean feat(frontends/lean, library/init/lean): opaque constants 2019-03-15 17:41:44 -07:00
init chore(shell,boot): update boot, and initialization process 2019-02-14 14:49:16 -08:00
kernel feat(kernel): opaque constants 2019-03-15 15:45:06 -07:00
library feat(kernel): opaque constants 2019-03-15 15:45:06 -07:00
runtime chore(*): meta ==> unsafe 2019-03-15 15:04:40 -07:00
shared
shell feat(library/init/lean/util): Lean API for profiler 2019-03-06 10:37:38 +01:00
tests feat(library/compiler,runtime): builtin support for lean.name 2019-02-05 12:57:46 -08:00
util chore(util): remove dead code 2019-03-06 06:56:16 -08:00
CMakeLists.txt feat(runtime): statistics 2019-03-05 16:01:06 -08:00
CTestConfig.cmake
CTestCustom.cmake.in
Doxyfile
githash.h.in fix(library): store and validate Lean version of .olean files 2018-01-23 11:14:18 -08:00
memcheck.supp
version.h.in chore(leanpkg/lean_version): recognize nightlies as releases separate from master 2018-03-20 15:14:45 -07:00