Commit graph

7854 commits

Author SHA1 Message Date
Leonardo de Moura
3d9b557cfd feat(frontends/lean): allow the user to mark subterms that should be automatically abstracted into new definitions
closes #484
2015-06-12 17:49:26 -07:00
Leonardo de Moura
7bad9fe554 feat(library/error_handling/error_handling): set 'pp.beta' to false when displaying errors
see issue #669
2015-06-12 14:46:51 -07:00
Leonardo de Moura
4694f47ea4 refactor(frontends/lean/decl_attributes): move decl_attributes to a separate module 2015-06-12 13:38:57 -07:00
Leonardo de Moura
69be4c720c fix(library/tactic/subst_tactic): bug in 'subst' tactic 2015-06-12 12:11:44 -07:00
Leonardo de Moura
25cbc5c154 fix(kernel/expr): remove 'cast_binder_info'
We should put it back when we decide to implement it.
We also fix the bogus comment at src/frontends/lean/parser.cpp.

see issue #667
2015-06-11 18:11:22 -07:00
Haitao Zhang
6105263222 feat(library/data/list/comb): add theorem on dmap and adjust names 2015-06-11 15:29:52 -07:00
Haitao Zhang
1a9521dc9c fix(library/data/fintype/function): convert line endings from crlf to lf 2015-06-11 15:29:43 -07:00
Leonardo de Moura
1b5d1136d9 refactor(library/data/finset/card): remove unnecessary xrewrite
We can use the default 'rewrite' tactic after the commits pushed today.
2015-06-10 18:46:16 -07:00
Leonardo de Moura
dc8768627c refactor(library/data/fintype/function): cleanup proof 2015-06-10 18:21:15 -07:00
Leonardo de Moura
8fbe22f263 refactor(library/data/finset/basic): cleanup proof 2015-06-10 18:19:16 -07:00
Leonardo de Moura
8aa634378e fix(tests/lean): adjust tests to reflect changes in the standard library 2015-06-10 17:00:47 -07:00
Leonardo de Moura
226a5800dd fix(library/data/rat/order): adjust file to recent changes 2015-06-10 16:56:17 -07:00
Jeremy Avigad
3c1f5f4e33 feat(library/data/{set,finset}): add more cardinality facts, rename, and add a lemma from Haitao 2015-06-10 16:39:17 -07:00
Jeremy Avigad
658c5a2c49 feat(library/rat/basic.lean): add reduce for rat, and num and denom 2015-06-10 16:39:17 -07:00
Leonardo de Moura
0b335230d7 test(tests/lean): add test for eta at postprocessing 2015-06-10 16:33:27 -07:00
Leonardo de Moura
8b7dc4e03a feat(frontends/lean): apply eta-reduction in postprocessing step
Perhaps, we should add an option to disable this new feature.

Remark: this commit makes commit 46d418a redundant.
I'm keeping 46d418a because we may retract this commit in the future.
2015-06-10 16:29:30 -07:00
Leonardo de Moura
f64784378a fix(frontends/lean/pp): make pp_have more robust
We should not assume the argument of a have_annotation is a lambda.
2015-06-10 16:26:20 -07:00
Leonardo de Moura
01127061f5 refactor(hott/arity): cleanup 2015-06-10 15:45:46 -07:00
Leonardo de Moura
8b062b4448 feat(kernel/default_converter): add support for stuck terms at try_eta_expansion_core 2015-06-10 15:19:39 -07:00
Leonardo de Moura
ca43f6e62e refactor(frontends/lean): add postprocess procedure and cleanup 2015-06-10 15:19:35 -07:00
Leonardo de Moura
4b91cfccff feat(frontends/lean/builtin_exprs): make notation ( e : T ) builtin
In the previous approach, the following (definitionally equal) term was being generated

       (fun (A : Type) (a : A), a) T e
2015-06-10 14:52:59 -07:00
Leonardo de Moura
46d418af3d feat(library/abbreviation): apply eta-reduction when expanding abbreviations 2015-06-10 14:52:59 -07:00
Leonardo de Moura
cff7b7474a test(tests/lean/run): add examples showing how to prove (using tactics) that direct_subterm relation is well-founded
see issue #347
2015-06-09 16:17:29 -07:00
Leonardo de Moura
1bffb89126 fix(library/algebra/function): lean was failing to infer that injective is a decidable predicate for finite types with decidable equality
This is an issue reported by Haitao.
2015-06-09 15:30:58 -07:00
Leonardo de Moura
2663c9ab9f test(tests/lean/run): add test/example
add test/example that defines count_vars using tactics and recursors.

