Commit graph

6297 commits

Author SHA1 Message Date
Leonardo de Moura
c95bd8ba61 feat(library/data/list): add erase_dup and theorems 2015-04-08 12:28:48 -07:00
Leonardo de Moura
05bd6b5fe7 feat(library/data/list): add foldr/foldl equality theorems for permutations 2015-04-08 10:36:05 -07:00
Leonardo de Moura
24f1454c0a fix(tests/lean/interactive/findp): adjust test output to reflect recent changes in the pretty printer 2015-04-08 09:49:22 -07:00
Jeremy Avigad
eb5089bf27 feat(library/data/set): add theory of functions and maps between sets 2015-04-08 09:46:34 -07:00
Jeremy Avigad
1f4ddd7a0f refactor(library/init/funext.lean): break out definition of equivalence, and hide auxiliary theorems 2015-04-08 09:46:34 -07:00
Jeremy Avigad
5812b35d93 feat(library/data/set/function.lean): begin theory of functions on sets 2015-04-08 09:46:34 -07:00
Leonardo de Moura
afc75f141c refactor(library/data/list/perm): prove auxiliary theorems using 'match-with' 2015-04-08 09:43:17 -07:00
Leonardo de Moura
56d20852aa refactor(library/data/list/perm): remove dead code 2015-04-08 09:32:28 -07:00
Leonardo de Moura
ef1b057b63 refactor(library/data/list/perm): cleanup theorem 2015-04-08 09:29:40 -07:00
Leonardo de Moura
e0e65705db feat(library/data/list/perm): add perm inversion theorems 2015-04-07 18:54:02 -07:00
Leonardo de Moura
c6a35e718d refactor(library/data/list/perm): use by_cases instead of dependent-if 2015-04-07 09:26:24 -07:00
Leonardo de Moura
9306830d8c feat(library/data/list): perm is decidable 2015-04-07 09:12:10 -07:00
Leonardo de Moura
1d87016f03 refactor(library): move some theorems to init 2015-04-07 07:46:11 -07:00
Leonardo de Moura
5d95cb0979 feat(library/tactic): add 'refine' tactic
closes #482
2015-04-06 18:36:56 -07:00
Leonardo de Moura
412f03b08b feat(library/tactic/exact_tactic): generate error if 'exact' tactic produces a term containing metavariables 2015-04-06 13:38:53 -07:00
Leonardo de Moura
2bc13f6bfd feat(library/tactic/exact): enforce goal type during elaboration when executing 'exact' tactic
Remark: this was the behavior of the 'sexact' tactic.

This commit also adds the 'rexact' (relaxed exact) tactic which does not
enforce the goal type.

closes #495
2015-04-06 13:23:38 -07:00
Leonardo de Moura
754276a660 feat(frontends/lean): round parenthesis for [tactic1 | tactic2]
This commit also replaces the notation for divides
     `(` a `|` b `)`
with
      a `∣` b

The character `∣` is entered by typing \|

closes #516
2015-04-06 09:24:09 -07:00
Leonardo de Moura
969d17fd12 fix(frontends/lean/elaborator): class inference in tactic mode with trunc
closes #477
2015-04-05 17:47:14 -07:00
Leonardo de Moura
3b959c9e6c refactor(library/data): move perm to list folder 2015-04-05 12:01:32 -07:00
Jeremy Avigad
c563548980 feat(library/data/set/basic.lean): add definitions and simplify proofs 2015-04-05 12:36:54 -04:00
Jeremy Avigad
e76e445ece feat(library/logic/connectives.lean): add calculation rules for true and false, and move exists unique to quantifiers 2015-04-05 12:15:21 -04:00
Jeremy Avigad
c6c50a61b3 refactor(library/data/set/basic.lean): take advantage of extensionality in sets 2015-04-05 10:12:27 -04:00
Jeremy Avigad
74ff43a543 refactor(library/init/{funext,quot}.lean): adjust comments and headers 2015-04-05 10:11:53 -04:00
Jeremy Avigad
6596217a84 refactor(library/data/set): expand set.lean to set directory 2015-04-05 09:27:15 -04:00
Leonardo de Moura
bebe8a4f17 fix(tests/lean/bad_coercions): expected output 2015-04-05 03:00:29 -07:00
Leonardo de Moura
d731a4ab13 feat(library/normalize): add '[unfold-f]' hint
closes #497
2015-04-05 03:00:13 -07:00
Leonardo de Moura
d591c63840 feat(frontends/lean/decl_cmds): allow local coercions in contexts
closes #525
2015-04-04 15:25:07 -07:00
Leonardo de Moura
8c59f17605 feat(frontends/lean): 'using' expression without 'show' or 'have'
closes #536
2015-04-04 15:25:07 -07:00
Soonho Kong
fa33f706f8 fix(bin/linja): indentation
close #515
2015-04-04 13:31:35 -04:00
Soonho Kong
8ca3ee4851 fix(bin/linja): decode the results from subprocess.Popen
http://stackoverflow.com/questions/606191/convert-bytes-to-a-python-string

