Leonardo de Moura
4cd5e18bd0
refactor(library/blast): add strategy abstract object
2015-11-15 13:12:21 -08:00
Leonardo de Moura
bae37d287d
fix(library/blast/state): bad style warnings
2015-11-15 12:38:07 -08:00
Leonardo de Moura
ff73fb22fb
feat(library/user_recursors): store whether recursor is recursive or not
2015-11-15 12:37:35 -08:00
Leonardo de Moura
e18e4e3200
fix(library/user_recursors): bug at get_num_minors
2015-11-15 11:48:34 -08:00
Leonardo de Moura
eae26cdfae
feat(library/user_recursors): add get_num_minors
2015-11-15 11:35:55 -08:00
Leonardo de Moura
ccdaa524f7
fix(library/relation_manager): bad style warnings
2015-11-15 11:35:20 -08:00
Leonardo de Moura
fd41a4f76d
feat(library/blast): add simplify_target action
2015-11-14 16:18:12 -08:00
Leonardo de Moura
6a554f6ba7
fix(library/blast/simple_actions): missing include
2015-11-14 15:41:54 -08:00
Leonardo de Moura
4d68e2a520
feat(library,hott): add eq.mpr and eq.mp lemmas
2015-11-14 15:40:47 -08:00
Leonardo de Moura
b5db77961d
feat(library/blast): add "trivial" action
2015-11-14 15:02:14 -08:00
Leonardo de Moura
2ba9979822
feat(library/relation_manager): add helper procedures
2015-11-14 14:11:52 -08:00
Leonardo de Moura
0803db21d3
refactor(library/blast): add "_action" suffix to files defining actions
2015-11-14 13:22:12 -08:00
Leonardo de Moura
9921228dd5
feat(library/blast): add simp_rule_sets to branch
2015-11-14 13:16:00 -08:00
Leonardo de Moura
0f4e59a84f
feat(library/blast): add "no_confusion" action
2015-11-13 18:19:05 -08:00
Leonardo de Moura
29d472788f
feat(library/blast/subst): avoid unnecessary proof step
2015-11-13 16:31:07 -08:00
Leonardo de Moura
3849aff674
fix(library/blast/subst): bug in subst action, add hypothesis_idx_buffer_set (helper class), refine revert_action interface
2015-11-13 16:10:25 -08:00
Leonardo de Moura
33036befc6
fix(library/blast/intros): corner case
2015-11-13 15:25:55 -08:00
Leonardo de Moura
6c038626f8
fix(library/blast/simple_strategy): tracing
2015-11-13 15:22:09 -08:00
Leonardo de Moura
ca4c078089
feat(library/blast): add "subst" action
2015-11-13 15:21:26 -08:00
Leonardo de Moura
cc4608a392
feat(library/blast): add "revert" auxiliary action
2015-11-13 14:15:48 -08:00
Leonardo de Moura
0dd6d6b140
feat(library/blast): avoid default name when creating hypotheses
2015-11-13 13:13:48 -08:00
Leonardo de Moura
bc8c5a3f68
feat(library/blast): basic tracing for blast
2015-11-13 13:05:20 -08:00
Leonardo de Moura
2889ec5870
feat(library/blast/state): add methods for deleting hypotheses
2015-11-13 11:59:34 -08:00
Leonardo de Moura
0a25652885
feat(library/blast/intros): intros is now a silent step.
2015-11-13 10:55:15 -08:00
Leonardo de Moura
4aa20fcff0
feat(library/blast/state): add support for "silent" proof steps.
2015-11-13 10:54:10 -08:00
Leonardo de Moura
2e32cf51f9
feat(library/blast/state): do not track dependecies to values
2015-11-13 10:38:25 -08:00
Leonardo de Moura
a7fdf5cc73
fix(library/blast/blast): avoid unnecessary calls to set_local_instances
...
This was producing a performance problem since the cache is invalidated/flushed
whenever we call this method.
2015-11-13 10:08:29 -08:00
Daniel Selsam
1276f2f050
feat(library/blast/simplifier): struct for cache key
2015-11-12 21:21:52 -08:00
Daniel Selsam
f17320eccf
fix(library/abstract_expr_manager): remove weight and lt
2015-11-12 21:21:52 -08:00
Daniel Selsam
4e85d59785
style(library/abstract_expr_manager): whitespace
2015-11-12 21:21:52 -08:00
Daniel Selsam
3703938e55
feat(library/abstract_expr_manager): compare exprs ignoring subsingletons
2015-11-12 21:21:51 -08:00
Daniel Selsam
031979cb49
feat(library/blast/simplifier): take simp_rule_sets as argument
2015-11-12 21:20:16 -08:00
Rob Lewis
44a099f6f1
feat(norm_num): performance and style fixes
2015-11-12 20:53:37 -08:00
Rob Lewis
4bf0519843
feat(norm_num): numeral normalizer works for +, -, *, /
2015-11-12 20:53:37 -08:00
Rob Lewis
616450be64
feat(library/norm_num): extend norm_num to handle subtraction
2015-11-12 20:53:37 -08:00
Leonardo de Moura
8f378db661
feat(library/blast): add normalize procedure to blast API
2015-11-12 20:42:58 -08:00
Leonardo de Moura
e1f81cfdcd
feat(library/type_context): add normalizer for type_context
2015-11-12 20:31:36 -08:00
Leonardo de Moura
d9816b6e21
fix(library/type_context): avoid errors in the infer type method due to opaque constants
2015-11-12 20:04:46 -08:00
Leonardo de Moura
1d1cd0fc24
feat(library/congr_lemma_manager): add congruence lemma for normalization and congruence closure
2015-11-12 18:54:12 -08:00
Leonardo de Moura
15cd92f89f
fix(library/type_context): methods assign and force_assign were not processing postponed constraints
2015-11-12 18:52:31 -08:00
Leonardo de Moura
1e436b8b3e
fix(library/blast/state): incorrect assertions
2015-11-12 16:28:09 -08:00
Leonardo de Moura
98f91931bf
fix(library/blast/state): compilation errors
2015-11-12 16:25:59 -08:00
Leonardo de Moura
6eef52196e
feat(library/blast): add gexpr "generalized expressions"
2015-11-11 16:11:51 -08:00
Leonardo de Moura
fee0cff295
feat(library/blast): add simple indexing data-structure for active hypotheses
2015-11-11 00:02:47 -08:00
Leonardo de Moura
41e14fddf8
feat(library/head_map): support local name in the head_map
2015-11-10 20:02:31 -08:00
Leonardo de Moura
bd06bf9fb1
doc(library/blast): document action_result
2015-11-10 17:49:41 -08:00
Leonardo de Moura
48eb6cb138
refactor(library/blast/state): simplify state
2015-11-10 17:27:39 -08:00
Leonardo de Moura
511337a4e9
fix(library/blast): missing file
2015-11-10 17:00:26 -08:00
Leonardo de Moura
f8f3f9402e
feat(library/blast): major reorg and basic backward chaining action
2015-11-10 17:00:16 -08:00
Leonardo de Moura
5be1893d98
fix(library/blast/state): bug at instantiate_urefs_mrefs
2015-11-10 16:38:44 -08:00
Leonardo de Moura
6f01a7339a
refactor(library/blast): move simple search strategy to separate module
2015-11-10 11:44:18 -08:00
Leonardo de Moura
6ac2bf9c6c
refactor(library/blast): add choice_point object
2015-11-10 11:28:59 -08:00
Leonardo de Moura
b76cdb1c68
refactor(library/blast): move blast options to separate module
2015-11-10 11:03:54 -08:00
Leonardo de Moura
f1c2a88e17
feat(library/blast): add proof_expr thin layer for creating proof terms at blast
2015-11-10 10:50:58 -08:00
Leonardo de Moura
5304f62f54
feat(library/blast/hypothesis): track proof depth in hypotheses
2015-11-10 09:54:28 -08:00
Leonardo de Moura
409ad18f9b
refactor(library/blast/state): cleanup state interface
2015-11-10 09:20:44 -08:00
Daniel Selsam
fc5dba4cd1
fix(library/simplifier/simp_rule_set): use lists instead of vectors
2015-11-10 08:58:46 -08:00
Leonardo de Moura
b59dd2305c
refactor(library/blast): rename state::get ==> state::get_hypothesis_decl
2015-11-09 14:52:21 -08:00
Leonardo de Moura
fb7a47cf2b
refactor(library/blast): avoid auxiliary local when creating hypothesis for intros
2015-11-09 14:40:39 -08:00
Leonardo de Moura
a14bb86148
feat(library/blast/state): add mk_lambda/mk_pi for abstracting hrefs
2015-11-09 14:20:19 -08:00
Leonardo de Moura
973a5c4812
feat(library/blast): improve blast type_context push/pop operations
2015-11-09 13:36:49 -08:00
Leonardo de Moura
9c364b410e
refactor(library/blast): hypothesis m_depth ==> m_dep_depth
2015-11-09 13:29:07 -08:00
Leonardo de Moura
9a557958f4
refactor(library/blast): merge state and branch classes
...
We will keep only one active branch in blast.
All other branches are implicit.
2015-11-09 13:24:30 -08:00
Leonardo de Moura
9bdf3a0d33
refactor(library/blast): we should reuse uref/mref/href in idxs
...
Motivation: avoid nasty bugs when caching results
2015-11-09 12:41:52 -08:00
Leonardo de Moura
d952a1d299
refactor(library/blast/expr): remove unnecessary complexity
2015-11-09 12:27:33 -08:00
Leonardo de Moura
c5117785a8
feat(library/blast): add intros action
2015-11-08 19:18:40 -08:00
Leonardo de Moura
78f1679b03
feat(library/blast): add basic assumption action
2015-11-08 18:16:34 -08:00
Leonardo de Moura
6340b1ae5b
feat(library/blast): very basic search procedure and iterative deepening
2015-11-08 17:57:37 -08:00
Leonardo de Moura
8308e87a6c
feat(library/blast/blast): initialize local instances at type_context objects
2015-11-08 15:20:05 -08:00
Leonardo de Moura
39019b6873
refactor(library/blast/simplifier): use app_builder mk_congr, mk_congr_arg and mk_congr_fun
2015-11-08 14:05:03 -08:00
Leonardo de Moura
1374f8cba1
fix(library/blast/simplifier): compilation warnings
2015-11-08 14:05:03 -08:00
Leonardo de Moura
b8857b078b
feat(library/blast): add get_app_builder to blast API
2015-11-08 14:05:03 -08:00
Leonardo de Moura
1d1f043192
refactor(library/app_builder): throw exception instead of returning none_expr
2015-11-08 14:05:03 -08:00
Daniel Selsam
0061d595d0
feat(library/blast/simplifier): use generated congruence lemmas
2015-11-08 14:05:03 -08:00
Daniel Selsam
b2368ba81b
style(library/blast/simplifier): whitespace
2015-11-08 14:05:03 -08:00
Daniel Selsam
f1d5cc5d5b
test(library/blast/simplifier): add asserts
2015-11-08 14:05:03 -08:00
Leonardo de Moura
afc7a2af84
feat(library/blast): expose mk_congr_lemma_for_simp and get_fun_info
2015-11-08 14:05:03 -08:00
Leonardo de Moura
f74e8288bd
refactor(library/congr_lemma_manager): API
2015-11-08 14:05:03 -08:00
Leonardo de Moura
f19fcf255a
chore(library/constants.cpp): regenerate automatically generated file
2015-11-08 14:05:03 -08:00
Daniel Selsam
f3caeb77cd
style(library/blast/simplifier): whitespace
2015-11-08 14:05:03 -08:00
Daniel Selsam
6c2c82f47c
feat(library/blast/simplifier): conditional rewriting
2015-11-08 14:05:03 -08:00
Daniel Selsam
d4e410162b
feat(library/blast/simplifier): expand macros
2015-11-08 14:05:02 -08:00
Daniel Selsam
b727d5810a
feat(library/blast/simplifier): rewrite with tmp locals
2015-11-08 14:05:02 -08:00
Daniel Selsam
3f331a261a
fix(library/blast/simplifier): stack of caches for local context
2015-11-08 14:05:02 -08:00
Daniel Selsam
b81aa35221
feat(library/blast/simplifier): more informative tracing
2015-11-08 14:05:02 -08:00
Daniel Selsam
0ad41173bb
fix(library/blast/simplifier): caches for each relation
2015-11-08 14:05:02 -08:00
Daniel Selsam
a304f6a9df
fix(library/blast/simplifier): loop rewrite rules
2015-11-08 14:05:02 -08:00
Daniel Selsam
a73e4e30a3
feat(library/blast/simplifier): use new blast_tmp_type_context constructor
2015-11-08 14:05:02 -08:00
Daniel Selsam
8e5e8e6540
feat(library/blast/simplifier): basic infrastructure
2015-11-08 14:05:02 -08:00
Leonardo de Moura
78a9116a23
chore(library/congr_lemma_manager): fix style
2015-11-08 14:05:02 -08:00
Leonardo de Moura
77c0866599
feat(library/congr_lemma_manager): fallback to simple congruence theorem if needed
2015-11-08 14:05:02 -08:00
Leonardo de Moura
0eb0a679e8
feat(library/congr_lemma_manager): add support for complex lemmas
2015-11-08 14:05:02 -08:00
Leonardo de Moura
ba477a0e98
feat(library/congr_lemma_manager): handle simple congruence lemmas
2015-11-08 14:05:02 -08:00
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
df94864809
fix(library/congr_lemma_manager): use abstract_local
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
5a48a2cebe
feat(library/app_builder): add mk_sorry method
2015-11-08 14:05:02 -08:00
Leonardo de Moura
c16423194c
feat(library/fun_info_manager): add method for getting information about function prefix
2015-11-08 14:05:02 -08:00
Leonardo de Moura
559c5a26a3
fix(library/congr_lemma_manager): take resulting type into account when computing congruence lemma
2015-11-08 14:05:02 -08:00
Leonardo de Moura
b89b4cb5f0
fix(library/fun_info_manager): bug tracking dependecies
2015-11-08 14:05:02 -08:00
Leonardo de Moura
7d588636a1
feat(library/fun_info_manager): collect additional information
2015-11-08 14:05:02 -08:00
Leonardo de Moura
22dcf6825e
feat(library/congr_lemma_manager): add congr_lemma_manager skeleton and compute type of congruence lemma
...
proof is still missing
2015-11-08 14:05:02 -08:00
Leonardo de Moura
01bde866d6
feat(library/util): add auxiliary recognizers
2015-11-08 14:05:01 -08:00
Leonardo de Moura
2d04156959
fix(library/app_builder): bug in eq_drec
2015-11-08 14:05:01 -08:00
Leonardo de Moura
34d5882b9a
refactor(library/util): rename old is_eq_rec
2015-11-08 14:05:01 -08:00
Leonardo de Moura
6519e570f3
feat(library/fun_info_manager): safer "replace" function
2015-11-08 14:05:01 -08:00
Leonardo de Moura
78b1d4279b
fix(library/blast/state): compilation problems in debug mode
2015-11-08 14:05:01 -08:00
Leonardo de Moura
7e7919950d
fix(library/type_context): compilation warning
2015-11-08 14:05:01 -08:00
Leonardo de Moura
8d9d84f33c
refactor(library/blast): we don't require maximally shared terms anymore in blast
...
This commit also removes the blast::mk_* expr and level functions.
They were just noops.
I kept only mk_uref, mk_href and mk_mref
2015-11-08 14:05:01 -08:00
Leonardo de Moura
45c02cb65c
feat(library/blast/blast): add extra constructor
2015-11-08 14:05:01 -08:00
Leonardo de Moura
980eb95e0c
fix(library/type_context,library/blast/blast): blast uses multiple type_context objects, this commit makes sure all of them use the same local name generator
2015-11-08 14:05:01 -08:00
Leonardo de Moura
749d468440
feat(library): add fun_info_manager
2015-11-08 14:05:01 -08:00
Leonardo de Moura
e23523bb02
feat(library/type_context): add mk_subsingleton_instance
2015-11-08 14:05:01 -08:00
Daniel Selsam
a104b478f3
feat(library/type_context): make expand_macro public
2015-11-08 14:05:01 -08:00
Leonardo de Moura
f84f024b92
refactor(library/app_builder): change app_builder constructor
2015-11-08 14:05:01 -08:00
Leonardo de Moura
98b79373cc
feat(library/blast/blast): add blast::internalize
2015-11-08 14:05:01 -08:00
Leonardo de Moura
43efc11f36
feat(library/blast/blast): automatically clear tmp_type_context at recycling time
2015-11-08 14:05:01 -08:00
Leonardo de Moura
3517a3dfa9
feat(library/blast): add blast_tmp_type_context
2015-11-08 14:05:01 -08:00
Leonardo de Moura
b2c9f2f6c5
feat(library/type_context): document our approach for managing meta-variables in type_context
2015-11-08 14:05:01 -08:00
Leonardo de Moura
aa697206e8
refactor(library/type_context): rename set_context to set_local_instances
2015-11-08 14:05:01 -08:00
Leonardo de Moura
fb7efa9337
feat(library/type_context): new tmp local_constant policy
2015-11-08 14:05:01 -08:00
Leonardo de Moura
333ba83087
feat(library/type_context): add mk_tmp_local that allows us to specify the pretty printing name
...
We also modify the type inference procedure to preserve the binder names.
2015-11-08 14:05:01 -08:00
Leonardo de Moura
01259a2d1c
feat(library/app_builder): add helper functions for creating eq.rec applications
2015-11-08 14:05:01 -08:00
Leonardo de Moura
5b71025b07
fix(library/blast/blast): temporary type_context for blast must handle external meta-variables.
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
1c2c2a6077
feat(library/app_builder): mk_app with mask
2015-11-08 14:05:01 -08:00
Leonardo de Moura
8e0a3eec3f
chore(library/relation_manager): fix bogus style warnings
2015-11-08 14:05:01 -08:00
Leonardo de Moura
0f631889b7
feat(library/app_builder): add helper methods for creating binary relations, and refl/symm/trans proofs
2015-11-08 14:05:00 -08:00
Leonardo de Moura
b5c40e30ef
feat(library/app_builder): add set_context
2015-11-08 14:05:00 -08:00
Leonardo de Moura
137ec27059
feat(library/app_builder): add constructor for app_builder that may take subclasses of tmp_type_context
...
We need this feature because blast has its own version of tmp_type_context.
2015-11-08 14:05:00 -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
87ec7383dd
fix(library/tmp_type_context): initialization
2015-11-08 14:05:00 -08:00
Leonardo de Moura
3804281919
refactor(library/app_builder): remove app_builder Lua API
2015-11-08 14:05:00 -08:00
Leonardo de Moura
f8916ed411
feat(library/blast/blast): create tmp_type_context that is compatible with blast
2015-11-08 14:05:00 -08:00
Leonardo de Moura
e01f2ec6a5
feat(library/tmp_type_context): add temporary type_context
2015-11-08 14:05:00 -08:00
Leonardo de Moura
18d9272f22
refactor(library/type_context): revise get_assignment
...
It is safer to return optional.
2015-11-08 14:05:00 -08:00
Leonardo de Moura
3bc5084bf6
refactor(library/simplifier): disable file
...
We will eventually delete it.
It will be subsumed by blast.
2015-11-08 14:05:00 -08:00
Leonardo de Moura
27904787fe
refactor(library/type_inference): rename type_inference module to type_context
2015-11-08 14:05:00 -08:00
Leonardo de Moura
ab940a2001
feat(frontends/lean/elaborator): add support for partial explicit in the elaborator
2015-11-08 14:05:00 -08:00
Daniel Selsam
6b06a19294
chore(frontends/lean): remove whitespace
2015-11-08 14:05:00 -08:00
Daniel Selsam
fa58d7c71e
feat(frontends/lean): basic support for partial explicit
2015-11-08 14:05:00 -08:00
Daniel Selsam
946e00f71a
feat(library/explicit): support partial explicit
2015-11-08 14:05:00 -08:00
Leonardo de Moura
914f3b4e34
chore(library/blast/blast): fix style
2015-11-08 14:05:00 -08:00
Leonardo de Moura
0e4f97792e
feat(library/blast): add blast::scope_debug auxiliary class for testing blast related procedures
2015-11-08 14:05:00 -08:00
Leonardo de Moura
fd917effad
feat(library/blast): use new type_inference module in blast
2015-11-08 14:05:00 -08:00
Leonardo de Moura
52eb787288
refactor(library/type_inference): move (non-temporary) class.* options to type_inference module
2015-11-08 14:05:00 -08:00
Leonardo de Moura
56c15f4fb5
refactor(library/type_inference): move new type class resolution procedure to genere type_inference
2015-11-08 14:05:00 -08:00
Leonardo de Moura
4c573380b2
feat(library/class): add auxiliary methods
2015-11-08 14:05:00 -08:00
Leonardo de Moura
c361fc1f6f
fix(frontends/lean/parser): method for parsing decimals
...
"division" has been renamed to "div"
2015-11-08 14:04:59 -08:00
Leonardo de Moura
6fa4691eb4
feat(library/type_inference): improve process_assignment
2015-11-08 14:04:59 -08:00
Leonardo de Moura
ab1937d46e
feat(library/class_instance_resolution): add new (temporary) option class.force_new to force the new type class resolution procedure in HoTT mode
2015-11-08 14:04:59 -08:00
Leonardo de Moura
410c9aef79
chore(library/type_inference): fix style
2015-11-08 14:04:58 -08:00
Leonardo de Moura
6465b16951
fix(library/class_instance_resolution): memory initialization bug in new type class resolution procedure
2015-11-08 14:04:58 -08:00
Leonardo de Moura
95348bc90b
fix(library/class_instance_resolution): uninitialized variables
2015-11-08 14:04:58 -08:00
Leonardo de Moura
50186e2db3
feat(library/class_instance_resolution): add old type class resolution procedure back to be able to compile HoTT library
2015-11-08 14:04:58 -08:00
Leonardo de Moura
885393f4de
feat(library/type_inference): check types when assigning meta-variables
2015-11-08 14:04:58 -08:00
Leonardo de Moura
766fdd415a
feat(library/type_inference): postpone "nontrivial" universe unification constraints
2015-11-08 14:04:58 -08:00
Leonardo de Moura
0bf069f016
feat(library/class_instance_resolution): more liberal type class resolution procedure
...
This modification is needed for the group_theory folder
2015-11-08 14:04:58 -08:00
Leonardo de Moura
21501ccfa4
fix(library/type_inference): temporary hack for solving universe unification problems
...
We need a better solution. It turns out the universe constraints are not
as simple as we expected.
2015-11-08 14:04:58 -08:00
Leonardo de Moura
5f43b9b183
feat(library/class_instance_resolution): recursively invoke type class resolution when parameters are instances
2015-11-08 14:04:58 -08:00
Leonardo de Moura
6acf7afa16
fix(library/type_inference): bug when using apply_beta
2015-11-08 14:04:58 -08:00
Leonardo de Moura
8d8e43abfd
fix(library/class_instance_resolution): transitive instances in the new type class resolution procedure
2015-11-08 14:04:58 -08:00
Leonardo de Moura
a1d200e1c6
feat(library/class_instance_resolution): add support for nested type
...
class resolution
2015-11-08 14:04:58 -08:00
Leonardo de Moura
e9b92adf29
feat(library/type_inference,library/class_instance_resolution): add on_is_def_eq_failure "event handler"
2015-11-08 14:04:57 -08:00
Leonardo de Moura
21bd30d51a
fix(library/class_instance_resolution): bug in mk_choice_point
2015-11-08 14:04:57 -08:00
Leonardo de Moura
0446c43ebf
refactor(library/class_instance_resolution): use new generic type_inference module to implement type class resolution
2015-11-08 14:04:57 -08:00
Leonardo de Moura
73543f1279
fix(library/norm_num): use new type-class resolution procedure at norm_num
2015-11-08 14:04:57 -08:00
Leonardo de Moura
f371182a6c
feat(library/type_inference): generic and cheap type inference, unification, whnf
2015-11-08 14:04:57 -08:00
Leonardo de Moura
a7655b7d43
feat(library/class_instance_resolution): reset internal indices
2015-11-08 14:04:57 -08:00
Leonardo de Moura
1f01e5480d
fix(library/class_instance_resolution): remove reset_cache_and_ctx used for debugging purposes
2015-11-08 14:04:57 -08:00
Leonardo de Moura
2edccf007b
fix(library/class_instance_resolution): make sure that terms synthesized by type class resolution have override the ones synthesized by solving unification constraints.
2015-11-08 14:04:57 -08:00
Leonardo de Moura
4787cf179e
fix(library/class_instance_resolution): skip (instance) meta-variables that have been assigned by solving unification constraints
2015-11-08 14:04:57 -08:00
Leonardo de Moura
eb2236f036
feat(library/class_instance_resolution): bug in mk_choice
2015-11-08 14:04:57 -08:00
Leonardo de Moura
97407eb178
fix(library/class_instance_resolution): add hack for mk_subsingleton_instance API
...
The comment in the source code explains why the hack is needed
2015-11-08 14:04:57 -08:00
Leonardo de Moura
1b92a8333e
fix(library/class_instance_resolution): better is_def_eq for universe levels at new type class resolution procedure
2015-11-08 14:04:57 -08:00
Leonardo de Moura
6b4a891adb
fix(library/class_instance_resolution): bug when creating auxiliary meta-variables at try_instance
2015-11-08 14:04:57 -08:00
Leonardo de Moura
919d55b799
fix(library/class_instance_resolution): position information in the type class trace
2015-11-08 14:04:57 -08:00
Leonardo de Moura
088b0fb795
fix(library/class_instance_resolution): relax has_expr_metavar test at mk_choice
2015-11-08 14:04:57 -08:00
Leonardo de Moura
5f90ff0f07
fix(library/class_instance_resolution): incorrect assertion
2015-11-08 14:04:57 -08:00
Leonardo de Moura
443aca6280
chore(library/class_instance_resolution,library/init_module): fix style
2015-11-08 14:04:57 -08:00
Leonardo de Moura
abcfe0d805
feat(library/class_instance_resolution): add support for attribute [multiple-instances] in the new type class resolution procedure
2015-11-08 14:04:57 -08:00
Leonardo de Moura
2c177d595c
fix(library/class_instance_resolution): bug in cache validation
2015-11-08 14:04:57 -08:00
Leonardo de Moura
343ede3fbe
fix(library/class_instance_resolution): trace option for new type class resolution procedure
2015-11-08 14:04:57 -08:00
Leonardo de Moura
98943f7832
fix(library/class_instance_resolution): initialization bug and ignore universe metavariables not instantiated by unifier
2015-11-08 14:04:57 -08:00
Leonardo de Moura
6a36bffe4b
fix(library/class_instance_resolution): bugs in new type class resolution procedure
2015-11-08 14:04:57 -08:00
Leonardo de Moura
bf17440f31
feat(library/class_instance_resolution): throw exception is maximum depth is reached
2015-11-08 14:04:57 -08:00
Leonardo de Moura
f5819fab60
feat(library/class_instance_resolution): new type class resolution procedure
2015-11-08 14:04:57 -08:00
Leonardo de Moura
c69bbd4eb7
chore(library/norm_num,library/tactic/norm_num_tactic): fix style
2015-11-08 14:04:57 -08:00
Leonardo de Moura
bda0b038b0
fix(library/norm_num): include 'constants.h' instead of 'constants.cpp'
...
By including 'constants.cpp' we get compilation errors in some
platforms (e.g., 'g_one has been defined in multiple files...')
The module constants(.h/cpp) does not expose global variables such as g_one.
We have to use the procedures get_one_name() instead.
2015-11-08 14:04:56 -08:00
Rob Lewis
ce1cbcc205
feat(library/norm_num): give better error message when norm_num fails
2015-11-08 14:04:56 -08:00
Rob Lewis
eb0b688da8
style(library/norm_num): remove debug code
2015-11-08 14:04:56 -08:00
Rob Lewis
958add9ef8
feat(library/norm_num): fix numeral normalization to work on new numeral structure; add support for multiplication
2015-11-08 14:04:56 -08:00
Leonardo de Moura
f4ce2bcbfe
fix(library/CMakeLists): build
2015-11-08 14:04:56 -08:00
Leonardo de Moura
3b6eae1907
feat(library): start new type class resolution procedure
2015-11-08 14:04:56 -08:00
Leonardo de Moura
ee924e4842
fix(library/blast/infer_type): typos
2015-11-08 14:04:56 -08:00
Leonardo de Moura
4f394bd979
feat(library/meng_paulson): minor improvement
2015-11-08 14:04:56 -08:00
Leonardo de Moura
5b6b8257d8
chore(library/meng_paulson): fix style
2015-11-08 14:04:56 -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
cd144993c0
chore(frontends/lean/prenum,library/tactic/rewrite_tactic): fix style
2015-11-08 14:04:56 -08:00
Leonardo de Moura
b777375469
fix(frontends/lean/parser): decimals
2015-11-08 14:04:56 -08:00
Leonardo de Moura
d1e111fd6c
fix(hott,frontends/lean,library,library/tactic): make sure we can still compile the HoTT library
2015-11-08 14:04:55 -08:00
Leonardo de Moura
26eb6fa849
feat(*): new numeral encoding
2015-11-08 14:04:55 -08:00
Leonardo de Moura
8ee214f133
checkpoint: new numeral encoding
2015-11-08 14:04:55 -08:00
Leonardo de Moura
744d1cba3d
feat(library,hott,frontends/lean): avoid keywords with hyphen
2015-11-08 14:04:54 -08:00
Sebastian Ullrich
6c34718cbc
chore(library,frontends/lean): remove option pp.extra_spaces
...
Obsoleted by improved pretty printer spacing
2015-10-13 09:52:35 -07:00
Leonardo de Moura
c5d614d4d9
feat(library/norm_num): store the local context
2015-10-08 13:22:37 -07:00
Leonardo de Moura
ce6e1c9694
feat(library/class_instance_synth): add helper mk_class_instance procedure
2015-10-08 13:10:41 -07:00
Leonardo de Moura
2c7d245bbe
fix(library/blast/blast): bug when translating goal metavariables into
...
blast mref's
2015-10-08 13:10:41 -07:00
Leonardo de Moura
5d3ed8a634
fix(library/blast/hypothesis): hypotheses are initially inactive
2015-10-08 13:10:41 -07:00
Leonardo de Moura
e4f0f6a9b4
feat(library): numeral normalization skeleton
2015-10-08 12:49:12 -07:00
Leonardo de Moura
3bb09e9959
fix(library/blast): typos
2015-10-06 08:35:24 -07:00
Leonardo de Moura
c626e2e3c6
refactor(library/blast): divide hypotheses in: assumption, active and todo
...
The sets active and todo are disjoint.
A metavariable declaration can only depend on assumptions.
2015-10-04 21:59:37 -07:00
Leonardo de Moura
44881552b4
refactor(library/blast): refactor hypothesis object: merge m_value and m_justification fields
2015-10-04 21:27:39 -07:00
Leonardo de Moura
7b883cae8f
feat(library/blast): simplify metavar_decl
2015-10-04 18:24:21 -07:00
Leonardo de Moura
4ab14e709e
feat(library/blast): finish is_def_eq/unifier for blast tactic
2015-10-03 18:19:05 -07:00
Leonardo de Moura
cd48114c47
fix(library/blast/infer_type): type of mref's
2015-10-02 15:53:22 -07:00
Leonardo de Moura
0a3fbda050
feat(library/blast): convert universe metavariables into uref's
2015-10-02 15:50:41 -07:00
Leonardo de Moura
442cbff578
feat(library/blast): add blast tactic is_def_eq procedure (aka unification)
...
We still have to implement subst_mref, assign_mref, and occurs check.
2015-10-02 15:21:28 -07:00
Leonardo de Moura
aadac02bec
feat(library/blast): add infer_type for blast tactic
2015-10-02 13:11:17 -07:00
Leonardo de Moura
ad51339a28
feat(library/blast): add whnf for blast tactic
2015-10-01 16:21:17 -07:00
Leonardo de Moura
68a34bd1ba
feat(library/projection): add get_projection_info_map
2015-10-01 16:10:27 -07:00
Leonardo de Moura
44baaac53e
feat(library/private): add is_private predicate
2015-09-30 18:50:09 -07:00
Leonardo de Moura
57035d3162
feat(kernel/level,library/blast/expr): add universe level hash consing support in the kernel, simplify blast/expr even more
2015-09-30 13:31:42 -07:00
Leonardo de Moura
ac7c0fffd8
refactor(library/blast): simplify blast/expr
2015-09-30 12:54:03 -07:00
Leonardo de Moura
63c8966816
refactor(library/blast): change how we mark fixed/frozen hypothesis
2015-09-29 14:08:14 -07:00
Leonardo de Moura
eff60d835a
fix(library/blast/expr): typo
2015-09-29 12:44:56 -07:00
Leonardo de Moura
bce193ed2d
feat(library/blast/state): make sure the type/value of hypotheses and target is a closed term.
2015-09-29 12:42:20 -07:00
Leonardo de Moura
352d81e56a
feat(library/blast/state): add assertion to make sure blast state does not contain local constants.
2015-09-29 12:32:42 -07:00
Leonardo de Moura
c652eeeac6
feat(library/data/expr): add support for regular local constants in blast tactic
...
We need them when inferring types and checking whether two expressions
are definitionally equal or not.
Remark: they are temporary objects, and should never be included in the
blast state object.
2015-09-29 12:29:33 -07:00
Leonardo de Moura
21193156ef
refactor(library/blast): rename lref to href (hypothesis reference)
2015-09-29 12:13:20 -07:00
Leonardo de Moura
58b06d12b0
feat(library/kernel_bindings): expose get_ios in the Lua API
...
It gives access to the global io_state object.
2015-09-29 10:55:08 -07:00
Leonardo de Moura
be76512756
feat(library/blast/blast): normalize hypotheses and unfold reducible constants when converting goal into blast state
2015-09-29 10:42:35 -07:00
Leonardo de Moura
ca059107cf
fix(library/blast/state): incorrect 'replace'
2015-09-29 10:42:00 -07:00
Leonardo de Moura
df39d2f368
feat(library/blast): add helper functions to access blast tactic thread local state/context
2015-09-29 10:04:11 -07:00
Leonardo de Moura
9622b62537
fix(library/blast/blast): update local2lref
2015-09-29 09:31:25 -07:00
Leonardo de Moura
459f31f28b
feat(library/blast): add basic blast_exception
2015-09-29 09:02:58 -07:00
Leonardo de Moura
cb31189c30
chore(library/blast/branch): fix style
2015-09-28 19:07:43 -07:00
Leonardo de Moura
48e8b8b866
feat(library/blast): basic sanity checking for blast data-structures
2015-09-28 18:55:24 -07:00
Leonardo de Moura
465a939146
feat(library/bast): convert a blast branch back into a goal
2015-09-28 18:28:11 -07:00
Leonardo de Moura
3f751c170b
feat(library/blast): finish goal -> state translation
2015-09-28 17:39:30 -07:00
Leonardo de Moura
913d4526cd
feat(library/blast/expr): improve performance of abstract_lrefs
2015-09-28 16:42:55 -07:00
Leonardo de Moura
885f5745c4
refactor(library/blast): revise how goal meta-vars are compiled into blast mrefs
2015-09-28 16:40:19 -07:00
Leonardo de Moura
d3937aa02d
refactor(library/blast): use simpler encoding for lref and mref
2015-09-28 13:02:15 -07:00
Leonardo de Moura
f01fd744cf
feat(library/blast): convert goal into blast state
2015-09-25 14:44:00 -07:00
Leonardo de Moura
33f46fd137
feat(library/blast): parse blast tactic and invoke stub
2015-09-25 12:45:16 -07:00
Leonardo de Moura
e5b2cd1564
refactor(library/blast): rename goal to branch
2015-09-25 11:58:51 -07:00
Leonardo de Moura
86e8508711
refactor(library/blast): we don't need blast::justification
2015-09-23 18:13:18 -07:00
Leonardo de Moura
7be1c015d1
checkpoint
2015-09-23 00:42:36 -07:00
Leonardo de Moura
2411fa3d2b
feat(library/blast/expr): add instantiate_rev
2015-09-21 17:12:45 -07:00
Leonardo de Moura
c5921fca6d
refactor(library/blast): remove dead code
...
We don't need context anymore. The "context" is the blast goal object.
2015-09-21 16:22:53 -07:00
Leonardo de Moura
c0cf54e8d4
chore(library/blast): fix compilation warning
2015-09-21 16:21:21 -07:00
Leonardo de Moura
bb24421232
feat(library/blast): add hash consing for expressions (and universe levels) created in blast
...
We had to reimplement the expr API: replace, abstract, instantiate.
Remark: blast expressions do not use metavariables and local constants,
but the new mref and lref expressions.
2015-09-21 16:17:11 -07:00
Leonardo de Moura
dd5bb8e7f7
chore(library/tactic/apply_tactic): remove dead code
2015-09-16 08:41:02 -07:00
Leonardo de Moura
b7271c39af
chore(library/blast,runtime/cpp): fix style
2015-09-16 07:50:00 -07:00
Leonardo de Moura
5028d794ce
refactor(library,library/blast): move context to blast
2015-09-16 07:49:39 -07:00
Leonardo de Moura
00a59a50b6
feat(library/context): add "context"-like object
2015-09-15 17:14:39 -07:00
Leonardo de Moura
df3100d2cd
fix(library/local_context): bug in abstract_locals procedure
2015-09-12 17:17:13 -07:00
Leonardo de Moura
d3e6880df0
chore(compiler/util,library/aux_recursors): fix style
2015-09-11 23:27:43 -07:00
Leonardo de Moura
8666c92bae
feat(library,library/definitional): tag auxiliary recursors automatically generated by Lean
2015-09-11 10:08:54 -07:00
Rob Lewis
8e428f2d3f
fix(src/library/definitional/equations.cpp): fix typo in error message
2015-09-11 08:52:53 -07:00
Leonardo de Moura
634c0b5e9d
feat(library/tactic,frontends/lean): propagate new options back to elaborator
2015-09-02 20:34:14 -07:00
Leonardo de Moura
08169c5ac2
fix(library/unifier): fixes #809
...
Daniel is correct when he says the interaction between choice
case-splits, delta case-splits, and coercions can be subtle.
I believe the following condition
https://github.com/leanprover/lean/blob/master/src/frontends/lean/elaborator.cpp#L111
reduces counter-intuitive behavior. Example, the coercion should not
influence the resulting type.
BTW, by removing this condition, many files in the library broke when I
tried to compile from scratch
make clean-olean
make
I used the following workaround. Given a delta-delta constraint
f a =?= f b
If the terms are types, and no case-split will be performed, then
the delta-delta constraint is eagerly solved.
In principle, we don't need the condition that the terms are types.
However, many files break if we remove it. The problem is that many files in the standard
library are abusing the higher-order unification procedure. The
elaboration problems are quite tricky to solve.
I use the extra condition "the terms are types" because usually if they
are, "f" is morally injective, and we don't really want to unfold it.
Note that the following two cases do not work
check '{1, 2, 3}
check insert 1 (insert 2 (insert 3 empty))
Well, they work if we the num namespace is open, and they are
interpreted as having type (finset num)
2015-08-31 17:59:30 -10:00
Leonardo de Moura
45163acf25
refactor(kernel/inductive): use local constants to represent introduction rules
2015-08-25 03:46:28 -07:00
Leonardo de Moura
a3c404ac3b
feat(library/tactic/apply_tactic): do not report elaboration failure in apply tactic when proof_state.report_failure() is false
2015-08-21 15:45:52 -07:00
Daniel Selsam
0942e94321
fix(library/export): typos
2015-08-18 17:49:03 -07:00
Leonardo de Moura
2b52198702
fix(library/unfold_macros): fixes #806
2015-08-18 17:46:47 -07:00
Leonardo de Moura
cb7ca51dcb
feat(library/unfold_macros): avoid unnecessary get_value
2015-08-17 13:03:08 -07:00
Leonardo de Moura
933850e0d1
fix(library/shared_environment): compilation warning
2015-08-17 08:41:12 -07:00
Leonardo de Moura
eb8f586dba
fix(library/normalize): fixes #801
2015-08-16 14:22:02 -07:00
Leonardo de Moura
7bc8673786
feat(library/module): efficient inductive_reader
...
Do not check imported inductive declarations when trust level is greater than 0.
2015-08-15 14:48:49 -07:00
Leonardo de Moura
e80d9685e5
refactor(kernel/inductive): add certified_inductive_decl object
...
We will use this object to implement a more efficient import procedure
2015-08-15 13:26:38 -07:00
Leonardo de Moura
b21d85d19e
chore(library/coercion): fix style
2015-08-14 18:49:01 -07:00
Daniel Selsam
7223293a93
feat(library/coercion): improve error message when coercion has no viable source
2015-08-14 18:44:44 -07:00
Daniel Selsam
5bef45b1fd
feat(library/coercion): improve error message when target is unacceptable
2015-08-14 18:44:44 -07:00
Daniel Selsam
f4e1e9d671
feat(library/coercion): closes #794
...
Include level information in primary coercion error message if
pp_options are set to display levels.
2015-08-14 18:44:43 -07:00
Leonardo de Moura
6c934229f7
feat(kernel,library/module): only module reader can add declarations without type-checking them
2015-08-14 18:37:17 -07:00
Leonardo de Moura
d1f13d2871
perf(library/module): skip checksum if trust level is very high
2015-08-14 18:23:12 -07:00
Leonardo de Moura
cc8b5d2d6e
perf(library/unfold_macros): skip contains_untrusted_macro if trust level is very high
2015-08-14 18:10:19 -07:00
Leonardo de Moura
849b99d244
perf(library/module): use block read
2015-08-14 17:56:21 -07:00
Leonardo de Moura
5a6a4b45c1
fix(library/definitional/equations): fixes #796
2015-08-14 14:39:23 -07:00
Leonardo de Moura
498afc1e6f
feat(CMakeLists): add shared library
2015-08-13 11:21:05 -07:00
Leonardo de Moura
5d8d226640
fix(frontends/lean/parser): add support for decimals
...
Decimal numbers are notation for rationals.
If rat.of_num is not available, then an error is generated.
closes #793
2015-08-11 18:44:48 -07:00
Leonardo de Moura
0b8f57841a
feat(frontends/lean/decl_cmds): closes #791
2015-08-11 17:53:33 -07:00
Leonardo de Moura
23118371d1
refactor(library/aliases): cleanup
2015-08-11 06:41:56 -07:00
Leonardo de Moura
dc2e702373
feat(library/unifier): generate approximate solution for universe constraints of the form (max u ?m =?= max u v)
...
closes #777
2015-08-08 09:29:59 -07:00
Leonardo de Moura
d46dbce86e
feat(library/tactic/tactic): apply substitution in 'then' combinator
...
closes #778
2015-08-08 03:42:21 -07:00
Leonardo de Moura
6a079fdd2d
fix(library/tactic/exact_tactic): fixes #779
2015-08-07 13:29:22 -07:00
Leonardo de Moura
f264adfa92
fix(library/export): bug in --export-all option
2015-07-30 17:23:38 -07:00
Leonardo de Moura
9bf64c10fd
feat(library/export): export the whole environment when using "--expor-all"
2015-07-30 15:04:49 -07:00
Leonardo de Moura
b3707ab54a
feat(library/tactic/unfold_rec): fixes #753
2015-07-29 17:13:02 -07:00
Leonardo de Moura
308af87b69
feat(library): add 'noncomputable' keyword for the standard library
2015-07-28 21:56:35 -07:00
Leonardo de Moura
a009db2902
feat(library): add module for tracking noncomputable definitions
2015-07-28 18:15:26 -07:00
Leonardo de Moura
80e3da0526
fix(library/util): fixes #751
2015-07-28 16:30:20 -07:00
Leonardo de Moura
ad5d792a8e
feat(library,shell): add --export-all command line option
2015-07-28 15:54:44 -07:00
Leonardo de Moura
0dc8dc999e
fix(library/tactic/rewrite_tactic): crash when trying to unfold constructor
2015-07-28 12:43:56 -07:00
Daniel Selsam
ee11fca69b
refactor(src/library/export): disambiguate export keywords
2015-07-27 19:08:26 -07:00
Daniel Selsam
214b5b8b58
refactor(src/library/export): prefix export keywords with #
2015-07-27 15:07:12 -07:00
Leonardo de Moura
b2bd6b1ff8
feat(library/simplifier): simplification sets for hypothesis and conclusion
2015-07-27 14:59:21 -07:00
Leonardo de Moura
966e0109ff
feat(library/simplifier): initialize simplification set.
2015-07-27 14:59:21 -07:00
Leonardo de Moura
5c7a20e5bd
fix(library/unifier): crash when unifying constraints of the form (pr t =?= s)
...
where pr is a projection and t is a stuck term
see issue #737
2015-07-24 11:52:46 -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
3e6b80d38c
feat(library/util): disable local constant purification when pretty printing goals
...
This feature generates confusion.
2015-07-23 18:52:59 -07:00
Leonardo de Moura
f1a19a10c4
fix(library/util): incorrect hypothesis renaming when pretty printing goals
2015-07-23 18:52:59 -07:00
Leonardo de Moura
e221d38790
feat(library/tactic/assert_tactic): allow duplicate names for hypotheses in assert tactic
2015-07-23 18:52:59 -07:00
Leonardo de Moura
5f4576a7f7
test(tests/lean): add test for '[congr]' attribute validation
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
18dd7c13f9
feat(frontends/lean): add '[congr]' attribute
2015-07-22 17:21:47 -07:00
Leonardo de Moura
a07b42ad9e
refactor(library/simplifier): the simplifier expects relations to be transitivie and reflexive
2015-07-22 15:46:00 -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
b5c287d3d1
refactor(library/simplifier): cleanup
2015-07-22 08:39:55 -07:00
Leonardo de Moura
e74c6eef3d
feat(library/simplifier): add 'simp.funext' and 'simp.propext' options
2015-07-21 18:23:10 -07:00
Leonardo de Moura
0c0f07332e
feat(library/simplifier/simp_tactic): add simp tactic configuration options
2015-07-21 16:15:04 -07:00
Leonardo de Moura
b02b3d362f
feat(library/simplifier): add simplifier procedure skeleton
2015-07-21 15:08:56 -07:00
Leonardo de Moura
f5c546e810
feat(frontends/lean/parse_simp_tactic): add simp tactic parser
2015-07-14 14:21:39 -04:00
Leonardo de Moura
3ab0e07ba9
feat(frontends/lean): add simp tactic frontend stub
...
This commit also removes the fake_simplifier. It doesn't work anymore
because simp is now a reserved word.
2015-07-14 09:54:53 -04:00
Leonardo de Moura
84b439507b
chore(library/tactic): fix style
2015-07-13 19:43:33 -04:00
Leonardo de Moura
c2edc330ef
fix(library/tactic/rewrite_tactic): remove incorrect assertion
2015-07-13 19:19:12 -04:00
Leonardo de Moura
9c5bf98ed6
feat(library/tactic): add 'with_options' tactical
...
see issue #494
2015-07-13 18:34:31 -04:00
Leonardo de Moura
0f714e36b0
feat(library/tactic): add 'location' macro
2015-07-13 17:56:42 -04:00
Leonardo de Moura
58291024a9
fix(library/simplifier/ceqv): polish conditional rewrite internalization procedure
2015-07-13 16:40:18 -04:00
Leonardo de Moura
3cb8568fb5
feat(library/simplifier): we can "rewrite" with transitive relations
...
The simplifier does not really need the relation to be an equivalence.
Transitivity is the main required property (we need to chain rewrites
together).
2015-07-12 14:24:05 -04:00
Leonardo de Moura
4c0a656ecc
fix(library/tactic/unfold_rec): support indexed families + brec_on at unfold_rec
...
see issue #692
2015-07-12 12:45:05 -04:00
Leonardo de Moura
584f9e3f49
fix(library/tactic/unfold_rec): support indexed families at unfold_rec
...
This commit also removes many (now unnecessary) folds from the HoTT
library.
See issue #692
We still have to implement support for recursive definitions based on
brec_on that recurse over inductive families.
2015-07-12 12:32:58 -04:00
Leonardo de Moura
7fa5c3e5da
feat(library/tactic/unfold_rec): take '[recursor]' annotations into account at unfold_rec
2015-07-12 11:33:40 -04:00
Leonardo de Moura
b0ac78c2cb
feat(library/user_recursors): add is_user_defined_recursor predicate
2015-07-12 11:25:50 -04:00
Leonardo de Moura
8e8e08cfe7
feat(library/tactic): use occurrence object in unfold tactic family
2015-07-11 18:53:45 -04:00
Leonardo de Moura
554a42b407
fix(library/tactic/unfold_rec): add annother brec pattern that should be checked in the unfold recursive definition tactic
2015-07-10 22:16:23 -04:00
Leonardo de Moura
a9515ac7a4
feat(library/tactic/rewrite_tactic): try to fold nested recursive applications after unfolding a recursive function
...
See issue #692 .
The implementation still has some rough spots.
It is not clear what the right semantic is.
Moreover, the folds in e_closure could not be eliminated automatically.
2015-07-08 21:19:18 -04:00
Leonardo de Moura
6ffbb05118
feat(library/definitional/no_confusion): add [unfold] hint to no_confusion
2015-07-07 20:07:13 -07:00
Leonardo de Moura
26574e29a9
feat(library/normalize,frontends/lean): allow multiple arguments in [unfold] hint
...
closes #693
2015-07-07 18:01:57 -07: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
991ff67b45
refactor(library/relation_manager): cleanup and add API for declaring a relation that may not be reflexive, symmetric nor transitive
2015-07-07 15:58:24 -07:00
Leonardo de Moura
7de7c5b73d
feat(library/definitional/projection): define projections using auxiliary macro
2015-07-02 10:49:49 -07:00
Leonardo de Moura
c15bcf1354
refactor(library/projection): remove projection macro from library
2015-07-02 08:48:13 -07:00
Leonardo de Moura
dd145926a2
fix(library/coercion): compilation warning
2015-07-02 07:26:00 -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
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