Leonardo de Moura
7106bcf7a5
chore(frontends/lean/inductive_cmds): remove app_builder dependency
2017-12-15 11:35:34 -08:00
Leonardo de Moura
7c1447d615
fix(library/app_builder,library/util): get_level's with slightly different behavior
2017-12-15 11:33:29 -08:00
Leonardo de Moura
aed2c442a3
chore(library/app_builder): add assertion stating that app_builder::mk_app arguments do not contain tmp metavars
2017-12-15 11:22:15 -08:00
Leonardo de Moura
8850099e3d
chore(library/tactic/smt): remove app_builder dependency
2017-12-15 11:18:41 -08:00
Leonardo de Moura
0492e49a3f
fix(library/type_context): fixes #1888
2017-12-15 08:49:45 -08:00
Leonardo de Moura
73c4ea7e35
chore(library/type_context): typos and missing remarks
2017-12-14 18:26:41 -08:00
Leonardo de Moura
f0f2fc42b6
doc(library/type_context): design notes for new type_context
2017-12-14 17:57:28 -08:00
Leonardo de Moura
6c44dd1b7f
feat(frontends/lean): add hide command
...
cc: @kha
2017-12-13 11:53:21 -08:00
Leonardo de Moura
5fa857dc69
fix(library/tactic/tactic_state): do not diplay case for empty tag
2017-12-11 16:27:03 -08:00
Leonardo de Moura
d44996e034
feat(library/init/meta): propagate tag information
2017-12-10 19:15:41 -08:00
Leonardo de Moura
e23db3970a
feat(library/init/meta/tactic): apply tactic return parameter name associated with new metavars
2017-12-10 12:11:58 -08:00
Leonardo de Moura
41cfa1bf63
feat(library/init/meta/tactic): induction tactic returns constructor/param names
2017-12-10 09:46:39 -08:00
Leonardo de Moura
c65376d71c
chore(library/constructions/brec_on): suffix _1 is not needed when naming brec_on functional param
...
Reason: we removed support for mutually inductive datatypes from the
kernel.
This change is relevant for the new goal tagging feature.
2017-12-10 09:37:12 -08:00
Leonardo de Moura
f288205cce
feat(library/tactic): goal tagging
2017-12-09 16:29:03 -08:00
Leonardo de Moura
ef784ce7b8
fix(library/tactic/simp_lemmas): auto_params when adding simp lemmas
2017-12-09 09:47:39 -08:00
Leonardo de Moura
4f1f15a425
refactor(library/init/meta/match_tactic): cleanup match_tactic interface
2017-12-06 12:52:41 -08:00
Leonardo de Moura
1b34160396
feat(library/tactic/tactic_state): display number of goals
2017-12-06 11:20:09 -08:00
Leonardo de Moura
a056e87350
fix(library/init/meta/injection_tactic): add support for ginductive datatypes
2017-12-06 09:39:20 -08:00
Sebastian Ullrich
14b2c343d0
chore(util/debug): show current task in assertion message
2017-12-05 17:15:55 -08:00
Leonardo de Moura
bc89ebc19c
feat(kernel/inductive): improve how induction hypotheses are named
...
See doc/changes.md
2017-12-05 15:58:09 -08:00
Leonardo de Moura
a2f55e5d7b
feat(library/tactic/induction_tactic): new name generator for induction and cases tactics
2017-12-05 14:57:36 -08:00
Leonardo de Moura
458958b9fc
feat(kernel/inductive): use ih to name induction hypothesis (instead of ih_1) when there is only one
2017-12-05 13:50:24 -08:00
Leonardo de Moura
54004d4972
fix(library/tactic/cases_tactic): try to clear input hypothesis when performing dependent elimination
...
The `induction h` tactic tries to clear hypothesis `h` after it is
applied. But, before this commit, `cases h` would only try to clear `h`
when performing non-dependent elimination. This was problematic when
writing tactic scripts for automating proofs.
2017-12-05 11:03:46 -08:00
Leonardo de Moura
51a87212fa
chore(frontends/lean/inductive_cmds): remove copy&paste code
2017-12-04 15:56:04 -08:00
Sebastian Ullrich
450ca5834c
fix(frontends/lean/parser): fix debug build
2017-11-30 17:47:49 +01:00
Sebastian Ullrich
0ca9eb16c1
fix(library/type_context): preprocess_class: always solve universe mvars in inout
2017-11-29 17:21:02 -08:00
Leonardo de Moura
4fdf452b17
fix(library/type_context): make sure all assigned metavariables are substituted
2017-11-29 17:19:15 -08:00
Leonardo de Moura
04f3684681
fix(library/tactic/cases_tactic): debug build
2017-11-29 15:05:19 -08:00
Sebastian Ullrich
c521a2d3c7
fix(library/type_context): do not cache queries containing tmp mvars
2017-11-29 14:43:33 -08:00
Leonardo de Moura
960832045f
fix(library/type_context): failure condition
2017-11-29 14:35:58 -08:00
Leonardo de Moura
a411e6337c
chore(library/type_context): typo
2017-11-29 14:35:36 -08:00
Leonardo de Moura
49b5fbe2c2
fix(library/type_context): add missing update
...
We also improved the comments, and documented alternative designs that
have been considered.
2017-11-28 08:07:11 -08:00
Leonardo de Moura
641a4548b6
fix(library/tactic/cases_tactic): use inj_arrow instead no_confusion when index is a nested and/or mutually recursive datatype
...
The `no_confusion` construction is only generated for inductive
datatypes supported in the kernel.
Before this commit, given `h : T`, `cases h` could leak the internal encoding
used by the inductive compiler WHEN a nested and/or mutual inductive
datatype is used to index the inductive datatype `T`.
The new test exposes the problem.
The solution implemented in this commit uses inj_arrow lemmas
generated by the inductive compiler. We only use the lemmas
if the target is a proposition. If it is not, we sign an error.
The reason for this limitation is documented in the source code.
cc @jroesch @dselsam
Jared: the information leakage has been fixed. So, students will not be
confused by the internal encoding used in the inductive compiler.
I added the example I posted on slack as a new test.
Note that, the workaround I used has been removed.
2017-11-27 21:56:35 -08:00
Sebastian Ullrich
7c63b2f046
fix(frontends/lean/parser): unicode pattern aliases
2017-11-27 12:43:15 +01:00
Sebastian Ullrich
18cf63e37f
fix(frontends/lean/elaborator): avoid assertion error on delayed abstraction in structure notation
2017-11-24 21:27:55 +01:00
Leonardo de Moura
e12275a925
perf(library/equations_compiler/elim_match): use max_sharing
2017-11-22 16:41:42 -08:00
Leonardo de Moura
47994fe14e
chore(library): remove id_locked
2017-11-22 16:29:04 -08:00
Leonardo de Moura
64f575a2d5
perf(library/equations_compiler): performance problem for definitions that produce many equational lemmas
...
The new test and comment at src/library/equations_compiler/util.cpp
explains the issue.
2017-11-22 16:16:11 -08:00
Leonardo de Moura
dd9d8e9552
chore(library/equations_compiler): improve comments
2017-11-22 14:55:40 -08:00
Leonardo de Moura
01bbf27fb0
fix(library/equations_compiler/util): typo
2017-11-22 12:50:23 -08:00
Leonardo de Moura
7c35a25169
fix(frontends/lean): do not generate equation lemma for match expressions occurring in by tac nested in regular definitions
2017-11-22 12:49:32 -08:00
Leonardo de Moura
7d3133a845
fix(frontends/lean/structure_cmd): do not generate equation lemma for _default meta definitions
2017-11-22 12:24:51 -08:00
Sebastian Ullrich
30cfc6cf0b
feat(frontends/lean/{parser,elaborator}): structure instance patterns
2017-11-22 12:16:28 -08:00
Sebastian Ullrich
b3587e15a3
fix(library/tactic/user_attribute): persist user attribute parameters
...
Fixes #1871
2017-11-22 19:19:05 +01:00
Leonardo de Moura
0208755c82
fix(library/vm/vm_string): bug at VM string <
2017-11-21 16:26:36 -08:00
Sebastian Ullrich
06a316ad30
fix(frontends/lean/elaborator): type of '..' placeholders
...
Fixes #1870
2017-11-19 18:57:18 +01:00
Sebastian Ullrich
0aacccd8c9
feat(frontends/lean): change structure update notation
...
`{s with ...}` is now `{..., ..s}`, which more clearly expresses that the
result type is not necessarily equal to the type of `s` (in absence of an
expected type and a structure name, we still default to the type of `s`).
Multiple fallback sources can be given: `{..., ..s, ..t}` will fall back to
searching a field in `s`, then in `t`. The last component can also be `..`,
which will replace any missing fields with a placeholder.
The old notation will be removed in the future.
2017-11-17 16:40:47 -08:00
Sebastian Ullrich
e7e05a3ad0
feat(frontends/lean): add aliasing patterns id@pat
2017-11-17 16:35:21 -08:00
Sebastian Ullrich
d037ab1d4b
refactor(frontends/lean/structure_cmd): remove awkward pointer index computation
2017-11-17 16:31:30 -08:00
Sebastian Ullrich
aa8791a9ee
fix(frontends/lean/structure_cmd): support dependent parents in new structure cmd
2017-11-17 16:31:30 -08:00