Commit graph

11891 commits

Author SHA1 Message Date
Sebastian Ullrich
b27ba6288d feat(frontends/lean/print_cmd): implement 'print attributes' 2016-08-12 15:36:12 -07:00
Sebastian Ullrich
e0e8a3aff2 refactor(library/abbreviation): make parsing_only a real attribute 2016-08-12 15:36:12 -07:00
Leonardo de Moura
c6678f3f61 chore(tmp): add wf compilation example 2016-08-12 15:34:56 -07:00
Leonardo de Moura
f3dbd0c69a chore(library): disable stdlib but init and systems folder 2016-08-11 18:42:10 -07:00
Leonardo de Moura
0fcbcb4cce chore(tests/lean): make sure tests only use init and systems.IO 2016-08-11 18:31:33 -07:00
Leonardo de Moura
f6df7fb4d1 chore(tests/lean/run): make sure tests only use init and system.IO 2016-08-11 18:13:00 -07:00
Leonardo de Moura
e38be05717 chore(tests/lean): remove tests with 'exit' 2016-08-11 16:24:33 -07:00
Leonardo de Moura
f003bd8df8 chore(tests/lean): erase old blast tests 2016-08-11 16:18:20 -07:00
Leonardo de Moura
083bbdb382 chore(library/blast): erase old blast folder 2016-08-11 16:14:44 -07:00
Leonardo de Moura
a05f803a45 refactor(library/equations_compiler/equations): add new headers 2016-08-11 16:12:14 -07:00
Leonardo de Moura
a641f9dfc0 feat(frontends/lean): add new definition command skeleton 2016-08-11 14:38:35 -07:00
Daniel Selsam
bc7e081ac1 feat(library/inductive_compiler): scaffold for inductive compiler 2016-08-11 13:48:54 -07:00
Daniel Selsam
53190c38ca feat(library/inductive): scaffold for inductive type manager 2016-08-11 13:48:54 -07:00
Daniel Selsam
8aebea558a feat(frontends/lean/inductive_cmds): scaffold for new inductive commands 2016-08-11 13:48:54 -07:00
Leonardo de Moura
80b6bb47f8 feat(frontends/lean): parse mutual_definition 2016-08-11 13:47:52 -07:00
Leonardo de Moura
65032fb9a4 fix(init/init): missing initialization 2016-08-11 10:08:30 -07:00
Leonardo de Moura
09459c0d84 refactor(library/equations_compiler): isolate old equations compiler 2016-08-11 10:08:30 -07:00
Leonardo de Moura
fc4e304b27 refactor(library): move equations to equations_compiler 2016-08-11 10:08:30 -07:00
Leonardo de Moura
f056f0f2cb refactor(library): definitional ==> constructions 2016-08-11 10:08:22 -07:00
Leonardo de Moura
fd0b593fba feat(frontends/lean): add definition_cmds files 2016-08-11 09:40:24 -07:00
Leonardo de Moura
11043bc888 chore(frontends/lean/builtin_cmds): remove dead code 2016-08-11 08:38:39 -07:00
Leonardo de Moura
8ba17af50b fix(frontends/lean/builtin_cmds): non-determinism 2016-08-11 08:01:44 -07:00
Leonardo de Moura
f5c35f8d76 chore(*): fix compilation warnings 2016-08-10 18:03:13 -07:00
Leonardo de Moura
8f33269286 feat(frontends/lean): add decl_util module for definition/inductive commands 2016-08-10 17:04:12 -07:00
Leonardo de Moura
ae6219ba28 refactor(frontends/lean/elaborator): improve API 2016-08-10 14:34:54 -07:00
Leonardo de Moura
0014d9d212 feat(emacs/lean-syntax): add 'def' and 'mutual_def' 2016-08-10 12:21:23 -07:00
Leonardo de Moura
8498bbaeff refactor(frontends/lean/elaborator): allow elaborator to add auxiliary definitions 2016-08-10 08:31:00 -07:00
Leonardo de Moura
e5cf12e2ad refactor(frontends/lean/elaborator): cleanup interface 2016-08-10 08:20:10 -07:00
Leonardo de Moura
a0a72b5b82 refactor(frontends/lean): move local_context_adapter to separate folder 2016-08-10 07:52:38 -07:00
Leonardo de Moura
ac57fb9d2a fix(frontends/lean/match_expr): nary match revision 2016-08-10 07:24:10 -07:00
Leonardo de Moura
6d21896cd5 chore(emacs/lean-syntax): highlight mutual_definition and mutual_inductive 2016-08-09 18:49:26 -07:00
Leonardo de Moura
4e307f906f fix(library/init/function): '$' notation should be left-associative 2016-08-09 16:50:36 -07:00
Leonardo de Moura
f75de2e950 chore(library/definitional,frontends/lean): remove decreasing macro 2016-08-09 16:27:33 -07:00
Leonardo de Moura
8c36cd04a3 feat(library/init/sigma_lex): add skip_left relation for sigma 2016-08-09 11:17:12 -07:00
Leonardo de Moura
5bdffdf162 feat(library/init/sigma_lex): add rev_lex 2016-08-09 10:36:53 -07:00
Leonardo de Moura
8d2a3fc980 feat(library/init/sigma_lex): add lex_ndep for sigma types 2016-08-09 08:54:13 -07:00
Leonardo de Moura
75904f6dc6 chore(library/init/sigma_lex): cleanup 2016-08-09 08:38:41 -07:00
Leonardo de Moura
9ac7ee1624 refactor(library/init): well_founded is not a type class anymore 2016-08-08 14:28:45 -07:00
Leonardo de Moura
2736ac48f4 fix(library/compiler/inliner): disable problematic optimization 2016-08-08 13:59:12 -07:00
Leonardo de Moura
53aa89f1e1 fix(frontends/lean/structure_cmd): generate code for automatically generated coercions 2016-08-08 13:58:34 -07:00
Leonardo de Moura
1d6b1d381b refactor(library/init): rename measurable to has_sizeof 2016-08-08 13:58:10 -07:00
Leonardo de Moura
139c15878d chore(frontends/lean/decl_cmds): change syntax for specifying custom well-founded relations 2016-08-08 13:30:09 -07:00
Sebastian Ullrich
82657b3b64 refactor(library/compiler/inliner, library): replace inline command with attribute
sed -Ei 's/inline (protected )?(meta_)?definition (\S+)/\1\2definition \3 [inline]/' library/**/*.lean
2016-08-08 12:45:22 -07:00
Sebastian Ullrich
c3ea0c1852 refactor(frontends/decl_cmds): simplify definition parsing logic
Also restrict syntax to `inline? (private|protected)? noncomputable?`
2016-08-08 12:44:37 -07:00
Leonardo de Moura
1602a53336 feat(frontends/lean): nary match 2016-08-08 10:04:58 -07:00
Leonardo de Moura
a52221d939 chore(library/data): use mk_dec_eq_instance 2016-08-08 09:34:57 -07:00
Leonardo de Moura
371dd9d1e1 refactor(frontends/lean): move match-expr parser to different module 2016-08-08 09:05:22 -07:00
Leonardo de Moura
325d590bd0 fix(frontends/lean): add missing files 2016-08-08 08:16:31 -07:00
Leonardo de Moura
b9c62af37d feat(frontends/lean/parser): remove unnecessary restriction 2016-08-07 11:40:39 -07:00
Leonardo de Moura
1e6b3614ab feat(frontends/lean): new pattern matching validation
@Kha, we now support variable/constant shadowing in patterns.
A constant may occur in a pattern if it is a constructor or tagged with
the new [pattern] attribute. In the standard library, I have tagged
'add', 'zero', 'one', 'bit0', 'bit1' and 'rfl' with this new attribute.
BTW, arbitrary constants and variables may occur nested in type ascriptions and
inaccessible terms.

Here is an example:

     meta_definition tactic_result_to_string {A : Type} : tactic_result A → string
     | (success a s)   := to_string a
     | (exception ⌞A⌟ e s) := "Exception: " ++ to_string (e ())

I had to use the inaccessible ⌞A⌟ in the example above, otherwise, we would be shadowing the parameter
{A : Type}, and we would get a type error.

The new validation is performed at to_pattern_fn (parser.cpp).
2016-08-07 11:31:11 -07:00