see #662 for original definition, and e3a0e62859 for the fix that
allows us to use recursive equations.
The recursive equations are compiled into recursors.
2015-06-09 14:50:15 -07:00
Leonardo de Moura
f3d50963ce fix(library/idx_metavar): compilation problem in debug mode 2015-06-09 14:37:17 -07:00
Leonardo de Moura
e3a0e62859 fix(library/unifier): try to generate approximate solution for flex-flex constraints before discarding them
fixes #662
2015-06-09 14:36:31 -07:00
Rob Lewis
d287b20018 chore(library/data/real): move more lemmas to algebra 2015-06-09 16:27:55 +10:00
Rob Lewis
01f0bb827c feat(library/data/real): use new algebra lemmas in completeness proof 2015-06-09 16:14:52 +10:00
Rob Lewis
7822ba9dee feat(library/algebra): add lemmas to group and ordered group 2015-06-09 16:14:21 +10:00
Rob Lewis
b1aea149db chore(library/data/real): update md 2015-06-09 15:43:43 +10:00
Rob Lewis
e112468f99 feat(library/data/real): prove reals are Cauchy complete 2015-06-09 15:39:51 +10:00
Rob Lewis
3749a8ad04 chore(library/data/real): update real.md 2015-06-09 15:39:51 +10:00
Leonardo de Moura
f7dd85a935 chore(*): fix 'breif' typos 2015-06-08 16:54:55 -07:00
Leonardo de Moura
627e05c9e6 fix(library/tactic/rewrite_tactic): improve krewrite 2015-06-08 16:46:28 -07:00
Leonardo de Moura
d6a483fe84 feat(library): add idx_metavar module 2015-06-08 16:02:37 -07:00
Leonardo de Moura
1c5c79fbc1 refactor(library/data/list/perm): use improved 'obtain' to cleanup proof 2015-06-08 11:58:21 -07:00
Haitao Zhang
6949e2d422 feat(library/data/fintype): add finite function related theories
develop kth related techniques, all_lists_of_len, all_funs, map between lists and functions, finite inverse and cardinality
remove function module from default import list for now
2015-06-08 10:48:22 -07:00
Leonardo de Moura
35eae96aa5 chore(library/data/int/gcd): remove 'TODO'
The 'TODO' was fixed by commit 496189feed
2015-06-08 10:45:05 -07:00
Leonardo de Moura
496189feed feat(kernel/default_converter): cache failures for (f t =?= f s) heuristic
See item 4 at
https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/lean-discuss/oJXwW5wT2Ds/d1Dgr8B-pE0J

See also
https://github.com/leanprover/lean/pull/659
2015-06-08 10:41:30 -07:00
Jeremy Avigad
e59400b58c feat(library/data/int/{div,gcd}): add some theorems, to reduce rationals 2015-06-08 22:43:51 +10:00
Jeremy Avigad
1c93c5bbb2 feat(library/logic/{connectives.lean,quantiers.lean}): add iff congruence rules 2015-06-08 16:58:08 +10:00
Leonardo de Moura
0e099b5fd8 feat(library/tactic/rewrite_tactic): apply beta&eta reduction before rewriting steps, add option 'rewrite.beta_eta' (default true) to control new feature. 2015-06-06 20:43:52 -07:00
Jeremy Avigad
feb385748f refactor(library/data/set/map.lean): put map into set namespace
This is needed to repair a conflict in the tutorial, but it is the right thing to do anyhow. The type "map A B" should not be a top-level identifier.
2015-06-06 18:58:33 -07:00
Leonardo de Moura
17f2c240e1 refactor(library/init/wf): cleanup wf proofs using tactics
add dependent elimination for acc.
2015-06-06 16:58:24 -07:00
Leonardo de Moura
1cbace9df6 feat(library/tactic/congruence_tactic): add congruence lemma generator
The generated congruence theorems ignore arguments that are subsingleton types.
2015-06-05 22:00:10 -07:00
Leonardo de Moura
d0d3f9bb41 refactor(kernel,library,frontends/lean): add helper functions, and cleanup collect_locals 2015-06-05 17:29:36 -07:00
Leonardo de Moura
7db84c7036 refactor(library/data): replace 'fin' with Haitao's 'less_than'
The commit also fixes vector to use the new definition.
2015-06-05 10:33:19 -07:00
Jeremy Avigad
453da48dd5 feat(library/data/less_than.lean): add finite ordinals from Haitao Zhang 2015-06-05 09:32:00 -07:00
Jeremy Avigad
370860e1b0 feat(library/data/fintype,finset): add cardinality for finite types from Haitao Zhang 2015-06-05 09:32:00 -07:00