fix #515
2015-04-04 13:30:10 -04:00
Leonardo de Moura
4ec0e1b07c feat(frontends/lean): improve calc mode
Now, it automatically supports transitivity of the form
    (R a b) -> (b = c) -> R a c
    (a = b) -> (R b c) -> R a c

closes #507
2015-04-04 08:58:35 -07:00
Leonardo de Moura
f1b7021ed0 feat(library/data/list/basic): add more theorems for disjoint predicate 2015-04-03 22:55:16 -07:00
Leonardo de Moura
23a1f5fa4b feat(library/data/list/basic): define nodup and disjoint 2015-04-03 15:44:07 -07:00
Leonardo de Moura
3b0f666646 feat(library/algebra/function): define injective 2015-04-03 15:43:44 -07:00
Leonardo de Moura
01f5dd9fa8 feat(library/data/list): add "erase" function lemmas 2015-04-03 13:18:48 -07:00
Leonardo de Moura
fc0ed5e46c feat(library/data/list/basic): define erase and prove basic theorems 2015-04-02 23:58:47 -07:00
Leonardo de Moura
1150b19598 perf(frontends/lean/elaborator): do not invoke recursive equation compiler when equations still contain metavariables 2015-04-02 23:37:33 -07:00
Leonardo de Moura
44ba0e10c0 feat(library/init/logic): add rewrite rules for decidable 2015-04-02 23:31:40 -07:00
Leonardo de Moura
9f3ba66295 feat(library/data/perm): add more theorems 2015-04-02 20:00:46 -07:00
Leonardo de Moura
e47c8c2d9e feat(library/data/list/basic): add quasiequality predicate l₁≈a|l₂, l₁ is equal to l₂ with 'a' inserted somewhere 2015-04-02 20:00:46 -07:00
Soonho Kong
1f20fb6e9e feat(emacs/lean-input): add not(¬) and iff(↔)
close leanprover/tutorial#81
2015-04-02 22:13:01 -04:00
Leonardo de Moura
5a394ac7ea feat(library/data/perm): add more theorems 2015-04-02 09:21:20 -07:00
Leonardo de Moura
92d6e93971 feat(library/data/perm): cleanup and add calculational proof support to perm 2015-04-02 08:50:05 -07:00
Leonardo de Moura
54136c1ec0 feat(library/data/perm): add list permutation module 2015-04-01 23:00:02 -07:00
Leonardo de Moura
dbe54c4fb5 feat(library/data): define unordered pairs using quotients 2015-04-01 17:30:49 -07:00
Leonardo de Moura
3951b50282 feat(library/data/prod): define swap 2015-04-01 17:30:37 -07:00
Leonardo de Moura
7b64a47221 refactor(library/init): add auxiliary function mk_equivalence 2015-04-01 17:30:20 -07:00
Leonardo de Moura
f8023403af test(tests/lean/run): add another simple test 2015-04-01 15:49:01 -07:00
Leonardo de Moura
bf142f3f18 fix(tests/lean): adjust tests to reflect changes in the standard library 2015-04-01 15:09:00 -07:00
Leonardo de Moura
0d66d19ba3 feat(tests/lean/run/finset): show that if A has decidable equality, then (finset A) also has it. 2015-04-01 13:19:16 -07:00