Commit graph

112 commits

Author SHA1 Message Date
Leonardo de Moura
ac87de33e7 fix(frontends/lean/structure_cmd): universe level validation in the structure command 2016-09-18 10:00:31 -07:00
Leonardo de Moura
6c84a0a7b1 feat(frontends/lean): use new notation for declaring universes in constant and structure decls 2016-09-13 21:45:16 -07:00
Leonardo de Moura
932d14241b chore(kernel): remove support for mutually inductive datatypes from the kernel 2016-09-10 17:39:17 -07:00
Daniel Selsam
b0c5744eea feat(inductive_compiler): support for mutually inductive types 2016-09-10 14:22:27 -07:00
Leonardo de Moura
8d9e508a11 fix(frontends/lean/structure_cmd): leftover 2016-09-10 12:57:24 -07:00
Leonardo de Moura
d8caecff49 refactor(library/exception): avoid throw_generic_exception functions 2016-09-06 12:37:56 -07:00
Leonardo de Moura
81a30a69d2 refactor(library/normalize): remove unfold and unfold_full attributes 2016-09-05 08:40:58 -07:00
Leonardo de Moura
f7df7dc9a7 refactor(kernel): add reducibility_hints 2016-09-04 16:30:02 -07:00
Leonardo de Moura
a93eada058 feat(library/type_context): improved (and simplified) cache management for type_context 2016-08-23 17:56:58 -07:00
Leonardo de Moura
423319398d fix(frontends/lean/structure_cmd): compilation warning 2016-08-17 15:42:20 -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
Leonardo de Moura
4e0a30d21e chore(frontends/lean/structure_cmd): remove unnecessary dependency 2016-08-16 14:58:13 -07:00
Leonardo de Moura
e384b5c5f9 refactor(frontends/lean): move structure_instance to separate module 2016-08-16 14:56:09 -07:00
Leonardo de Moura
f056f0f2cb refactor(library): definitional ==> constructions 2016-08-11 10:08:22 -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
1041f6d9d8 feat(frontends/lean/structure_cmd): private structures 2016-08-06 00:03:06 -07:00
Leonardo de Moura
46570bd51d fix(frontends/lean/structure_cmd): bug when generating alias for S.induction_on in the structure command 2016-08-05 23:13:39 -07:00
Leonardo de Moura
aeafe0293b feat(frontends/lean/structure_cmd): use new elaborator to process the structure command 2016-08-03 16:56:41 -07:00
Leonardo de Moura
d473622352 refactor(frontends/lean/structure_cmd): remove unnecessary options 2016-08-03 15:48:58 -07:00
Leonardo de Moura
0169989411 chore(library/class): remove transitive instance support
Conflicts:
	src/frontends/lean/structure_cmd.cpp
	src/library/class.cpp
	src/library/class.h
2016-07-29 23:32:10 -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
Leonardo de Moura
a64d1a77ea refactor(library, frontends/lean): remove old coercion management module 2016-07-29 13:51:26 -07:00
Leonardo de Moura
7a92ce38bd refactor(frontends/lean): elaborator_exception ==> old_elaborator_exception 2016-07-26 16:24:28 -07:00
Sebastian Ullrich
c5a8fe02ac feat(frontends/lean): add parent classes to local context in struct definitions
Fixes #1066
2016-07-05 19:22:08 -07:00
Daniel Selsam
aabdabdb17 fix(src/frontends/lean/structure_cmd): fixes #1036 2016-06-14 17:52:31 -07:00
Daniel Selsam
4fdf608c36 fix(src/frontends/lean/structure_cmd): check if indices are provided 2016-06-14 17:52:19 -07:00
Sebastian Ullrich
9561b45af1 fix(frontends/lean): uniform handling of declaration compound names
* allow compound names in `namespace` and `structure`
* adjust error messages

Conflicts:
	src/frontends/lean/builtin_tactics.cpp
2016-06-02 18:13:50 -07:00
Leonardo de Moura
df0d39ccee feat(kernel,library/definitional,frontends/lean/structure_cmd): make sure we can define inductive datatypes and structures containing untrusted declarations
If they contain untrusted declarations, then the associated
declarations (e.g., constructors) will be automatically tagged as untrusted.
2016-06-02 16:19:06 -07:00
Leonardo de Moura
dd4d115cc5 fix(frontends/lean/structure_cmd): mark recursors generated by structure cmd as auxiliary 2016-05-11 14:18:29 -07:00
Leonardo de Moura
c4f25cf15b refactor(frontends/lean): rename elaborate methods 2016-03-30 15:05:24 -07:00
Leonardo de Moura
487a1e7f89 refactor(kernel): remove extension_context
We replaced it with abstract_type_context
2016-03-19 15:15:39 -07:00
Leonardo de Moura
e7f1f409c4 refactor(kernel): simplify kernel type_checker
TODO: cleanup, move justification/metavar/constraints to library
2016-03-18 16:28:42 -07:00
Leonardo de Moura
d8079aa16a refactor(library): create copy of the kernel type_checker in library
Motivation: it will allow us to simplify the kernel type_checker and
make sure it implements the same API provided by type_context
2016-03-18 14:34:10 -07:00
Leonardo de Moura
146edde5b3 feat(library/class): mark instances as quasireducible by default
quasireducible are also known as lazyreducible.

There is a lot of work to be done.
We still need to revise blast, and add a normalizer for type class
instances. This commit worksaround that by eagerly unfolding
quasireducible.
2016-02-25 12:11:29 -08:00
Leonardo de Moura
96f391dda2 feat(library/definitional/projection,frontends/lean/structure_cmd): creating inductive predicates using structure command 2016-02-22 16:09:44 -08:00
Leonardo de Moura
c9e9fee76a refactor(*): remove name_generator and use simpler mk_fresh_name 2016-02-11 18:05:57 -08:00
Leonardo de Moura
a08bc408c8 fix(frontends/lean/structure_cmd): fixes #967 2016-02-04 16:15:18 -08:00
Leonardo de Moura
31cc0ebb6a fix(frontends/lean/structure_cmd): fixes #968 2016-02-04 15:45:38 -08:00
Leonardo de Moura
ce622e9179 feat(frontends/lean): add auto-include for structures and inductive decls 2015-12-13 13:39:34 -08:00
Leonardo de Moura
cf61adc5d5 feat(frontends/lean): identifiers starting with '_' are now reserved 2015-12-10 22:32:03 -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
Leonardo de Moura
9bedbbb739 refactor(library,hott): remove coercions between algebraic structures
They are classes, and mixing coercion with type class resolution is a
recipe for disaster (aka counterintuitive behavior).
2015-11-11 11:57:44 -08:00
Leonardo de Moura
45163acf25 refactor(kernel/inductive): use local constants to represent introduction rules 2015-08-25 03:46:28 -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
859ef441a0 feat(library/class): transitive instances
see issue #666
2015-06-27 14:06:56 -07:00
Leonardo de Moura
0b7859f387 feat(library,frontends/lean): add support for projections in the elaborator
The idea is to simulate the computation rules such as

    pr1 (mk a b) ==> a

in the elaborator
2015-06-26 17:18:29 -07:00
Leonardo de Moura
1c70514231 feat(frontends/lean/structure_cmd): disable conversion optimization for automatically generated coercions 2015-06-21 16:57:37 -07:00
Leonardo de Moura
d0d3f9bb41 refactor(kernel,library,frontends/lean): add helper functions, and cleanup collect_locals 2015-06-05 17:29:36 -07:00