Commit graph

20 commits

Author SHA1 Message Date
Leonardo de Moura
4b6583ae9f refactor(util): move mpz/mpq to util
The new lean_obj objects will be defined at util.
Reason: we will define `name`, `options`, `format`, ... on top of lean_obj.
lean_obj depends on mpz.
Remark: lean_obj will replace vm_obj.
2018-04-12 16:43:11 -07:00
Leonardo de Moura
9afb53fad5 feat(kernel/expr): allow metavariables to have user-facing names
We need this feature for:
1) Defining nonlinear search patterns. Example: (?m <= ?m + 1)
2) Preprocessing recursive equations and support the pattern
refinement approach used in Agda. Example: in Agda, they accept
```
def append {A : Type} : Π (m n : nat), Vec A m -> Vec A n -> Vec A (m + n)
| m n nil            ys := ys
| m n (cons m' x xs) ys := cons x (append m' n xs ys)
```
These equations have to be refined. For example, `m` has to be
replaced with `0` (in the first equation), and `succ m'` in the
second. To implement this kind of refinement, we need to convert
the pattern variables (local constants) into metavariables during
elaboration. Then, the unassigned metavariables become local constants
again. This preprocessing step will fix some of the issues on #1594.
To completely fix #1594, we will need yet another preprocessing step
which will implement "complete transition" used in the equation
compiler before we start elim_match.cpp
2017-07-16 07:16:41 -07:00
Gabriel Ebner
2fd50bf460 fix(checker/checker): set the printing function 2017-07-14 21:45:39 +01:00
Leonardo de Moura
3d603ec28e feat(kernel,library,frontends/lean,api): remove global universe levels from kernel and APIs 2017-02-08 17:41:44 -08:00
Leonardo de Moura
941ba6d96c chore(*): style 2017-01-31 11:04:21 -08:00
Gabriel Ebner
fb9b719a22 chore(checker/simple_pp): pretty-print changed Sort/Prop/Type 2017-01-31 10:20:56 +01:00
Gabriel Ebner
bc75c2423f feat(checker): only print axioms that are referenced by the specified theorems 2017-01-31 10:20:56 +01:00
Gabriel Ebner
7d14cb640c feat(checker/text_import): import definitions whose type is in Prop as theorems 2017-01-31 10:20:56 +01:00
Gabriel Ebner
f404e8a2be feat(library/export,checker): add basic support for mixfix notation 2017-01-31 10:20:56 +01:00
Gabriel Ebner
63a8070bb3 feat(checker/simple_pp): display binder info 2017-01-31 10:20:56 +01:00
Gabriel Ebner
54820506e4 feat(library/export): export quotient initialization 2017-01-31 10:20:55 +01:00
Gabriel Ebner
32c97df697 chore(checker): do not set LEAN_PATH unnecessarily 2017-01-31 10:20:55 +01:00
Gabriel Ebner
661dd9c8a3 feat(checker): add simple pretty-printing 2017-01-31 10:20:55 +01:00
Gabriel Ebner
0cd7d6ba7f fix(checker): fail on file not found 2017-01-31 09:39:31 +01:00
Gabriel Ebner
ba23228903 fix(checker): fix emscripten build 2017-01-31 09:39:31 +01:00
Gabriel Ebner
5769c2ad0f fix(checker): fix windows build 2017-01-31 09:39:31 +01:00
Gabriel Ebner
fb3d68d172 chore(checker): install leanchecker 2017-01-31 09:39:31 +01:00
Gabriel Ebner
94565113a6 chore(checker): remove gmp, mpfr, and dl library dependencies 2017-01-31 09:39:31 +01:00
Gabriel Ebner
61804eb8e9 chore(util/sexpr): remove mpz and mpq cases 2017-01-31 09:39:31 +01:00
Gabriel Ebner
9e7ca0a969 feat(checker): add leanchecker executable 2017-01-31 09:39:31 +01:00