Commit graph

1692 commits

Author SHA1 Message Date
Leonardo de Moura
1dedd2829c fix(library/match): bug in higher-order matcher 2015-05-14 18:27:10 -07:00
Sebastian Ullrich
77c20e99ff feat(library/tactic/inversion_tactic): consistent orientation of generated equalities
Generated equalities in proof irrelevant environments were inverted
compared with the documentation and the proof relevant case, which
resulted in newly generated local vars replacing equivalent old ones
instead of the other way around.
2015-05-14 23:32:54 +02:00
Leonardo de Moura
163577c23a fix(library/normalize): fixes #599 2015-05-13 18:36:16 -07:00
Leonardo de Moura
d0582b2537 fix(library/user_recursors): warning 2015-05-13 10:04:38 -07:00
Leonardo de Moura
dd5b221d32 fix(library/user_recursors): warning message 2015-05-13 09:42:32 -07:00
Leonardo de Moura
065a1f7501 feat(library/tactic): add 'induction' tactic skeleton 2015-05-12 20:21:25 -07:00
Leonardo de Moura
99084dce1c chore(library/user_recursors): fix style 2015-05-12 15:48:24 -07:00
Leonardo de Moura
f403ea984b feat(frontends/lean): add 'print [recursor]' command for debugging purposes 2015-05-12 15:48:24 -07:00
Leonardo de Moura
750f6d5a43 feat(library,frontends/lean): validate user defined recursors and add attribute to mark them
see issue #492

The user-defined recursors will also be used to implement the blast tactic
2015-05-12 15:48:01 -07:00
Leonardo de Moura
fa70930ef4 feat(library/blast): add union-find datastructure 2015-05-11 16:19:51 -07:00
Leonardo de Moura
9649d540c0 fix(library/tactic/rewrite_tactic.cpp): memory leak 2015-05-11 16:19:17 -07:00
Leonardo de Moura
c5fb3ec6d0 fix(library/definitional/equations): fixes #541
This commit allows recursive applications to have less or more arguments
than the equation left-hand-side.
We add two tests
   - 541a.lean  recursive call with more arguments
   - 542b.lean  recursive call with less arguments
2015-05-10 20:37:44 -07:00
Leonardo de Moura
207e8e86da fix(library/definitional/equations): do not clear eliminated hypotheses when invoking 'cases' tactic from definitional package 2015-05-10 11:08:02 -07:00
Leonardo de Moura
bd28396be0 feat(kernel): transparent theorems
closes #576
2015-05-09 11:42:29 -07:00
Leonardo de Moura
f8e2f68ce0 feat(frontends/lean): add 'wait' command
This commit also fixes several problems with -j option (parallel
compilation). The .olean files were not missing data when -j was used

see issue #576
2015-05-08 20:05:21 -07:00
Leonardo de Moura
cf7e60e5a6 refactor(kernel): remove "opaque" field from kernel declarations
see issue #576
2015-05-08 16:06:16 -07:00
Leonardo de Moura
6c958a25e7 refactor(library/tactic/expr_to_tactic): make sure builtin tactics don't need to be marked opaque
This modification is needed since we will remove opaque definitions from
the kernel.

see issue #576
2015-05-08 16:06:16 -07:00
Leonardo de Moura
57ea660963 refactor(*): start process for eliminating of opaque definitions from the kernel
see issue #576
2015-05-08 16:06:04 -07:00
Leonardo de Moura
061e26157e fix(kernel,library): make sure macros check relevant arguments when kernel is performing full type checking 2015-05-08 12:41:23 -07:00
Leonardo de Moura
72663e8a06 feat(library/tactic/rewrite_tactic): take hypotheses into account when checking rewrite step 2015-05-08 11:34:50 -07:00
Leonardo de Moura
12bad8794b feat(frontends/lean/pp): use 'assert' instead of 'have ... [visible]' 2015-05-08 10:02:15 -07:00
Leonardo de Moura
0b57f7d00a refactor(library/tactic): refine interface between tactic and proof-term modes
Some constraints were being lost with the previous interface.
This is why we had a workaround in fintype.lean.

We can also remove some hacks we have used in the past.
2015-05-07 18:02:51 -07:00
Leonardo de Moura
12b818b7d3 fix(library/util): "empty" is not universe polymorphic anymore 2015-05-07 16:43:58 -07:00
Leonardo de Moura
eb3a236119 fix(library/unifier): typo
fixes #588
2015-05-07 16:30:02 -07:00
Leonardo de Moura
88cd6e9a63 chore(library/unifier): remove dead code 2015-05-07 15:49:33 -07:00
Leonardo de Moura
aff9257c72 feat(frontends/lean): allow → to be used in calc proofs
see issue #586
2015-05-07 12:28:47 -07:00
Leonardo de Moura
b03266be70 feat(library/normalize,frontends/lean): rename '[unfold-m]' hint to '[constructor]', and allow it to be attached to constants
closes #587
2015-05-07 12:00:34 -07:00
Leonardo de Moura
ac24f19210 fix(library/tactic/rewrite_tactic): use relaxed type checker when processing rewrite "proof step"
That is, the restricted type checker should only be used in the
matching/unification step.

