Leonardo de Moura
fe26c37fcb
refactor(library/tc_multigraph): improve tc_multigraph API
2015-07-01 16:01:40 -07:00
Leonardo de Moura
765865ed41
chore(library/tc_multigraph): remove dead code
2015-07-01 15:48:55 -07:00
Leonardo de Moura
d44d576194
refactor(library/coercion): simplify coercion module API
2015-07-01 14:40:12 -07:00
Leonardo de Moura
d5c38777af
refactor(library/coercion): simplify coercion_class
2015-07-01 14:29:23 -07:00
Leonardo de Moura
0f5b7a36f5
chore(library/coercion): remove lua bindings for coercion module
...
Reason: we will refactor the coercion module.
See issue #668
2015-07-01 14:08:49 -07:00
Leonardo de Moura
880f212494
feat(library/class): allow transitive instances that have instances arguments
2015-06-30 14:54:12 -07:00
Leonardo de Moura
d20f831602
feat(library/class): add is_derived_trans_instance predicate
2015-06-30 13:59:02 -07:00
Leonardo de Moura
772ed111e5
refactor(kernel): move extra_opaque_converter to kernel, and rename it to hint_converter
2015-06-30 12:59:28 -07:00
Leonardo de Moura
e635d9be9f
refactor(kernel): rename get_weight to get_height at declaration
...
Motivation:
- It is the standard name for the concept: declaration height
- Avoid confusion with the expression weight
2015-06-30 12:59:10 -07:00
Leonardo de Moura
b5444c1314
refactor(frontends/lean/builtin_cmds): allow "constant" edges in the instance transitive closure graph
2015-06-29 18:57:05 -07:00
Leonardo de Moura
0fc2efe88e
fix(library/tactic/rewrite_tactic): fixes #702
2015-06-28 20:37:17 -07:00
Leonardo de Moura
1b864a838f
fix(library/tactic/induction_tactic.cpp): condition for checking whether 'induction' tatic is applicable or not
...
fixes #690
2015-06-28 13:07:02 -07:00
Leonardo de Moura
88844f6261
chore(src/library/user_recursors): add missing include
2015-06-28 12:53:48 -07:00
Leonardo de Moura
2f75768243
feat(library/tactic/rewrite_tactic): fail when nothing is rewritten
...
fixes #686
2015-06-28 12:05:00 -07:00
Leonardo de Moura
8616ed096e
fix(library/composition_manager): typo
2015-06-27 14:12:26 -07:00
Leonardo de Moura
ca0aa4eb47
feat(library/composition_manager): simplify compositions of the form (mk ... (proj (mk ...)) ...)
...
closes #666
2015-06-27 14:07:32 -07:00
Leonardo de Moura
430dc21a28
feat(library/composition_manager): disable conversion optimization for automatically generated compositions
...
see issue #666
2015-06-27 14:07:22 -07:00
Leonardo de Moura
bd0e9d958d
feat(library/tc_multigraph): shorter names for transitive edges
...
see issue #666
2015-06-27 14:07:15 -07:00
Leonardo de Moura
859ef441a0
feat(library/class): transitive instances
...
see issue #666
2015-06-27 14:06:56 -07:00
Leonardo de Moura
68785b8bed
fix(library/tactic/generalize_tactic): fixes #711
2015-06-26 19:35:30 -07:00
Leonardo de Moura
1886b71c17
fix(library/unifier): fixes #705
2015-06-26 19:10:46 -07:00
Leonardo de Moura
e3e9220ab9
fix(library/tactic/rewrite_tactic): fixes #708
2015-06-26 18:41:08 -07:00
Leonardo de Moura
c61e6f6595
feat(library/unifier): add new rule for constraints of the form (pr ...) =?= t, where (pr ...) is a "stuck" projection application
2015-06-26 17:18:29 -07:00
Leonardo de Moura
0b7859f387
feat(library,frontends/lean): add support for projections in the elaborator
...
The idea is to simulate the computation rules such as
pr1 (mk a b) ==> a
in the elaborator
2015-06-26 17:18:29 -07:00
Leonardo de Moura
31a4ee2ac3
fix(library/inductive_unifier_plugin): avoid potential assertion violation
2015-06-26 17:18:29 -07:00
Leonardo de Moura
a680114fd8
fix(library/tactic/rewrite_tactic): potential crash in the rewrite tactic
2015-06-26 17:18:29 -07:00
Leonardo de Moura
5581b735f4
feat(library/constants.txt): add poly_unit and poly_unit.star
2015-06-25 17:36:34 -07:00
Floris van Doorn
fa1979c128
feat(datatypes): let the type of unit be the lowest non-Prop universe
...
The definitional package (brec_on and cases_on) now use poly_unit instead of unit
closes #698
2015-06-25 17:33:46 -07:00
Leonardo de Moura
5687c24944
refactor(library/tactic/induction_tactic): cleanup
2015-06-22 10:23:54 -07:00
Leonardo de Moura
aeea8f83c4
feat(library/composition_manager): check if existing definition is definitionally equal
2015-06-21 16:53:08 -07:00
Leonardo de Moura
b8243934de
feat(library/tc_multigraph): finish transitive closed multigraph
2015-06-20 20:25:20 -07:00
Leonardo de Moura
c6ad37a651
chore(src/library/tc_multigraph): fix typo
2015-06-19 21:12:11 -07:00
Leonardo de Moura
6872761c67
fix(library/tc_multigraph): typos
2015-06-19 20:11:31 -07:00
Leonardo de Moura
1f753aeccb
feat(library): add tc_multigraph skeleton
2015-06-19 20:05:05 -07:00
Leonardo de Moura
70fc05294b
refactor(library/local_context): avoid hack in local_context
2015-06-18 15:41:00 -07:00
Leonardo de Moura
694eef7f6a
fix(util/sexpr/format): retract change that may be creating problems for emscripten
2015-06-18 10:49:13 -07:00
Leonardo de Moura
a4c0699e81
feat(library/tactic/constructor_tactic): restore 'constructor' tactic old semantics, add 'fconstructor' tactic
...
See issue #676
Add new test demonstrating why it is useful to have the old semantics
for 'constructor'
2015-06-17 23:48:54 -07:00
Leonardo de Moura
bf71d9f342
fix(library/tactic/rewrite_tactic): fixes #682
2015-06-17 18:49:02 -07:00
Leonardo de Moura
ce8f2a1674
feat(library/class): allow any constant to be marked as a class
...
closes #679
2015-06-17 16:26:45 -07:00
Leonardo de Moura
c59e1f49db
feat(library): add composition manager
2015-06-17 14:41:50 -07:00
Leonardo de Moura
14c33c4e01
feat(kernel/error_msgs): add workaround for issue #669
...
This issue should fix the new problem reported at #669 .
It only disables beta-reduction in the pretty printer for application
type mismatch at (f n) when f is a lambda expression.
2015-06-17 12:00:25 -07:00
Leonardo de Moura
f60cdee14b
fix(library/tactic/rewrite_tactic): memory leak
2015-06-16 15:47:21 -07:00
Leonardo de Moura
0ae24faae3
feat(library/tactic/constructor_tactic): use 'fapply' in 'constructor' tactic
...
closes #676
2015-06-16 12:03:31 -07:00
Leonardo de Moura
2277b170f6
feat(library/tactic/exact_tactic): use 'append' instead of 'orelse' at eassumption 'tactic'
2015-06-16 11:58:10 -07:00
Leonardo de Moura
169f956143
fix(library/tactic): remove dead code
2015-06-16 11:57:37 -07:00
Leonardo de Moura
d8620ef4c9
fix(kernel,library,frontends/lean): improve error messages
...
see #669
2015-06-14 19:44:00 -07:00
Leonardo de Moura
8699d2dfb7
feat(library/tactic/rewrite_tactic): display list of overloads occurring in a failed rewrite step
2015-06-14 16:30:18 -07:00
Leonardo de Moura
9fbf267a3f
feat(library/tactic/rewrite_tactic): when 'rewrite' step fails apply esimp and try again
...
closes #670
2015-06-12 19:48:58 -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
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
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
46d418af3d
feat(library/abbreviation): apply eta-reduction when expanding abbreviations
2015-06-10 14:52:59 -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
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
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
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
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
c76d92284f
feat(library/pp_options): add 'pp.all' option
2015-06-05 08:41:46 -07:00
Leonardo de Moura
c8ad1874a2
fix(library/util): compilation error in debug mode
2015-06-03 17:39:03 -07:00
Leonardo de Moura
68688ecdf6
fix(library/tactic/subst_tactic): in the standard mode, use dependent elimination in the subst tactic (when needed)
...
Before this commit, the subst tactic was producing an type incorrect
result when dependent elimination was needed (see new test for an example).
2015-06-03 17:36:04 -07:00
Leonardo de Moura
dce86b3a84
feat(library/init/logic): add 'eq.drec' (in standard Lean) with a signature very similar to eq.rec
in the HoTT library
2015-06-03 17:29:26 -07:00
Leonardo de Moura
b2f8d2000c
fix(library/simplifier/rewrite_rule_set): avoid compiler specific behavior
2015-06-01 22:23:34 -07:00
Leonardo de Moura
d6997300f1
fix(library/private): use environment fingerprint to compute private decls "unique" identifier
...
fixes #648
2015-06-01 22:21:31 -07:00
Leonardo de Moura
4ace996057
fix(library/simplifier): bug in is_permutation_ceqv
2015-06-01 18:07:31 -07:00
Leonardo de Moura
0fbc944cdd
feat(frontends/lean): add '[rewrite]' attribute
2015-06-01 17:58:24 -07:00
Leonardo de Moura
d547698a56
refactor(library,library/tactic): move class_instance_synth to library
...
This module will be needed by the simplifier
2015-06-01 16:30:40 -07:00
Leonardo de Moura
8a89588079
refactor(library,library/tactic): move auxiliary procedures from tactic to library
2015-06-01 16:19:55 -07:00
Leonardo de Moura
b62e6bb133
feat(library/simplifier): add rewrite rule sets
2015-06-01 15:15:57 -07:00
Leonardo de Moura
780d313686
fix(library/annotation): add missing == and hash methods for annotation class
...
We have multiple annotations. The default == and hash methods were
ignoring that.
2015-06-01 11:27:46 -07:00
Leonardo de Moura
ca110012d8
feat(library/tactic): automate "generalize-intro-induction/cases" idiom
...
closes #645
2015-05-30 21:57:28 -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
c07d14e94a
fix(library/tactic/rewrite_tactic): incorrect assertion
2015-05-29 15:59:03 -07:00
Leonardo de Moura
0ceedbe69e
fix(library/normalize): fixes #640
2015-05-29 15:58:59 -07:00
Leonardo de Moura
f48cdccd20
fix(frontends/lean/pp): abbreviation with parameters
...
closes #639
2015-05-29 15:13:31 -07:00
Leonardo de Moura
a071012346
fix(frontends/lean/pp,library/head_map): handle 'as_atomic' annotation
...
This commit fixes local notation that contains parameters
see issue #639
2015-05-29 14:51:28 -07:00
Leonardo de Moura
ae0bdaa836
chore(library,util): fix style
2015-05-27 16:46:58 -07:00
Leonardo de Moura
d95c064a29
feat(library/simplifier/ceqv): add to_ceqv procedure
2015-05-27 16:35:56 -07:00
Leonardo de Moura
85409a59d3
feat(library/tactic/rewrite_tactic): add xrewrite and krewrite tactic variants
...
closes #511
2015-05-27 16:32:43 -07:00
Leonardo de Moura
7d73f4f091
refactor(library,frontends/lean): simplify the creation of custom normalizers
2015-05-27 15:33:20 -07:00
Leonardo de Moura
dc6411b903
feat(library/inductive_unifier_plugin): restrict rule that was generating non-terminating behavior
...
see issue #632
2015-05-27 14:41:12 -07:00
Leonardo de Moura
47e5633498
feat(frontends/lean/calc_proof_elaborator): avoid unnecessary unfolding in the calc tactic
2015-05-27 12:07:39 -07:00
Leonardo de Moura
77f742ae8e
feat(library/relation_manager): add auxiliary functions
2015-05-27 12:07:06 -07:00
Leonardo de Moura
ea43f3ea80
fix(frontends/lean/builtin_cmds): fixes #630
2015-05-26 22:19:42 -07:00
Leonardo de Moura
ed01242bc1
chore(library/tactic/apply_tactic): remove dead code
2015-05-26 12:18:50 -07:00
Leonardo de Moura
7f0951b8e7
feat(library/tactic): improve assumption tactic performance
2015-05-25 20:22:37 -07:00
Leonardo de Moura
d0987eb3ac
feat(library/tactic): add 'subtvars' tactic
2015-05-25 16:36:44 -07:00
Leonardo de Moura
a3f23d5233
feat(library/tactic): add improved 'subst' tactic
2015-05-25 15:03:59 -07:00
Leonardo de Moura
f13ca3cd9a
feat(library/tactic/contradiction_tactic): handle (h1 : p) and (h2 : not p) hypotheses in the contradiction tactic
2015-05-25 10:29:51 -07:00
Leonardo de Moura
88975927e6
fix(library/tactic/relation_tactics): beta-reduce goal before trying to extract head symbol
2015-05-24 18:56:35 -07:00
Leonardo de Moura
004ea80e65
fix(library/tactic/rewrite_tactic): apply beta reduction when selecting patterns
2015-05-24 18:44:30 -07:00
Leonardo de Moura
b83b0c0017
fix(library/tactic/induction_tactic): fixes #619
2015-05-21 18:22:07 -07:00
Leonardo de Moura
f830bf54c2
refactor(*): clarify name_generator ownership
2015-05-21 14:32:36 -07:00
Leonardo de Moura
a7ead5fc14
fix(library/relation_manager): typo
2015-05-21 14:12:28 -07:00
Leonardo de Moura
e3250f0ffd
feat(library/simplifier): add conditional equivalence detection
2015-05-21 13:55:23 -07:00
Leonardo de Moura
907d017cbf
feat(library/relation_manager): cache information about binary relations
2015-05-21 13:04:33 -07:00