Sebastian Ullrich
7412512579
fix(frontends/lean/structure_cmd): apply attributes last
2017-09-11 16:56:02 -07:00
Sebastian Ullrich
230bf7e8d9
fix(frontends/lean/decl_cmds): constant/axiom cmds: apply attributes
2017-09-11 16:56:02 -07:00
Leonardo de Moura
d428eca8a7
fix(library/equations_compiler,frontends/lean): private name support and alias generation for auxialiary declarations
...
fixes #1804
Remark: now, all auxiliary definitions in a private declaration share
the same "private" prefix.
2017-09-11 16:46:56 -07:00
Sebastian Ullrich
d82df26ff0
fix(frontends/lean/elaborator): go back to ignoring implicit args in quote patterns
2017-09-11 09:33:38 -07:00
Sebastian Ullrich
f242d04d55
chore(emacs/lean-dev): lean-diff-test-file produced wrong paths
2017-09-10 09:53:23 +02:00
Sebastian Ullrich
869ac974b2
fix(init/meta/interactive): assume: use rbp 2
2017-09-10 09:53:07 +02:00
Sebastian Ullrich
0bf96e5752
fix(frontends/lean/elaborator): revert dubious workaround of mine
...
Synthesizing an expr placeholder in an elaborated term doesn't make much sense
2017-09-08 13:23:16 +02:00
Leonardo de Moura
1f757ba84e
fix(frontends/lean/pp): fixes #1817
2017-09-07 15:23:58 -07:00
Mario Carneiro
87f2ec08ad
feat(init/meta/interactive): suffices tactic
...
Just a simple manipulation of the `have` tactic, but it allows the use of `suffices h : T, from p,` in tactic mode.
2017-09-06 10:50:31 -07:00
Gabriel Ebner
19777cf9eb
fix(frontends/lean/definition_cmds): show trace messages in examples
2017-09-06 14:44:44 +02:00
Gabriel Ebner
5adb3630b2
chore(tests): update test output
2017-09-06 14:27:39 +02:00
Gabriel Ebner
5f8cf45073
feat(frontends/lean/elaborator): apply to-sort coercion also in arguments
2017-09-06 14:15:30 +02:00
Gabriel Ebner
7b18d5828d
feat(frontends/lean/elaborator): trigger coe_to_fun even when expected type has metavariables
...
We only need to know that the expected type is a Π to perform
to-function coercion. Related to #1402 .
Fixes https://github.com/gebner/hott3/issues/2
2017-09-06 11:20:04 +02:00
Gabriel Ebner
b59d2771ea
fix(doc/changes): describe fallout from parameterized user attributes
...
@kha This was an unexpected breakage resulting from #1809 .
2017-09-06 08:39:30 +02:00
Leonardo de Moura
88cd294a09
feat(src/kernel/error_msgs): show aliased variables when printing error messages
...
closes #1814
@kenmcmil: the error messages will now list aliased variables.
For example, in your file, the new error message is:
```
invalid type ascription, term has type
triple (ctxpre c' s_1 ∧ ctxpre c'_1 s_1) (bndngapp b s_1) (ctxpost c' s_1 ∧ ctxpost c'_1 s_1)
but is expected to have type
triple (ctxpre c' s_1 ∧ ctxpre c'_1 s_1) (bndngapp b s_1) (ctxpost c' s_1 ∧ ctxpost c'_1 s_1)
types contain aliased name(s): c'
remark: the tactic `dedup` can be used to rename aliases
state:
...
```
2017-09-05 16:46:44 -07:00
Leonardo de Moura
51bac2918f
chore(library/init/core): declare and using structure
...
This change was requested by several users.
2017-09-05 15:08:20 -07:00
Leonardo de Moura
3af8ca11bc
chore(tests/lean/run/1797): add test for #1797
2017-09-05 14:36:51 -07:00
Mario Carneiro
cc9de4af58
feat(init/meta/interactive): cases with equality
...
This is the equivalent of the `ginduction` tactic for cases, but rolled into the same syntax as `cases` itself. `cases h : term` is the syntax, and it will introduce a hypothesis `h : term = C a b...` demonstrating that the original term is equal to the current case.
I considered the possibility of calling `injection` on the generated equalities, but it's useless in the casaes when the equality carries some real information (such as `f x = C1 a`), and when the input term is a local constant, `injection` will do subst, which will undo the effect of the `cases`. If the input term is a constructor, then `injection` would do something interesting, but you would never want to call `cases` in this case because the constructor is already exposed.
2017-09-05 14:31:52 -07:00
Leonardo de Moura
8a10d4c72c
fix(library/init/meta/injection_tactic): fixes #1805
2017-09-05 14:20:22 -07:00
Sebastian Ullrich
0dc9d1b4ac
chore(doc/changes): update changelog
2017-09-05 23:14:34 +02:00
Sebastian Ullrich
1544c3d390
feat(library/tactic/user_attribute,init/meta/attribute): user_attribute.set_param
2017-09-05 23:14:34 +02:00
Sebastian Ullrich
399bb95065
chore(emacs/lean-dev): fix lean-diff-test-file
2017-09-05 23:14:34 +02:00
Sebastian Ullrich
52a9f82bc2
feat(init/meta/derive): implement [derive] attribute
2017-09-05 23:14:34 +02:00
Sebastian Ullrich
51aabb9b65
feat(frontends/lean/decl_attributes): allow user attributes on inductive types
2017-09-05 23:14:34 +02:00
Sebastian Ullrich
ea6a4159a9
feat(library/tactic/user_attribute,init/meta/attribute): implement parameterized user attributes
2017-09-05 23:14:34 +02:00
Sebastian Ullrich
9ed678d80a
feat(frontends/lean/elaborator): structure notation: synthesize instance-implicit fields
2017-09-05 23:14:34 +02:00
Sebastian Ullrich
3188c4cbcf
refactor(library/tactic/user_attribute,init/meta/attribute): merge caching_user_attribute into user_attribute
...
The inheritance-based approach doesn't scale to a second subclass for parameterized attributes
2017-09-05 23:14:34 +02:00
Sebastian Ullrich
3aa5ebb8bd
feat(frontends/lean/elaborator): structure notation: allow explicit ctor param when given expected type
2017-09-05 23:14:34 +02:00
Sebastian Ullrich
da785d96a0
fix(frontends/lean/elaborator): synthesize metavars in e before trying to synthesize reflected e
2017-09-05 23:14:34 +02:00
Leonardo de Moura
da46862b46
fix(library/init/meta/interactive): fixes #1813
2017-09-05 13:33:05 -07:00
Gabriel Ebner
f1ec117a24
doc(changes): option.{map,bind} renaming
2017-09-05 17:13:07 +02:00
Gabriel Ebner
40de4f14c1
feat(library/tactic/simp_lemmas): allow simplification with let-bindings in the local context
2017-09-05 10:24:02 +02:00
Mario Carneiro
f5253fd060
fix(init/data/option/instances): Use option.* instead of option_*
...
This enables use of projection notation. Note that the notations are not always available here since they require one universe instead of two.
2017-09-05 08:35:26 +02:00
Gabriel Ebner
292527896a
feat(leanpkg): store Lean version in leanpkg.toml
2017-09-05 08:34:40 +02:00
Gabriel Ebner
488850e03a
fix(library/util): get_num_inductive_hypotheses_for: use whnf to detect recursive arguments
...
Fixes #1812 .
2017-09-05 08:28:32 +02:00
Gabriel Ebner
2d69fc9cd7
fix(library/init/meta/coinductive_predicates): bug with reflexive occurrences
2017-09-04 09:54:12 +02:00
Sebastian Ullrich
f255513fdc
fix(frontends/lean/definition_cmds): apply attributes after declaring equational lemmas
...
Fixes `@[simp] def ...`
2017-09-01 13:36:53 +02:00
Gabriel Ebner
8837ce0f31
fix(shell/lean): add missing newline
2017-08-29 16:40:04 +02:00
Gabriel Ebner
de0fc09ab9
fix(library/congr_lemma): always return heq in mk_hcongr_lemma
2017-08-29 16:36:37 +02:00
Gabriel Ebner
eda1efcb5f
fix(library/init/meta/congr_tactic): export congr as an interactive tactic
2017-08-29 16:34:59 +02:00
Gabriel Ebner
05178ad950
chore(frontends/lean/decl_cmds,emacs/lean-syntax): typo
2017-08-28 17:04:03 +02:00
Gabriel Ebner
9920062b69
fix(kernel/expr,library/constructions/projection): preserve instance-implicitness in structure parameters
2017-08-27 16:47:04 +02:00
Sebastian Ullrich
07d8b18caf
feat(init/meta/pexpr): expose pexpr.is_placeholder
2017-08-26 23:22:06 +02:00
Johannes Hölzl
2e5284add7
fix(library/init/algebra/ordered_field): remove unused argument from div_two_lt_of_pos
2017-08-24 16:27:42 +02:00
Sebastian Ullrich
3062c6feb7
feat(init/meta): expose pexpr.get_structure_instance_info
2017-08-24 10:36:43 +02:00
Sebastian Ullrich
cfbb298a2a
fix(emacs/lean-type): lean-helm-definitions: disable client-side filtering & caching
2017-08-24 10:33:20 +02:00
Leonardo de Moura
ac0be0ecc6
chore(frontends/lean/elaborator): style
2017-08-22 15:41:12 -07:00
Sebastian Ullrich
9e53147e0a
feat(frontends/lean/elaborator): allow field notation for recursive calls
2017-08-22 15:33:37 -07:00
Leonardo de Moura
e99ce26b16
fix(library/type_context): fixes #1801
...
This commit also fixes the decay in error message quality reported at
c6a10b127f
2017-08-22 14:03:58 -07:00
Leonardo de Moura
971ae34521
feat(frontends/lean/elaborator): closes #1760
...
As described at issue #1760 , the new error message is:
```
1760.lean:6:18: error: type mismatch at application
f x
term
x
has type
big_type : Type 1
but is expected to have type
?m_1 : Type
```
2017-08-21 16:15:03 -07:00