fixes #583
2015-05-07 09:57:23 -07:00
Leonardo de Moura
e0b7017435 feat(frontends/lean): make sure the proof state bit "report errors" is
set in the beginning of each begin-end element

see discussion at #583
2015-05-07 09:43:39 -07:00
Leonardo de Moura
e841852be4 feat(library/max_sharing): maximize sharing in universe level expressions 2015-05-06 14:26:12 -07:00
Leonardo de Moura
210cae7d6c fix(library/tactic): we must unfold untrusted macros when type checking intermediate results
Example: before this commit, the file librata/data/list/perm.lean would
not type check if the option -t 0 (trust level zero) was provided.
Reason: the intermediate term contained a macro, and macros are not
allowed at trust level zero.
2015-05-06 14:23:58 -07:00
Leonardo de Moura
b5619c2109 fix(library/export): remove workaround from 'export' procedure
The workaround was needed due to a bug in the max_sharing procedure
2015-05-06 14:00:57 -07:00
Leonardo de Moura
2ca16a099b fix(library/max_sharing): conflict with the kernel approximate caching 2015-05-06 13:57:36 -07:00
Leonardo de Moura
84deddcca9 feat(library/tactic/rewrite_tactic): apply 'reflexivity' tactic after 'rewrite' instead of hard coded solution 2015-05-05 20:23:49 -07:00
Leonardo de Moura
c7a20644c0 fix(library/tactic/rewrite_tactic): bug in rewrite tactic (HoTT mode)
closes #580
2015-05-05 19:25:15 -07:00
Leonardo de Moura
a4efefb6ff feat(library/tactic/rewrite_tactic): display type error message when
rewrite tactic fails
2015-05-05 19:23:41 -07:00
Leonardo de Moura
616f49c2e4 feat(frontends/lean): improved 'obtains' expression 2015-05-05 18:30:16 -07:00
Leonardo de Moura
c0c0490db3 feat(library/export): simplify format 2015-05-04 18:22:12 -07:00
Leonardo de Moura
701b0ae66f feat(library): export environment in textual format
closes #577
2015-05-04 18:05:00 -07:00
Leonardo de Moura
6571c47353 feat(library/normalize): add '[unfold-m]' hint
See issue #496
2015-05-04 14:23:04 -07:00
Leonardo de Moura
3c8c75470f fix(library/tactic/exact_tactic): do not report unassigned metavariables in the 'refine' tactic 2015-05-03 21:08:09 -07:00
Leonardo de Moura
326048df54 feat(library/tactic/inversion_tactic): clear variables that have been eliminated by cases tactic
see discussion at:
https://groups.google.com/forum/#!topic/lean-discuss/oyzgIqdMyNc
2015-05-02 19:33:59 -07:00
Leonardo de Moura
e1dc18f6b6 fix(library/tactic/inversion_tactic): check whether eliminator can only eliminate to Prop
fixes #571
2015-05-02 17:48:08 -07:00
Leonardo de Moura
e379034b95 feat(library/tactic): improve 'assumption' tactic
- It uses the unifier in "conservative" mode
- It only affects the current goal

closes #570
2015-05-02 17:33:54 -07:00
Leonardo de Moura
b39fe17dee feat(library/tactic): add 'transitiviy', 'reflexivity' and 'symmetry' tactics
closes #500
2015-05-02 15:48:25 -07:00
Leonardo de Moura
cd17618f4a refactor(library): replace 'calc_trans', 'calc_symm', 'calc_refl' and 'calc_subst' commands with attributes '[symm]', '[refl]', '[trans]' and '[subst]'
These attributes are used by the calc command.
They will also be used by tactics such as 'reflexivity', 'symmetry' and
'transitivity'.

See issue #500
2015-05-02 15:15:35 -07:00
Leonardo de Moura
415ca2b93f feat(library/tactic): add 'congruence' tactic
It is the f_equal described at issue #500.
2015-05-02 12:58:46 -07:00
Leonardo de Moura
2054d67483 chore(library/tactic/rewrite_tactic): fix style 2015-05-01 19:49:48 -07:00
Leonardo de Moura
9dc0388022 fix(library/tactic/rewrite_tactic): bug when rewriting hypotheses 2015-05-01 19:45:23 -07:00
Leonardo de Moura
ac8ba6a3cf feat(library/tactic): add 'subst' tactic
see issue #500
2015-05-01 19:31:24 -07:00