Commit graph

1885 commits

Author SHA1 Message Date
Leonardo de Moura
6193816f6a fix(library/tmp_type_context): bug at pop() 2015-12-05 19:14:33 -08:00
Leonardo de Moura
df567717f8 feat(library/blast/strategies): add 'blast.strategy "preprocess"' 2015-12-05 18:17:15 -08:00
Leonardo de Moura
9736b8d79c test(tests/lean/attr_at3): add test for 'attribute ... at ...' 2015-12-05 11:17:42 -08:00
Leonardo de Moura
e5aab3fd63 feat(library/scoped_ext,frontends/lean): add support for setting attributes into different namespaces 2015-12-05 11:15:02 -08:00
Daniel Selsam
934b502c6f refactor(algebra/numeral): prove lemmas incrementally 2015-12-05 08:56:56 -08:00
Daniel Selsam
08e0fc796b feat(library/blast/actions): by_contradiction action 2015-12-04 20:19:05 -08:00
Daniel Selsam
a04c28d4c9 refactor(library/algebra): construct simplifier sets incrementally 2015-12-04 18:28:56 -08:00
Leonardo de Moura
2682fe9525 feat(library/blast/blast): force 'ne' to be always transparent 2015-12-04 18:24:36 -08:00
Leonardo de Moura
5da1b52e47 feat(library/blast/unit/unit_propagate): make sure unif_propagate works even if 'not' is marked as '[reducible]' 2015-12-04 16:49:21 -08:00
Leonardo de Moura
5d38a5a5cd test(tests/lean/run/blast_ematch10): make sure the test is for the cc module 2015-12-04 14:03:51 -08:00
Leonardo de Moura
a8b6a286dd fix(library/app_builder): make sure app_builder works even if iff is marked as reducible 2015-12-04 13:51:56 -08:00
Leonardo de Moura
07cb35fd3c fix(library/abstract_expr_manager): incorrect handling of de-Bruijn variables 2015-12-04 09:27:21 -08:00
Leonardo de Moura
2edf91ce42 fix(tests/lean/interactive/findp): broken test output 2015-12-04 08:40:21 -08:00
Daniel Selsam
6e478696d2 feat(library/blast/unit): preprocessor placeholder 2015-12-04 08:30:04 -08:00
Daniel Selsam
0df4556eb5 feat(library/blast/unit): quantified and non-Prop facts 2015-12-04 08:30:03 -08:00
Daniel Selsam
2bf9989bd9 refactor(library/blast/unit): simplify module 2015-12-04 08:30:03 -08:00
Leonardo de Moura
6bbe72190d fix(library/congr_lemma_manager): bug in congruence lemma generator 2015-12-03 14:21:30 -08:00
Leonardo de Moura
038369533e fix(library/blast/recursor_action): indexed families 2015-12-02 23:43:15 -08:00
Leonardo de Moura
1c1cfdd010 test(tests/lean/run): add Dan's reducible+ematch test 2015-12-02 23:32:43 -08:00
Leonardo de Moura
87995b96e3 fix(library/blast/congruence_closure): is_relation_app ==> is_equivalence_relation_app 2015-12-02 23:28:57 -08:00
Daniel Selsam
139536896c feat(library/light_lt_manager): light wrappers for ordered rewriting 2015-12-02 22:56:54 -08:00
Leonardo de Moura
028ef47c84 feat(frontends/lean,library/blast/forward/pattern): check whether patterns can be inferred at declaration time 2015-12-02 22:52:55 -08:00
Leonardo de Moura
f84c6a6cfa fix(library/blast,frontends/lean): handling pattern hints after unfolding 2015-12-02 22:52:55 -08:00
Leonardo de Moura
950f356d9a refactor(library/blast,frontends/lean): forward pattern index 2015-12-02 22:52:55 -08:00
Leonardo de Moura
a83a7f8356 feat(library/blast/forward/pattern): remove redundant multi-patterns 2015-12-02 22:52:55 -08:00
Leonardo de Moura
ec7c38d847 feat(library/blast/forward/pattern): add minimal pattern validation 2015-12-02 22:52:55 -08:00
Leonardo de Moura
2090e9124c test(tests/lean/run): add more tests from algebra 2015-12-02 22:52:55 -08:00
Leonardo de Moura
48de943678 test(tests/lean/run): add Daniel's example 2015-12-02 22:52:55 -08:00
Leonardo de Moura
4f06e91ce5 test(tests/lean/run): add new test 2015-12-02 22:52:55 -08:00
Leonardo de Moura
1ab39a518f chore(tests/lean/run/blast_ematch5): disable unnecessary options 2015-12-02 22:52:54 -08:00
Leonardo de Moura
32ad59adc1 feat(library/blast/forward/ematch): add support for multi-patterns 2015-12-02 22:52:54 -08:00
Leonardo de Moura
a8bb4ba109 fix(library/blast/congruence_closure): bug in congruence closure proof extraction 2015-12-02 22:52:54 -08:00
Leonardo de Moura
5844e96734 test(tests/lean/run): add basic ematching tests 2015-12-02 22:52:54 -08:00
Leonardo de Moura
08bb966581 feat(library/blast/forward/ematch): generate new instances 2015-12-02 22:52:54 -08:00
Leonardo de Moura
e4e9c30e66 fix(frontends/lean/builtin_cmds): print patterns 2015-12-02 22:52:54 -08:00
Leonardo de Moura
fdd442bd38 feat(frontends/lean/decl_attributes): turn on [forward] if pattern hints have been provided 2015-12-02 22:52:54 -08:00
Leonardo de Moura
41ff4bc193 feat(library/blast/forward/pattern): pattern inference and heuristic instantiation index 2015-11-25 23:45:08 -08:00
Leonardo de Moura
84b54ad027 test(tests/lean/run): disable recursor tactic and add tests for unit+cc 2015-11-25 06:43:48 -08:00
Daniel Selsam
ca71a2eb12 feat(library/blast/unit): conjunctive conclusions 2015-11-24 22:45:39 -08:00
Daniel Selsam
eac1ebbf72 feat(library/blast/unit): propagate clauses 2015-11-24 21:16:01 -08:00
Leonardo de Moura
67a4cd3972 feat(frontends/lean): add print [no_pattern] command 2015-11-24 18:48:22 -08:00
Leonardo de Moura
f4a7268bd7 fix(library/blast/congruence_closure): bug in add_eqv_step 2015-11-23 14:26:33 -08:00
Leonardo de Moura
0bd417bc2a test(tests/lean/run/blast23): missing test 2015-11-22 18:23:01 -08:00
Leonardo de Moura
1bd827dffc feat(library/blast/simplifier/simplifier_actions): add simplify_hypothesis_action 2015-11-22 17:49:00 -08:00
Leonardo de Moura
989a2e077b fix(tests/lean): adjust tests 2015-11-22 17:15:28 -08:00
Leonardo de Moura
a0284b0e82 fix(tests/lean/simplifier11): contextual ite lemma has been renamed 2015-11-22 17:08:15 -08:00
Leonardo de Moura
fc461ce832 feat(library/app_builder): avoid redundant proof terms at mk_of_iff_true and mk_not_of_iff_false 2015-11-22 15:49:17 -08:00
Leonardo de Moura
94f7b7f95d feat(library/blast/congruence_closure): add support for propagating units in the congruence closure module
See blast_cc12.lean for example.
2015-11-22 15:39:44 -08:00
Leonardo de Moura
6fc0e41439 fix(library/blast/congruence_closure): proof generation for congruences such as (a = b) <-> (b = a)
The congruence closure module treats these two terms as the same thing.
So, we should take this into account when building proofs
2015-11-21 19:50:59 -08:00
Leonardo de Moura
5e9914ef45 feat(library/blast/congruence_closure): avoid eq.rec if major premise is eq.refl 2015-11-21 19:00:16 -08:00
Leonardo de Moura
091b0f0cc7 feat(library/blast): add option for disabling congruence closure 2015-11-21 17:45:25 -08:00
Leonardo de Moura
c4328aad3a feat(library/blast/congruence_closure): missing case 2015-11-21 17:40:15 -08:00
Leonardo de Moura
962a61801e test(tests/lean/run/blast_cc8): add card based on finite_set test for congruence closure module 2015-11-21 15:04:16 -08:00
Leonardo de Moura
c49caf3740 feat(library/blast/congruence_closure): add support for user-defined congruence lemmas in the congruence closure module 2015-11-21 14:43:51 -08:00
Leonardo de Moura
c280ddb2b0 fix(tests,doc): adjust tests and documentation 2015-11-20 17:03:17 -08:00
Leonardo de Moura
1a4068878e fix(tests/lean/run): adjust tests 2015-11-20 16:46:10 -08:00
Leonardo de Moura
eb3d73873a test(tests/lean/run/blast_cc4): congruence_closure and type classes 2015-11-20 14:01:15 -08:00
Leonardo de Moura
2627eade8b test(tests/lean/run/blast_cc3): add test for congruence_closure with dependent types 2015-11-20 13:55:22 -08:00
Leonardo de Moura
8f368cebbf feat(library/blast/congruence_closure): lift equalities 2015-11-20 13:48:22 -08:00
Leonardo de Moura
28970ef717 feat(library/blast/congruence_closure): proof extraction 2015-11-20 12:23:32 -08:00
Leonardo de Moura
6bd92e144a test(tests/lean/run/blast20): uncomment example that can now be solved 2015-11-19 11:46:22 -08:00
Daniel Selsam
5ada4312d7 feat(library/blast/forward): propositional forward chaining 2015-11-19 11:44:53 -08:00
Leonardo de Moura
f78e57fd52 feat(shell,frontends/lean): add command line option --dir
See #821
See #788
2015-11-19 08:34:23 -08:00
Leonardo de Moura
093a212ed4 test(tests/lean/run/blast21): another blast test 2015-11-18 19:20:32 -08:00
Leonardo de Moura
3bd83b8e41 feat(library/blast/backward/backward_strategy): don't try constructor action by default 2015-11-18 19:14:37 -08:00
Leonardo de Moura
3f6ec66b36 test(tests/lean/run/blast20): more tests 2015-11-18 19:12:58 -08:00
Daniel Selsam
413989afd6 feat(library/blast/backward): backward chaining strategy 2015-11-18 17:48:39 -08:00
Leonardo de Moura
e580e6cdb1 fix(tests/lean/interactive/findp): adjust test 2015-11-18 10:10:46 -08:00
Leonardo de Moura
de67288305 fix(library/app_builder): mk_rel supports relations where the lhs and rhs are not necessarily the last two arguments (e.g., heq) 2015-11-17 18:45:22 -08:00
Leonardo de Moura
f363975856 feat(frontends/lean): add command #congr_rel for testing new congruence lemma for equivalence relations 2015-11-17 18:45:22 -08:00
Leonardo de Moura
a96aed6dfe test(tests/lean): add tests for simp priorities 2015-11-16 22:41:04 -08:00
Leonardo de Moura
491c7c55e1 feat(library/simplifier/simp_rule_set): add priorities for simp and congr rules 2015-11-16 22:34:06 -08:00
Leonardo de Moura
5095f05303 fix(tests/lean/interactive/findp): adjust test to recent changes in the standard lib 2015-11-16 21:30:28 -08:00
Daniel Selsam
835e8995b4 test(simplifier19): nested fusion 2015-11-16 20:39:16 -08:00
Daniel Selsam
a689c66b1e fix(library/blast/simplifier): handle scalar in fusion 2015-11-16 20:39:15 -08:00
Daniel Selsam
49ff8640d9 fix(library/blast/simplifier): use ac rules for numerals 2015-11-16 20:39:15 -08:00
Daniel Selsam
8ca5d87f0b feat(library/blast/simplifier): rely on norm_num for recursion 2015-11-16 20:33:22 -08:00
Daniel Selsam
7cd15aaecd test(simplifier11): add necessary simp rule 2015-11-16 20:33:22 -08:00
Daniel Selsam
6ba42bb7bc test(simplifier11.lean): add rule for (not P) 2015-11-16 20:33:22 -08:00
Daniel Selsam
a02459fe5e test(simplifier9.lean): fix order of congr rules 2015-11-16 20:33:22 -08:00
Daniel Selsam
b9a516783c fix(library/blast/simplifier): remove unnecessary casts 2015-11-16 20:33:22 -08:00
Leonardo de Moura
60945e95b4 feat(library/blast): add 'discard' action for detecting irrelevant hypotheses 2015-11-16 11:43:51 -08:00
Leonardo de Moura
b3ca5faa49 fix(tests/lean): some of the simplifier tests 2015-11-16 11:01:53 -08:00
Daniel Selsam
5e8068b2b2 feat(library/blast/simplifier): draft of fusion 2015-11-16 09:13:07 -08:00
Daniel Selsam
6290919170 test(tests/lean/simplifier_norm_num): add moderate sized test 2015-11-16 09:13:07 -08:00
Daniel Selsam
30b1b79c4e fix(algebra/simplifier): update numeral simp rules 2015-11-16 09:12:29 -08:00
Leonardo de Moura
db59c6829c feat(library/blast): add basic support for non-recursive recursors/eliminators in the simple_strategy, fix bug at recursor_action 2015-11-15 18:39:12 -08:00
Leonardo de Moura
a545860aa1 feat(library/blast/intros_action): apply head_beta_reduce at intros 2015-11-15 18:14:12 -08:00
Leonardo de Moura
24ed427c2f feat(library/blast): add "recursor" (aka elimination/induction) action 2015-11-15 18:00:32 -08:00
Leonardo de Moura
0dc31227f8 feat(library/init/logic): mark ne reducible 2015-11-15 15:09:02 -08:00
Leonardo de Moura
60434b3487 fix(tests/lean/urec): adjust test to recent changes 2015-11-15 15:06:05 -08:00
Leonardo de Moura
1308c7c4e2 feat(library/blast): add action for not(a ~ a) when ~ is a reflexive relation 2015-11-15 15:00:25 -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
676ffb77f9 test(tests/lean/run): test for simp action 2015-11-15 11:36:24 -08:00
Leonardo de Moura
fd41a4f76d feat(library/blast): add simplify_target action 2015-11-14 16:18:12 -08:00
Leonardo de Moura
b5db77961d feat(library/blast): add "trivial" action 2015-11-14 15:02:14 -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
65b962dabd test(tests/lean/run): add basic tests for subst action 2015-11-13 15:27:54 -08:00
Leonardo de Moura
0316412992 test(tests/lean/simplifier_norm_num): disable test that is taking a long time 2015-11-13 09:25:39 -08:00
Daniel Selsam
00a5cd519e feat(algebra/simplifier): simp rule set for units 2015-11-12 21:23:28 -08:00
Daniel Selsam
e7890fb456 feat(algebra/simplifier): useful simp rule sets 2015-11-12 21:23:28 -08:00
Daniel Selsam
f17320eccf fix(library/abstract_expr_manager): remove weight and lt 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
Leonardo de Moura
182085b366 fix(tests/lean/simplifier_norm_num): adjust tests to recent changes 2015-11-12 20:59:26 -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
e1f81cfdcd feat(library/type_context): add normalizer for type_context 2015-11-12 20:31:36 -08:00
Leonardo de Moura
9aaa2d0991 feat(frontends/lean): add new command for testing new congruence lemmas
Remark: #congr_simp is the old command, and #congr is the new one.
2015-11-12 18:55:25 -08:00
Leonardo de Moura
5ceac83b6a feat(frontends/lean/elaborator): restrict the number of places where coercions are considered
We do not consider coercions around meta-variables anymore.
2015-11-11 12:37:19 -08:00
Leonardo de Moura
296a4ab940 test(tests/lean/run): add coercion test issue 2015-11-11 12:12:15 -08:00
Leonardo de Moura
fa3baed701 feat(frontends/lean): add new option (elaborator.coercions) for disabling coercions 2015-11-11 11:57:44 -08:00
Leonardo de Moura
9bedbbb739 refactor(library,hott): remove coercions between algebraic structures
They are classes, and mixing coercion with type class resolution is a
recipe for disaster (aka counterintuitive behavior).
2015-11-11 11:57:44 -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
f8f3f9402e feat(library/blast): major reorg and basic backward chaining action 2015-11-10 17:00:16 -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
623d677215 test(tests/lean/run): add missing test 2015-11-08 19:23:33 -08:00
Leonardo de Moura
78f1679b03 feat(library/blast): add basic assumption action 2015-11-08 18:16:34 -08:00
Leonardo de Moura
1027d052cb test(tests/lean/simplifier1): add HoTT test for simplifier 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
30b2bcbea6 test(library/blast/simplifier): simplify zeros and ones 2015-11-08 14:05:03 -08:00
Leonardo de Moura
2dd092069f test(tests/lean/congr1): add test for congruence lemma generator 2015-11-08 14:05:03 -08:00
Daniel Selsam
049f52bfe9 test(library/simplifier): fix name in test 2015-11-08 14:05:03 -08:00
Daniel Selsam
bacb9f99aa fix(logic/quantifiers): restore original 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
b727d5810a feat(library/blast/simplifier): rewrite with tmp locals 2015-11-08 14:05:02 -08:00
Daniel Selsam
25f507e46f test(library/simplifier): add compute intensive test case 2015-11-08 14:05:02 -08:00
Daniel Selsam
cbddd81a9e test(library/simplifier): add tests for numeral normalization 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
ba477a0e98 feat(library/congr_lemma_manager): handle simple congruence lemmas 2015-11-08 14:05:02 -08:00
Leonardo de Moura
809168c05b test(tests/lean/extra): add temp test for congruence manager 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
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
dc203b28db test(tests/lean/run): add more tests 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
3804281919 refactor(library/app_builder): remove app_builder Lua API 2015-11-08 14:05:00 -08:00
Leonardo de Moura
2f06a480fe test(tests/lean/run/partial_explicit): add test for '@@' operator 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
Jeremy Avigad
697df0e68c refactor(library/*): use type classes for div and mod 2015-11-08 14:04:59 -08:00
Jeremy Avigad
eea4e4ec55 fix(tests/lean/*): fix tests 2015-11-08 14:04:59 -08:00
Leonardo de Moura
54c5d2ca99 fix(tests/lean/run/univ_bug2): old test 2015-11-08 14:04:58 -08:00
Leonardo de Moura
20539d698f fix(tests/lean): tests affected by new type class resolution procedure 2015-11-08 14:04:58 -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
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
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
08c061e1fa refactor(library/data/set): remove [reducible] annotation from set operations 2015-11-08 14:04:56 -08:00
Leonardo de Moura
6df31d3406 refactor(library/data/nat/basic): mark some theorems as protected to avoid overloading 2015-11-08 14:04:56 -08:00
Leonardo de Moura
4e78e35f77 fix(tests/lean): adjust remaining tests to changes in the standard library 2015-11-08 14:04:56 -08:00
Leonardo de Moura
29763190ad fix(tests/lean): adjust some tests to changes in the standard library 2015-11-08 14:04:56 -08:00
Leonardo de Moura
81618e30f3 fix(tests/lean/run): adjust some tests to changes in the standard library 2015-11-08 14:04:56 -08:00
Leonardo de Moura
b3c89070e3 fix(tests/lean): test output 2015-10-13 09:57:58 -07:00
Sebastian Ullrich
dbfebd5409 feat(frontends/lean/scanner): add more checks to read_quoted_symbol 2015-10-13 09:52:35 -07:00
Leonardo de Moura
e4f0f6a9b4 feat(library): numeral normalization skeleton 2015-10-08 12:49:12 -07:00
Leonardo de Moura
1c4dea9941 fix(tests/lean): adjust tests to reflect changes in the pretty printer 2015-09-30 17:42:07 -07:00
Leonardo de Moura
542a998f0e fix(tests/lean): adjust tests to reflect changes in the HoTT library 2015-09-25 09:46:51 -07:00
Leonardo de Moura
28a5ca5809 fix(frontends/lean): fixes #830 2015-09-18 07:51:02 -07:00
Leonardo de Moura
68dc39c106 fix(tests/lean/run/rewriter12): broken test, now ^[ is a token 2015-09-16 08:37:43 -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
1fdbd681cc feat(frontends/lean/builtin_exprs): name hypothesis in suffices
closes #817
2015-09-03 16:09:39 -07:00
Leonardo de Moura
1dc1574ad4 fix(frontends/lean/parse_table): do not add 'no_info' annotation in tactic expressions 2015-09-02 20:51:06 -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
44c6e92a64 fix(tests/lean): notation ℕ is now defined in the top-level 2015-09-01 14:58:14 -07:00
Leonardo de Moura
c84e886c7b fix(frontends/lean/notation_cmd): fixes #808
This commit and 2b1d2c fixes #808
2015-08-31 18:05:58 -10: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
2b1d2c21ad fix(frontends/lean/util): bug when parsing priorities and numerals are overloaded 2015-08-31 15:08:21 -10: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
Leonardo de Moura
87349dc355 feat(frontends/lean/token_table): add 'proposition' keyword 2015-08-19 08:05:31 -07:00
Leonardo de Moura
3a72cd9621 fix(frontends/lean): rename multiword keyword "suffices to show" to "suffices" 2015-08-18 17:57:53 -07:00
Leonardo de Moura
3ce8c5d6f7 feat(frontends/lean): add "suffices to show A, from B, C" construct 2015-08-18 17:04:38 -07:00
Leonardo de Moura
9fcf3d4675 fix(tests/lean/extra): discrepancy between tests output when compiling Lean with IGNORE_SORRY 2015-08-18 12:42:22 -07:00
Leonardo de Moura
21c41f50ea fix(frontends/lean/elaborator): fixes #803 2015-08-17 14:56:41 -07:00
Leonardo de Moura
b07a364d2f feat(frontends/lean/parser): process multiple parsing actions
closes #800
2015-08-17 09:42:10 -07:00
Leonardo de Moura
b0dbc31d4b test(tests/lean/list_vect_numerals): add test mixing nat,int,real,list,vector 2015-08-16 18:54:14 -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
eb8f586dba fix(library/normalize): fixes #801 2015-08-16 14:22:02 -07:00
Leonardo de Moura
5a6a4b45c1 fix(library/definitional/equations): fixes #796 2015-08-14 14:39:23 -07:00
Leonardo de Moura
d2eb99bf11 refactor(library/logic): move logic/choice.lean to init/classical.lean
choice axiom is now in the classical namespace.
2015-08-12 18:37:33 -07:00
Leonardo de Moura
cb9830beaf refactor(library/logic/choice): move prop_decidable instance into namespace 'classical' 2015-08-12 17:06:15 -07:00
Leonardo de Moura
b4024982a2 refactor(library/data): move vector as indexed family to examples folder 2015-08-12 15:05:14 -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
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
66a59d5b51 feat(frontends/lean/util): remove hack that overrides priority namespace
closes #789
2015-08-11 18:01:40 -07:00
Leonardo de Moura
0b8f57841a feat(frontends/lean/decl_cmds): closes #791 2015-08-11 17:53:33 -07:00
Jeremy Avigad
305f72bf4f fix(tests/lean): fix three tests broken by setext renaming 2015-08-09 22:14:25 -04:00
Leonardo de Moura
582dbecfd0 feat(library,hott): add notation T1 : T2 as syntax sugar for (focus (T1; all_goals T2))
closes #775
2015-08-08 10:16:25 -07:00
Leonardo de Moura
1f34c72192 fix(frontends/lean/parser): fixes #770 2015-08-08 09:48:31 -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
6c5832a564 feat(frontends/lean/decl_cmds): allow recursive examples
closes #774
2015-08-08 08:26:25 -07:00
Leonardo de Moura
06f20694c8 fix(frontends/lean/builtin_exprs): fixes #768 2015-08-08 04:20:17 -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
Floris van Doorn
7f76d7e648 fix(tests): update test 2015-08-07 13:34:41 -07:00
Leonardo de Moura
5568085ab9 fix(frontends/lean/elaborator): closes #771
Produce nicer error message when type/goal is a metavariable and
universe metavariables have already been instantiated with universe
parameters.
2015-08-07 13:29:22 -07:00
Leonardo de Moura
6a079fdd2d fix(library/tactic/exact_tactic): fixes #779 2015-08-07 13:29:22 -07:00
Leonardo de Moura
f21647899f feat(frontends/lean/builtin_exprs): rename 'show' hidden name to 'this'
This is useful if 'show' is recursive
2015-08-07 13:29:21 -07:00