Leonardo de Moura
f60de96d98
fix(frontends/lean/elaborator): bug at @@ annotation
2016-09-15 17:03:59 -07:00
Leonardo de Moura
83cc67ba67
feat(frontends/lean/definition_cmds): use . instead of [none] to represent the empty set of equations
2016-09-14 09:38:30 -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
ce53c035bc
feat(frontends/lean/decl_util): use the same notation for declaring universes in mutual and single decls
2016-09-13 21:05:18 -07:00
Leonardo de Moura
cf1c50f4e9
fix(frontends/lean/elaborator): get_elim_info_for_builtin
2016-09-13 14:17:08 -07:00
Leonardo de Moura
9765151156
feat(kernel/inductive): relax restriction on metavariables
...
This change does not affect correctness of the kernel, since QED only
process terms that do not contain metavariables.
2016-09-13 13:50:04 -07:00
Leonardo de Moura
24049d8f40
refactor(library/init/logic): rename decidable.tt/ff to decidable.is_true/is_false
2016-09-13 13:40:02 -07:00
Leonardo de Moura
9632f00fbe
test(tests/lean/run): the lean2 macro dec_trivial is tricky to support in the new elaborator
...
Here are some workarounds.
2016-09-13 08:09:12 -07:00
Leonardo de Moura
cf30d31024
fix(library/tactic/cases_tactic): missing case
2016-09-12 17:41:22 -07:00
Leonardo de Moura
0b90ace9f8
feat(frontends/lean/builtin_exprs): basic support for let-expr with patterns
2016-09-11 22:21:10 -07:00
Leonardo de Moura
b957d3ee94
fix(frontends/lean/parser): make sure anonymous constructors can be used in patterns
2016-09-11 22:13:50 -07:00
Leonardo de Moura
38f7f9bbdc
fix(library/type_context): ignore unification constraints of the form ?m =?= delayed[?m]
2016-09-11 17:25:30 -07:00
Leonardo de Moura
24f76d5260
feat(frontends/lean/elaborator): improve convoy and elim
2016-09-10 22:51:26 -07:00
Leonardo de Moura
214e91d1ae
feat(frontends/lean/elaborator): improve match_convoy in the new elaborator
2016-09-10 21:41:40 -07:00
Leonardo de Moura
318c94bfce
fix(kernel/inductive/inductive): kernel should reject inductive datatype declaration for I where I occurs in an index
2016-09-10 17:45:58 -07:00
Daniel Selsam
b0c5744eea
feat(inductive_compiler): support for mutually inductive types
2016-09-10 14:22:27 -07:00
Leonardo de Moura
019f40c48c
feat(frontends/lean/decl_util): avoid _main in nested auxiliary declarations
2016-09-10 14:13:30 -07:00
Leonardo de Moura
91994ff823
feat(frontends/lean/elaborator): switch to new let-decls
2016-09-10 13:00:53 -07:00
Leonardo de Moura
da966eeba0
chore(tests/lean): delete old tests
2016-09-10 12:13:11 -07:00
Leonardo de Moura
4df0c1fe93
feat(library/equations_compiler/compiler): do not use let-expresssions at pull_nested_rec_fn
2016-09-09 18:20:36 -07:00
Leonardo de Moura
c25ac7f54f
feat(library/equations_compiler): pull nested recursive calls
2016-09-09 17:56:56 -07:00
Leonardo de Moura
77bbd1e4e7
test(tests/lean/run): add more tests for new elaborator
2016-09-09 12:39:37 -07:00
Leonardo de Moura
cef118cbda
chore(tests/lean/run/new_elab1): make sure new elaborator is used in the test
2016-09-08 19:24:39 -07:00
Leonardo de Moura
89bc55aece
feat(frontends/lean/elaborator): improve expected type for equation rhs
2016-09-08 19:22:26 -07:00
Leonardo de Moura
23e443ef71
feat(frontends/lean/elaborator): add support for no_confusion in the new elaborator
2016-09-08 18:48:48 -07:00
Leonardo de Moura
b12fa5c8da
feat(frontends/lean): add support for 'suffices'-expression in the new elaborator
2016-09-08 17:26:27 -07:00
Leonardo de Moura
dcc314c109
feat(library/noncomputable): improve is_noncomputable
2016-09-08 14:02:23 -07:00
Leonardo de Moura
7d56382baa
feat(library/equations_compiler/util): generate equation lemmas for equations using invertible functions
2016-09-07 17:57:10 -07:00
Leonardo de Moura
57f02dd768
test(tests/lean/run/pack_unpack1): add dependent function example
2016-09-07 16:05:05 -07:00
Leonardo de Moura
2f7a1a3579
feat(library/equations_compiler/elim_match): add support for invertible functions
2016-09-07 08:53:56 -07:00
Leonardo de Moura
f954ddbdbf
feat(library/injectivity): add injectivity attribute
2016-09-06 18:01:09 -07:00
Leonardo de Moura
31de40ff4d
refactor(frontends/lean): rename attribute [constructor] ==> [elab_with_expected_type]
2016-09-06 13:12:51 -07:00
Leonardo de Moura
d5aae42b7c
feat(frontends/lean): use new elaborator to elaborate examples when set_option new_elaborator true
2016-09-05 09:52:01 -07:00
Leonardo de Moura
2a912c2650
feat(frontends/lean, library): move constructor attribute to frontend
...
Now, it only affects the elaborator.
2016-09-05 09:34:45 -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
d6d68cd70a
feat(library/vm): expose reducibility_hints
2016-09-04 18:09:10 -07:00
Leonardo de Moura
6c80f7b75c
feat(library/tactic/cases_tactic): normalize type
2016-09-04 17:18:50 -07:00
Leonardo de Moura
2354341c58
test(tests/lean/run): add test for equation compiler
2016-09-04 16:46:11 -07:00
Leonardo de Moura
a74f02546b
refactor(*): remove abbreviation command
2016-09-03 17:11:29 -07:00
Leonardo de Moura
696b190a8d
feat(library/type_context): mimic behavior of the kernel type_checker
2016-09-03 16:43:33 -07:00
Leonardo de Moura
80607c8895
perf(kernel/type_checker): use definitional height again at is_def_eq
2016-09-03 16:18:39 -07:00
Leonardo de Moura
a862c6e89f
refactor(library/init/meta/declaration): def will be a keyword
2016-09-03 15:02:27 -07:00
Leonardo de Moura
4d7c233684
feat(library/equations_compiler/elim_match): use if-then-else when next pattern for every equation is a variable or value
2016-09-03 13:22:25 -07:00
Leonardo de Moura
13f0d4e09a
refactor(library/equations_compiler): new equation lemma generation
...
The idea is to generate a lemma based on the left-hand-side provided by
the user. This feature is essential for supporting the derived inductive
datatype constructors.
2016-09-02 14:04:09 -07:00
Leonardo de Moura
5e4aabf62d
feat(library/init/datatypes): add default has_sizeof instance
...
Motivation: make sure sizeof is defined for every type
2016-09-02 10:32:37 -07:00
Leonardo de Moura
39dc336310
feat(library/tactic/user_attribute): add set_basic_attribute and unset_attribute tactics
2016-09-01 14:17:05 -07:00
Leonardo de Moura
546f65b542
refactor(init/datatypes, init/logic): define sizeof instances and simp lemmas
2016-09-01 10:33:50 -07:00
Leonardo de Moura
4131b4168c
refactor(library/init): define sizeof at init/datatypes
2016-09-01 09:47:46 -07:00
Leonardo de Moura
51a338d9a1
fix(library/equations_compiler/structural_rec): support for reflexive inductive datatypes
2016-08-31 10:46:32 -07:00
Leonardo de Moura
a8690205c9
feat(library/type_context): improve on_is_def_eq_failure for stuck terms
2016-08-30 10:51:40 -07:00