Commit graph

233 commits

Author SHA1 Message Date
Leonardo de Moura
3dc8f72c32 feat(frontends/lean/builtin_cmds): display congr lemma arg mask 2015-11-08 14:05:02 -08:00
Leonardo de Moura
8a7321714a feat(library/congr_lemma_manager): add mk_congr_simp that takes the number of expected arguments
Use sorry to be able to test first part
2015-11-08 14:05:02 -08:00
Leonardo de Moura
9b34526030 feat(frontends/lean): add #congr debugging command 2015-11-08 14:05:02 -08:00
Leonardo de Moura
2482c49729 test(frontends/lean): add #replace command for debugging purposes 2015-11-08 14:05:01 -08:00
Leonardo de Moura
d1fa547335 feat(frontends/lean/builtin_cmds): change mask notation at #app_builder command 2015-11-08 14:05:01 -08:00
Leonardo de Moura
f21102a725 feat(frontends/lean): add test commands for new app_builder features 2015-11-08 14:05:01 -08:00
Leonardo de Moura
ee0974650a feat(library/app_builder): new app_builder on top of type_context
The new version is more robust, and invokes type class resolution if needed.
2015-11-08 14:05:00 -08:00
Leonardo de Moura
a26ea2a249 feat(frontends/lean/builtin_cmds): add command for testing app_builder 2015-11-08 14:05:00 -08:00
Leonardo de Moura
ee347772d7 feat(library/meng_paulson): ignore class and class-instances when computing set of relevant theorems 2015-11-08 14:04:56 -08:00
Leonardo de Moura
023ec1ba76 feat(library): add Meng&Paulson heuristic for selecting theorems 2015-11-08 14:04:56 -08:00
Leonardo de Moura
d64b410bbd feat(library): add declaration statistics 2015-11-08 14:04:56 -08:00
Leonardo de Moura
5051c0031e feat(frontends/lean): add '#accessible' command for debugging purposes 2015-09-30 18:50:28 -07:00
Leonardo de Moura
49a574dbbf refactor(compiler): rename elim_rec to preprocess_rec 2015-09-11 17:12:32 -07:00
Leonardo de Moura
b31ab7d77a feat(compiler,frontends/lean): add #compile command for debugging purposes, add compiler module 2015-09-11 10:49:07 -07:00
Leonardo de Moura
ea04414058 feat(frontends/lean): allow user to overload notation containing foldr/foldl and/or scoped expressions
see new tests for a summary of new features

