lean4-htt/library/init
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
..
control chore(library/init): remove coroutines from stdlib 2019-03-08 15:34:17 +01:00
data feat(frontends/lean, library/init/lean): opaque constants 2019-03-15 17:41:44 -07:00
lean feat(frontends/lean, library/init/lean): opaque constants 2019-03-15 17:41:44 -07:00
coe.lean fix(library/init): missing @[inline] 2018-09-18 21:42:22 -07:00
core.lean feat(frontends/lean, library/init/lean): opaque constants 2019-03-15 17:41:44 -07:00
default.lean feat(runtime): add efficient fixpoint implementation 2019-03-10 10:09:57 -07:00
env_ext.lean chore(library/init/env_ext): update 2018-09-11 13:55:25 -07:00
fix.lean refactor(library/init/lean/parser/rec): use init.fix 2019-03-12 08:31:58 -07:00
function.lean fix(library/init/function): missing @[inline] 2018-09-20 08:39:25 -07:00
init.md
io.lean feat(frontends/lean, library/init/lean): opaque constants 2019-03-15 17:41:44 -07:00
platform.lean feat(library/vm): add support for system.platform.nbits in the VM 2018-05-03 15:54:54 -07:00
util.lean feat(runtime,library/init/util): add some debugging helper function 2019-02-17 09:22:37 -08:00
wf.lean feat(library/init): unicode notation for heq: ≅ 2019-03-07 10:21:14 -08:00