Leonardo de Moura
c08a3bc557
refactor(library/typed_expr): move typed_expr to frontends/lean
2018-04-09 15:25:40 -07:00
Sebastian Ullrich
51aabb9b65
feat(frontends/lean/decl_attributes): allow user attributes on inductive types
2017-09-05 23:14:34 +02:00
Leonardo de Moura
603bbe5987
fix(*): gcc 7 linking errors
2017-05-31 16:35:09 -07:00
Leonardo de Moura
62c24f9bb5
chore(*): remove pos_num and num from stdlib
2017-05-25 18:24:16 -07:00
Leonardo de Moura
55fee26b36
feat(library/class): add attribute for tracking symbols occurring in instances of type classes
...
For more information see:
https://github.com/leanprover/lean/wiki/Refactoring-structures
The new attribute [algebra] implements the [algebraic_class] described
in the page above.
2017-05-01 18:02:30 -07:00
Gabriel Ebner
5fdc737dfc
feat(library/tactic): store name of current declaration in tactic_state
2017-01-28 08:27:19 +01:00
Sebastian Ullrich
b04df04120
feat(frontends/lean): rework and simplify completion parsing, enabling completion of empty prefixes
2017-01-10 12:25:33 +01:00
Sebastian Ullrich
26e2aeec7a
feat(frontends/lean,shell): complete attributes
2017-01-06 14:02:31 -08:00
Leonardo de Moura
95ffdca3f7
feat(frontends/lean/decl_attributes): add 'default_priority' attribute
2016-10-01 13:27:08 -07:00
Leonardo de Moura
49cffc0b20
feat(frontends/lean): add compact notation for setting attributes suggested by Sebastian
2016-09-24 15:45:06 -07:00
Leonardo de Moura
03e4fd1038
feat(frontends/lean,library): cleanup instance cmd, and use 'meta instance'
2016-09-24 12:33:25 -07:00
Leonardo de Moura
f00e6c0a96
feat(frontends/lean): anonymous instances
...
The instance name is synthesized automatically.
2016-09-23 13:34:34 -07:00
Leonardo de Moura
6bfd4eb9cf
feat(frontends/lean): add 'instance' keyword
2016-09-23 12:19:05 -07:00
Sebastian Ullrich
cee5bfd983
feat(frontends/lean/decl_attributes): disallow persistent attribute removal
2016-08-23 14:09:35 -07:00
Sebastian Ullrich
abd040589f
feat(frontends/lean/decl_attributes, library/attribute_manager): implement attribute removal
2016-08-23 14:09:35 -07:00
Sebastian Ullrich
ca8be3857c
feat(library/user_attribute): add user-defined attributes and make attribute_manager environment-aware
2016-08-18 12:56:44 -07:00
Daniel Selsam
a9b01991c2
feat(frontends/lean/inductive_cmd): new frontend for the inductive cmd
...
Conflicts:
src/frontends/lean/CMakeLists.txt
src/frontends/lean/structure_cmd.h
2016-08-17 07:34:03 -07:00
Sebastian Ullrich
a2659cdaa5
feat(frontends/lean/decl_attributes): add [attr1, attr2] syntax
2016-08-16 13:49:03 -07:00
Sebastian Ullrich
cb6a6b642e
refactor(library/attribute_manager): remove attribute tokens and use name for attribute names
2016-08-16 13:49:03 -07:00
Sebastian Ullrich
34e00cd5a2
refactor(library/attribute_manger): simplify: make every attribute prioritizable
2016-08-16 13:49:02 -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
48f7731675
chore(frontends/lean/decl_attributes): fix 'make style' warnings
2016-08-05 17:25:37 -07:00
Sebastian Ullrich
15595c0061
refactor(library/attribute_manager): delegate parameter parsing and printing to attribute class
2016-08-05 17:16:04 -07:00
Sebastian Ullrich
c4edad0372
feat(frontends/lean, library): remove attribute and metaclass scoping
...
All data is now part of either a global, permanent scope or a local,
temporary one
2016-07-29 23:44:21 -04:00
Sebastian Ullrich
661fafc940
refactor(frontends/lean): replace different attribute classes with single scoped_ext
2016-07-29 18:51:23 -04:00
Leonardo de Moura
54f2c0f254
feat(library/blast/forward): inst_simp should use the left-hand-side as a pattern (if none is provided by the user)
...
The motivation is to reduce the number of instances generated by ematching.
For example, given
inv_inv: forall a, (a⁻¹)⁻¹ = a
the new heuristic uses ((a⁻¹)⁻¹) as the pattern.
This matches the intuition that inv_inv should be used a simplification
rule.
The default pattern inference procedure would use (a⁻¹). This is bad
because it generates an infinite chain of instances whenever there is a
term (a⁻¹) in the proof state.
By using (a⁻¹), we get
(a⁻¹)⁻¹ = a
Now that we have (a⁻¹)⁻¹, we can match again and generate
((a⁻¹)⁻¹)⁻¹ = a⁻¹
and so on
2015-12-31 20:20:39 -08:00
Leonardo de Moura
128b557d37
refactor(frontends/lean): use attribute_manager to simplify decl_attributes
2015-12-17 22:28:53 -08:00
Leonardo de Moura
e3a35ba4fd
feat(frontends/lean): add 'with_attributes' tactical
...
closes #494
2015-12-13 18:27:44 -08:00
Leonardo de Moura
50df6b5698
feat(frontends/lean): rename '[intro]' ==> '[intro!]' and '[backward]' ==> '[intro]'
2015-12-07 21:33:35 -08:00
Leonardo de Moura
295b1d21f5
feat(frontends/lean): add '[intro]' and '[elim]' annotations
2015-12-07 18:43:15 -08:00
Leonardo de Moura
e5aab3fd63
feat(library/scoped_ext,frontends/lean): add support for setting attributes into different namespaces
2015-12-05 11:15:02 -08:00
Daniel Selsam
139536896c
feat(library/light_lt_manager): light wrappers for ordered rewriting
2015-12-02 22:56:54 -08:00
Leonardo de Moura
028ef47c84
feat(frontends/lean,library/blast/forward/pattern): check whether patterns can be inferred at declaration time
2015-12-02 22:52:55 -08:00
Leonardo de Moura
950f356d9a
refactor(library/blast,frontends/lean): forward pattern index
2015-12-02 22:52:55 -08:00
Leonardo de Moura
fdd442bd38
feat(frontends/lean/decl_attributes): turn on [forward] if pattern hints have been provided
2015-12-02 22:52:54 -08:00
Leonardo de Moura
41ff4bc193
feat(library/blast/forward/pattern): pattern inference and heuristic instantiation index
2015-11-25 23:45:08 -08:00
Leonardo de Moura
d395a54165
feat(frontends/lean): add '[forward]' annotation
2015-11-25 17:44:58 -08:00
Leonardo de Moura
a2f43212d6
feat(frontends/lean): add '[no_pattern]' attribute
2015-11-24 18:48:22 -08:00
Daniel Selsam
21cb409e6c
refactor(library/blast/simplifier): move simplifier module into blast
2015-11-19 19:43:04 -08:00
Daniel Selsam
413989afd6
feat(library/blast/backward): backward chaining strategy
2015-11-18 17:48:39 -08:00
Leonardo de Moura
491c7c55e1
feat(library/simplifier/simp_rule_set): add priorities for simp and congr rules
2015-11-16 22:34:06 -08:00
Leonardo de Moura
744d1cba3d
feat(library,hott,frontends/lean): avoid keywords with hyphen
2015-11-08 14:04:54 -08:00
Leonardo de Moura
18dd7c13f9
feat(frontends/lean): add '[congr]' attribute
2015-07-22 17:21:47 -07:00
Leonardo de Moura
8085123119
refactor(library/simplifier): rename 'rewrite_rule' to 'simp_rule'
2015-07-22 10:39:30 -07:00
Leonardo de Moura
092c8d05b9
feat(frontends/lean,library): rename '[rewrite]' to '[simp]'
2015-07-22 09:01:42 -07:00
Leonardo de Moura
26574e29a9
feat(library/normalize,frontends/lean): allow multiple arguments in [unfold] hint
...
closes #693
2015-07-07 18:01:57 -07:00
Leonardo de Moura
4b1b3e277f
feat(frontends/lean): rename '[unfold-c]' to '[unfold]' and '[unfold-f]' to '[unfold-full]'
...
see issue #693
2015-07-07 16:37:06 -07:00
Leonardo de Moura
4ae9f3ea81
feat(library/coercion): new coercion manager
...
closes #668
2015-07-01 16:32:34 -07:00
Leonardo de Moura
a1d1a8272a
refactor(frontends/lean): move parse_priority to util
2015-06-30 16:22:52 -07:00
Leonardo de Moura
3215af3926
feat(frontends/lean): add '[trans-instance]' attribute
...
see issue #666
2015-06-27 14:07:29 -07:00