see issue #800
2015-08-16 18:24:30 -07:00
Leonardo de Moura
602626803b fix(frontends/lean/builtin_cmds): 'print axioms' and theorem queue 2015-08-11 21:08:45 -07:00
Leonardo de Moura
a39cac4fad feat(frontends/lean): improve '--info' command line option
see issue #756
2015-07-30 11:05:39 -07:00
Leonardo de Moura
cc4f18c062 feat(frontends/lean): add "--info" command line option for extracting identifier/keyword information
see issue #756
2015-07-30 10:18:03 -07:00
Leonardo de Moura
be61fb0566 feat(frontends/lean/elaborator): add "noncomputable theory" command, display "noncomputable" when printing definitions
When the command "noncomputable theory" is used, Lean will not sign an
error when a noncomputable definition is not marked as noncomputable
2015-07-29 17:54:35 -07:00
Leonardo de Moura
7e8a394caf chore(tests/lean): fix style and adjust tests 2015-07-28 18:15:25 -07:00
Leonardo de Moura
b81d4d50f1 feat(frontends/lean/bultin_cmds): add 'print axioms <declname>' command that prints axioms a giving declaration depends on 2015-07-28 18:15:25 -07:00
Leonardo de Moura
966e0109ff feat(library/simplifier): initialize simplification set. 2015-07-27 14:59:21 -07:00
Leonardo de Moura
bcf057f4f3 feat(frontends/lean): display '[congr]' attribute when printing theorems 2015-07-23 18:52:59 -07:00
Leonardo de Moura
844caf32e4 feat(frontends/lean/bultin_cmds): add 'print [congr]' command for displaying active congruence rules 2015-07-23 18:52:59 -07:00
Leonardo de Moura
3329dc0ec7 feat(library/simplifier/simp_rule_set): add '[congr]' attribute validation 2015-07-23 18:52:58 -07:00
Leonardo de Moura
933f056fff feat(library/simplifier): add API for extracting simplification rules defined in a given namespace 2015-07-22 18:47:56 -07:00
Leonardo de Moura
8085123119 refactor(library/simplifier): rename 'rewrite_rule' to 'simp_rule' 2015-07-22 10:39:30 -07:00
Leonardo de Moura
092c8d05b9 feat(frontends/lean,library): rename '[rewrite]' to '[simp]' 2015-07-22 09:01:42 -07:00
Leonardo de Moura
267545ca0c feat(frontends/lean): parse 'with_options' tactical
see issue #492
2015-07-13 19:13:41 -04: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
cabe30ba71 feat(frontends/lean): allow user to assign priorities to notation declarations 2015-06-30 17:10:27 -07:00
Leonardo de Moura
9cefe708ee feat(frontends/lean/builtin_cmds): display derived instances 2015-06-29 11:06:59 -07:00
Leonardo de Moura
9e6e406f73 feat(frontends/lean): add '#compose' command for testing composition manager 2015-06-17 14:42:25 -07:00
Leonardo de Moura
382d4d32b7 feat(frontends/lean): 'override' command and '#<namespace> <expr>' notation also override aliases
Before this commit they were only overriding notation declarations.
2015-06-14 15:48:36 -07:00
Leonardo de Moura
8a85e4ee87 feat(frontends/lean/builtin_cmds): improve print <id> when <id> is a not yet revealed theorem
We add a remark saying the command `reveal <id>` should be used to
access `<id>` definition.
2015-06-13 12:12:22 -07:00
Leonardo de Moura
591fb91f34 fix(frontends/lean/builtin_cmds): fixes #671 2015-06-13 11:35:03 -07:00
Leonardo de Moura
134740182d fix(frontends/lean): fixes #652 2015-06-03 21:53:51 -07:00
Leonardo de Moura
0fbc944cdd feat(frontends/lean): add '[rewrite]' attribute 2015-06-01 17:58:24 -07:00
Leonardo de Moura
6d2f37857d feat(frontends/lean/builtin_cmds): add 'print [reducible]', 'print [irreducible]' and 'print [quasireducible]' commands 2015-05-29 16:47:29 -07:00
Leonardo de Moura
7a0e198147 feat(kernel,frontends/lean/builtin_cmds): allow kernel extensions to report their builtin constants 2015-05-29 16:28:16 -07:00
Leonardo de Moura
e6099583ad feat(frontends/lean/builtin_cmds): expand abbreviations in the 'check' command
see issue #639
2015-05-29 14:51:07 -07:00
Leonardo de Moura
b83b0c0017 fix(library/tactic/induction_tactic): fixes #619 2015-05-21 18:22:07 -07:00
Leonardo de Moura
2d22bb8ea2 feat(frontends/lean/builtin_cmds): do not unfold proofs in the eval command
In the future, we should probably add an option for unfolding proofs.
2015-05-20 19:14:57 -07:00
Leonardo de Moura
af3f0088f4 feat(frontends/lean): add 'override' (notation) command 2015-05-20 11:42:16 -07:00
Leonardo de Moura
3e87f09d78 feat(library/tactic/induction_tactic): add support for user-defined recursors that contain parameters that should be synthesized by type class resolution 2015-05-19 15:33:46 -07:00
Leonardo de Moura
937d6ac7b6 fix(frontends/lean/pp): print notation produces incorrect output
fixes #604
2015-05-19 09:57:13 -07:00
Leonardo de Moura
d8bd3c21b5 feat(frontends/lean/builtin_cmds): display "protected" for protected declarations in the print command 2015-05-18 17:19:34 -07:00
Leonardo de Moura
c53b96c8d3 feat(frontends/lean): print all options for overloaded identifier
closes #608
2015-05-18 17:14:17 -07:00
Leonardo de Moura
c61c049152 feat(library/user_recursors): generalize acceptable use-defined recursors
see issue #492
2015-05-18 14:21:10 -07:00
Leonardo de Moura
ed388b00f1 fix(frontends/lean/builtin_cmds): issue #597 2015-05-13 15:34:34 -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
e9c8de7bdf feat(frontends/lean): remove unnecessary option 2015-05-09 11:49:55 -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
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
8c107d6936 fix(frontends/lean/builtin_cmds): bug in export command
Cause: we have two different tokes to represent declarations: [decls] and [declarations]

