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