Commit graph

8174 commits

Author SHA1 Message Date
Leonardo de Moura
7312dd77b8 refactor(library/congr_lemma_manager): move expr_unsigned_map to separate module 2016-01-06 17:29:16 -08:00
Leonardo de Moura
43c5cbd1bf feat(library/fun_info_manager): more general fun_info_manager 2016-01-06 17:29:10 -08:00
Leonardo de Moura
3ca785b0e7 refactor(library/fun_info_manager): remove dead code 2016-01-06 17:29:02 -08:00
Leonardo de Moura
a992bb46a6 feat(library/fun_info_manager): update interface 2016-01-06 17:28:52 -08:00
Johannes Hölzl
12571c92d8 refactor(library/algebra): explicit parameters also for fun instances 2016-01-06 10:58:14 -08:00
Johannes Hölzl
6d6a00f48b refactor(library/algebra): fix theorem names 2016-01-06 10:57:55 -08:00
Johannes Hölzl
f7ea9a5f64 feat(library/algebra): add theory about Galois connections
Adds a small theory about Galois connections, i.e. order theoretic adjoints, and their relations to
least upper and greatest lower bounds.
2016-01-06 10:57:32 -08:00
Johannes Hölzl
9c28552afb feat(library/algebra): add lattice instances for Prop, fun, and set
Adds weak_order, lattice and complete_lattice instances for Prop, fun, and set. Adds supporting
theorems to various other places.
2016-01-06 10:57:32 -08:00
Rob Lewis
c0deac6a63 fix(src/emacs): add replace keyword to emacs syntax file 2016-01-05 11:01:00 -05:00
Rob Lewis
a57b7fadfb style(replace_tactic): remove extra whitespace 2016-01-04 15:10:51 -05:00
Rob Lewis
458725e63f feat(library/algebra): add missing theorems to group and ordered ring 2016-01-04 14:45:39 -05:00
Rob Lewis
031831f101 feat(library/tactic): add replace tactic 2016-01-04 14:43:31 -05:00
Leonardo de Moura
ba392f504f feat(kernel/expr,library/blast/blast,frontends/lean/decl_cmds): add workaround for allowing users to use blast inside of recursive equations 2016-01-03 21:53:31 -08:00
Jeremy Avigad
a22346e411 fix(lean/tests/lean/run/new_obtain{3,4}): adapt tests to new notation for image 2016-01-03 18:52:25 -08:00
Jeremy Avigad
d9118ded76 feat(library/theories/topology/basic): show that generated topology is initial 2016-01-03 18:52:25 -08:00
Jeremy Avigad
4289daddcb refactor(library/data/{set,finset}/basic,library/*): change notation for image to tick mark 2016-01-03 18:52:25 -08:00
Jeremy Avigad
17f6ab3a71 fix(library/data/set/basic): fix spacing in notation 2016-01-03 18:52:25 -08:00
Jeremy Avigad
7600d04533 library/algebra/complete_lattice): fix typo in comment 2016-01-03 18:52:25 -08:00
Jeremy Avigad
173368801b fix(library/algebra/interval): rename namespace, and move a theorem 2016-01-03 18:52:25 -08:00
Jeremy Avigad
31aa256b99 feat(library/theories/measure_theory/sigma_algebra): start with definition and properties of sigma algebras 2016-01-03 18:52:25 -08:00
Jeremy Avigad
721f6c87bf feat(library/data/set/basic): add some theorems 2016-01-03 18:52:25 -08:00
Leonardo de Moura
4478d570bd chore(library/congr_lemma_manager): fix style 2016-01-03 18:02:50 -08:00
Leonardo de Moura
19ebedd480 feat(library/type_context): improve type_context get_level_core, add virtual method for checking types whenever a metavariable is assigned
We add an example where app_builder fails without these new features.
That is, app_builder fails to solve the unification problem.
2016-01-03 17:58:27 -08:00
Leonardo de Moura
1fc7bbceb2 chore(frontends/lean/builtin_cmds): handle FixedNoParam in the front-end 2016-01-03 15:18:26 -08:00
Leonardo de Moura
fcf532ea67 chore(library/app_builder): fix typo in trace message 2016-01-03 15:16:50 -08:00
Leonardo de Moura
d0fe59ef8a feat(library/congr_lemma_manager): add new kind of congr_arg 2016-01-03 15:10:07 -08:00
Leonardo de Moura
67d49aabd9 chore(library/congr_lemma_manager): document main methods 2016-01-03 14:39:34 -08:00
Leonardo de Moura
66a722ff5a feat(library/unifier): remove "eager delta hack", use is_def_eq when delta-constraint does not have metavariables anymore
The "eager-delta hack" was added to minimize problems in the interaction
between coercions and delta-constraints.
2016-01-03 12:39:32 -08:00
Leonardo de Moura
d02ead320a feat(library/unifier): remove unifier.computation option 2016-01-03 11:00:16 -08:00
Leonardo de Moura
9935cbc3d7 feat(library/blast/blast): communicate assigned metavariables back to tactic framework
We need this feature to be able to solve (input) goals containing
metavariables using blast.
See new test for example.
2016-01-02 20:05:44 -08:00
Leonardo de Moura
56d9b6b0d3 fix(library/blast/blast): convert uref and mref back into tactic metavariables 2016-01-02 19:23:04 -08:00
Leonardo de Moura
d85b4300b1 fix(library/blast/blast): bug at visit_meta_app 2016-01-02 19:08:56 -08:00
Leonardo de Moura
5feef27c2b feat(frontends/lean/notation_cmd): relax restriction on user defined tokens
Before this commit, Lean would forbid new tokens containing '(' or ')'.
We relax this restriction. Now, we just forbid new tokens starting with '(' or ending with ')'.
2016-01-02 13:58:46 -08:00
Leonardo de Moura
4eb2690c32 feat(library/scoped_ext): store set of opened namespaces 2016-01-02 13:35:08 -08:00
Leonardo de Moura
155df48665 feat(library): remove decl_stats
We are not using (and will not use) this module in the blast proof procedures
2016-01-02 13:00:43 -08:00
Leonardo de Moura
befe41e8f5 fix(tests/lean): adjust tests 2016-01-02 12:51:20 -08:00
Leonardo de Moura
3c564fcc55 fix(library/user_recursors): 'print recursor-lemma' command 2016-01-01 18:12:12 -08:00
Leonardo de Moura
0963ce336f feat(library/blast): add 'grind' and 'grind_simp' blast strategies
The use [intro] [intro!] [elim] [simp] lemmas.
The [simp] lemmas are only used by grind_simp.
2016-01-01 17:32:13 -08:00
Leonardo de Moura
57c9ced111 feat(library/blast): add fail_action and fail_strategy helper functions 2016-01-01 17:18:05 -08:00
Leonardo de Moura
cd7708d556 feat(library/blast/backward/backward_strategy): add extensible backward chaining strategy 2016-01-01 17:07:15 -08:00
Leonardo de Moura
43f0183ce9 feat(library/blast/backward/backward_strategy): allow user to control the number of nested backward chaining steps 2016-01-01 16:46:49 -08:00
Leonardo de Moura
17a2f1fe47 chore(tests/lean/run/blast_grind1): use 'core_grind'
Reason: we will change the semantics of 'grind'
2016-01-01 16:46:15 -08:00
Leonardo de Moura
4f1415174e refactor(library/data): "union." ==> "union_", "inter." ==> "inter_" 2016-01-01 16:13:44 -08:00
Leonardo de Moura
4e2494f12e refactor(library/init/nat): minor cleanup 2016-01-01 15:56:46 -08:00
Leonardo de Moura
ac9d6c2021 refactor(library/data/bool): cleanup bool proofs and fix bxor definition 2016-01-01 13:52:42 -08:00
Leonardo de Moura
52ec7e6d57 feat(library/blast/recursor): add 'blast.recursor.max_rounds' options and iterative deepening for recursor_strategy 2016-01-01 13:09:37 -08:00
Leonardo de Moura
1bb21d202b refactor(library/blast): move recursor action and strategy to its own directory 2016-01-01 12:49:49 -08:00
Leonardo de Moura
317c32a7e2 fix(library/blast/state): avoid duplicated names at state::to_goal 2016-01-01 00:10:54 -08:00
Leonardo de Moura
712e19e22a fix(library/blast/forward/ematch): bug in the ematching procedure 2015-12-31 21:26:44 -08:00
Leonardo de Moura
54f2c0f254 feat(library/blast/forward): inst_simp should use the left-hand-side as a pattern (if none is provided by the user)
The motivation is to reduce the number of instances generated by ematching.

For example, given

   inv_inv:  forall a, (a⁻¹)⁻¹ = a

the new heuristic uses ((a⁻¹)⁻¹) as the pattern.
This matches the intuition that inv_inv should be used a simplification
rule.

The default pattern inference procedure would use (a⁻¹). This is bad
because it generates an infinite chain of instances whenever there is a
term (a⁻¹) in the proof state.
By using (a⁻¹), we get
   (a⁻¹)⁻¹ = a
Now that we have (a⁻¹)⁻¹, we can match again and generate
   ((a⁻¹)⁻¹)⁻¹ = a⁻¹
and so on
2015-12-31 20:20:39 -08:00