fixes #568
2015-05-02 16:01: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
d6d30f12c6 feat(frontends/lean): add "polymorphic" print command
closes #524
2015-04-29 16:17:33 -07:00
Leonardo de Moura
1a28a3c36f feat(frontends/lean): add 'print inductive' command 2015-04-29 15:22:10 -07:00
Leonardo de Moura
8241863abe feat(kernel/hits): add two builtin HITs: type_quotient and trunc 2015-04-23 15:32:31 -07:00
Leonardo de Moura
91f21c007a feat(frontends/lean): remove 'context' command 2015-04-22 11:32:02 -07:00
Leonardo de Moura
53653c3526 fix(frontends/lean): pretty printing in sections with parameters
fix #530
2015-04-21 22:44:09 -07:00
Leonardo de Moura
fe9f4dd95f fix(frontends/lean): another bug in sections with parameters 2015-04-21 19:50:21 -07:00
Leonardo de Moura
bf8a7eb9b4 fix(library/scoped_ext): bug in local metadata in sections
The problem is described in issue #554
2015-04-21 18:56:28 -07:00
Leonardo de Moura
df05edf333 feat(frontends/lean): generate warning when 'exit' is used
closes #553
2015-04-20 14:45:39 -07:00
Leonardo de Moura
b960e123b1 feat(kernel): add experimental support for quotient types 2015-03-31 22:04:16 -07:00
Leonardo de Moura
9b577a7b3e feat(frontends/lean): add 'migrate' command 2015-03-14 21:48:00 -07:00
Leonardo de Moura
3b721fe675 feat(frontends/lean): add missing 'help' command 2015-03-06 13:56:20 -08:00
Leonardo de Moura
4364b7f926 feat(frontends/lean): pp.beta is true by default
Remark: there is one exception (command: print definition). For this
command pp.beta is still false.
2015-02-24 12:27:53 -08:00
Leonardo de Moura
eceed03044 feat(frontends/lean): add "except" notation for "open" command, allow multiple metaclasses to be opened in a single "open" command 2015-02-11 11:02:59 -08:00
Leonardo de Moura
1832fb6f54 feat(*): uniform metaclass names, metaclass validation at 'open' command 2015-02-11 10:35:04 -08:00
Leonardo de Moura
9d1cd073c5 feat(frontends/lean): add 'print metaclasses' command 2015-02-11 10:13:20 -08:00
Leonardo de Moura
565cd835af feat(frontends/lean): add 'abbreviation' command 2015-02-10 17:31:40 -08:00
Leonardo de Moura
c04c0e8381 refactor(*): remove transparent_scope hack, replace [strict] with [all-transparent] annotation 2015-02-07 15:19:41 -08:00
Leonardo de Moura
b4d6f6e3ed feat(frontends/lean): 'attribute' command is persistent by default 2015-01-26 11:51:17 -08:00
Leonardo de Moura
4f2e0c6d7f refactor(frontends/lean): add 'attribute' command
The new command provides a uniform way to set declaration attributes.
It replaces the commands: class, instance, coercion, multiple_instances,
reducible, irreducible
2015-01-24 20:23:21 -08:00
Leonardo de Moura
b5c4e603db feat(frontends/lean): allow parameters to be used in sections
Restriction:
- coercions and notations cannot be defined in parametric sections

closes #401
2015-01-23 17:42:19 -08:00
Leonardo de Moura
12674114a4 feat(shell): set default behavior to "trusted"
closes #402
2015-01-21 16:25:09 -08:00
Leonardo de Moura
752b54085b refactor(kernel/type_checker): type checker should not unfold macros, but sign an error if a untrusted macro is used
Now, we unfold untrusted macros outside of the Lean kernel.
2015-01-20 12:36:56 -08:00
Leonardo de Moura
41935906a8 chore(frontends/lean): use update_if_undef 2015-01-13 13:02:14 -08:00
Leonardo de Moura
69750c50c6 refactor(frontends/lean): move pp_options to library 2014-12-19 15:00:05 -08:00
Leonardo de Moura
d98aabe9ab refactor(library): move library/definitional/util module to library 2014-12-10 11:23:23 -08:00
Leonardo de Moura
ac664505e6 refactor(library): move class management to library module 2014-12-09 21:38:55 -08:00
Leonardo de Moura
2bb51554d5 feat(library/definitional/util): add telescope equality for HoTT library
This is needed for implementing no_confusion for HoTT.
We can't use heterogeneous equality in HoTT.
2014-12-07 18:35:55 -08:00
Leonardo de Moura
5b2d17e4ab feat(frontends/lean): add 'print notation' command 2014-12-02 12:04:18 -08:00
Leonardo de Moura
a97d7ffed7 feat(frontends/lean/builtin_cmds): display 'print' command output as flycheck information 2014-11-29 13:31:42 -08:00
Leonardo de Moura
a005c8f4d0 feat(frontends/lean): display eval/check/find_decl results using flycheck 2014-11-24 08:35:49 -08:00
Leonardo de Moura
f1e915a188 feat(frontends/lean): add 'find_decl' command 2014-11-23 23:00:59 -08:00
Leonardo de Moura
50973bb4f3 feat(frontends/lean): default 'eval' command ignores opaque/irreducible annotations
To retrieve the previous behavior, we should use [strict] modifier
2014-11-10 12:46:04 -08:00
Leonardo de Moura
c7992f2cac feat(frontends/lean): add [whnf] modifier to eval command 2014-11-08 10:19:29 -08:00
Leonardo de Moura
4650791108 feat(frontends/lean): add 'print fields' command 2014-11-05 14:06:54 -08:00
Leonardo de Moura
d58c3e498d feat(frontends/lean/builtin_cmds): add 'print prefix' command 2014-11-04 08:40:32 -08:00
Leonardo de Moura
e79c7d9852 feat(frontends/lean): make set_option affect fingerprints 2014-10-30 14:45:35 -07:00
Leonardo de Moura
64c3ba7b74 feat(frontends/lean): display metavariable application arguments in check command
The idea is to "fix" counter-intuitive output like the ones were
produced in the tests check.lean and check2.lean
2014-10-30 13:28:25 -07:00
Leonardo de Moura
dcd7e53fa7 feat(frontends/lean/builtin_cmds): remove workaround for getting nice metavariable names in the check command
We don't need it anymore after previous commit 2a16050
2014-10-30 13:12:45 -07:00
Leonardo de Moura
fe4ea48381 feat(library/definitional/projection): add projection generator, closes #257 2014-10-29 13:13:05 -07:00
Leonardo de Moura
d66e5a6c41 fix(frontends/lean/builtin_cmds): bug (name clashing) in 'check' command new meta-variable naming 2014-10-26 19:19:45 -07:00
Leonardo de Moura
7a033ac07e feat(frontends/lean): add 'print axioms' command, close #251 2014-10-24 14:35:03 -07:00
Leonardo de Moura
db25f933b0 feat(frontends/lean): use nice names for meta-variables when executing check c and c is a constant 2014-10-24 08:23:26 -07:00