Commit graph

1037 commits

Author SHA1 Message Date
Leonardo de Moura
9ac5f28b03 refactor(library/logic/core/eq): cleanup 2014-09-09 19:15:11 -07:00
Leonardo de Moura
b4d765ff2e refactor(library/logic/core/cast): cleanup 2014-09-09 19:11:03 -07:00
Leonardo de Moura
9b9adf8831 refactor(library): replace decidable_eq with abbreviation 2014-09-09 16:09:05 -07:00
Leonardo de Moura
bd1bc336fb feat(library/coercion): add simple trick for defining coercions to function-class in a convenient way, closes #31 2014-09-09 14:36:36 -07:00
Leonardo de Moura
38a4852e7d feat(library/hott): add 'path' namespace 2014-09-09 14:03:45 -07:00
Leonardo de Moura
ff9a07500d feat(library/data/int/basic): create alias for int.int 2014-09-09 14:03:44 -07:00
Leonardo de Moura
5087f03889 refactor(library/logic/classes/decidable): rename 'decidable_eq_to_decidable' theorem to 'of_decidable_eq' 2014-09-09 09:27:26 -07:00
Leonardo de Moura
b4793df653 feat(frontends/lean): rename '[fact]' to '[visible]'
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-08 07:47:42 -07:00
Leonardo de Moura
35e68fea76 feat(library/logic/classes/decidable): generalize 'by_cases' theorem 2014-09-08 00:16:20 -07:00
Leonardo de Moura
fa25ddc8e6 chore(library/data/int/basic): remove unnecessary 'hinding' clause
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-07 22:50:43 -07:00
Leonardo de Moura
559dd586f2 feat(library): add 'decidable_eq' class
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-07 22:23:36 -07:00
Leonardo de Moura
c446327ec3 feat(library/data/list): add mem_is_decidable and not_mem_find theorems 2014-09-07 21:22:07 -07:00
Leonardo de Moura
f9b62c53e6 feat(library/data/nat): add nat.is_inhabited theorem 2014-09-07 19:59:34 -07:00
Leonardo de Moura
48e5a2b6ad feat(library/classes/inhabited): add dfun_inhabited theorem 2014-09-07 19:08:31 -07:00
Leonardo de Moura
4e2f5572f3 feat(library/data/vector): add vec.is_inhabited theorem 2014-09-07 19:08:31 -07:00
Leonardo de Moura
fea516af24 feat(frontends/lean/elaborator): allow Pi/forall local instances 2014-09-07 18:16:33 -07:00
Leonardo de Moura
c378a58cc2 feat(frontends/lean): add [class] modifier for inductive datatypes as a shortcut for 'class' command. 2014-09-07 18:16:33 -07:00
Leonardo de Moura
bbff564a1c feat(frontends/lean): persistent notation in sections
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-06 11:14:20 -07:00
Floris van Doorn
02d72e4c40 feat(library/data/category): add vector
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-05 09:57:04 -07:00
Floris van Doorn
e9fc4f14a0 feat(library/data/category): add category theory
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-05 09:56:57 -07:00
Floris van Doorn
d2a4bb8a27 feat(library/data/empty): add false.to_empty and false.rec_type theorems
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-05 09:31:27 -07:00
Leonardo de Moura
561753e7f1 refactor(library/data/sigma): cleanup module 2014-09-05 08:01:24 -07:00
Leonardo de Moura
28f025c6d7 refactor(library/logic/core): use subscripts
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-04 22:43:30 -07:00
Leonardo de Moura
9412e604c8 refactor(library/data): cleanup datatypes
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-04 22:31:52 -07:00
Leonardo de Moura
6632a50015 refactor(library): add namespaces 'or', 'and' and 'iff'
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-04 21:25:21 -07:00
Leonardo de Moura
68d9bef860 refactor(library): add 'eq' and 'ne' namespaces
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-04 18:41:06 -07:00
Leonardo de Moura
2bc6f92d33 refactor(library): add 'and' namespace
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-04 17:44:53 -07:00
Leonardo de Moura
364bba2129 feat(frontends/lean/inductive_cmd): prefix introduction rules with the name of the inductive datatype
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-04 17:26:36 -07:00
Leonardo de Moura
8743394627 refactor(kernel/inductive): replace recursor name, use '.rec' instead of '_rec'
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-04 15:04:57 -07:00
Leonardo de Moura
7500761114 refactor(library/data/nat/basic): remove unnecessary nat_
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-03 16:14:29 -07:00
Leonardo de Moura
e51c4ad2e9 feat(frontends/lean): rename 'using' command to 'open'
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-03 16:00:38 -07:00
Leonardo de Moura
f891485a26 refactor(library): use '[protected]' modifier
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-03 15:13:03 -07:00
Leonardo de Moura
6077b3158c fix(library): remove unnecessary [fact] modifier
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-02 16:06:55 -07:00
Leonardo de Moura
8dec18018c refactor(library/data/list): avoid placeholders '_', make first argument of false_elim implicit
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-01 19:44:04 -07:00
Leonardo de Moura
aace5c37cd refactor(library/data/subtype): elaborator does not need help anymore (i.e., 'show'-expression) for this file
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-01 19:04:15 -07:00
Jeremy Avigad
39825d2dc9 fix(library): rename congr class to congruence 2014-08-29 22:28:22 -07:00
Jeremy Avigad
6ffd719c1a refactor(library/logic): move identities from classical to identities 2014-08-29 22:28:22 -07:00
Soonho Kong
fcb6c71517 chore(library): add .project file 2014-08-29 10:31:16 -07:00
Soonho Kong
226f301044 chore(library/.gitignore): update 2014-08-29 10:31:16 -07:00
Leonardo de Moura
b43313ec43 fix(library/nat/div): remove unnecessary '_''s
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-28 17:40:57 -07:00
Jeremy Avigad
8094884c85 feat(library/data/nat/div.lean): remove dependence on funext 2014-08-28 17:37:32 -07:00
Jeremy Avigad
1864fc2f6c refactor(library): move more notation to general_notation 2014-08-28 17:37:32 -07:00
Leonardo de Moura
b51fa2b547 chore(library): minor cleanup
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-28 13:04:17 -07:00
Leonardo de Moura
d536475e49 refactor(library): more implicit_args for: and_assoc, and_comm, or_assoc, or_comm, if_pos, if_neg
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-28 11:10:04 -07:00
Leonardo de Moura
6b7e79b62f feat(library/data/nat): mark more arguments implicit
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-28 10:38:58 -07:00
Jeremy Avigad
00a049a667 refactor(library/logic): rename connectives -> core, basic -> connectives 2014-08-27 18:43:24 -07:00
Leonardo de Moura
2d78387541 refactor(library/logic/basic): rename absurd_elim to absurd, delete contrapos and trivial_not_true theorems
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-27 18:34:09 -07:00
Jeremy Avigad
1011a8022c refactor(library/logic/connectives): make dependence prop <- eq <- basic 2014-08-27 20:46:07 -04:00
Leonardo de Moura
e7fd8f54c4 fix(library/Makefile): ignore flycheck generated files in the Makefile, fixes #101
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-27 08:36:32 -07:00
Leonardo de Moura
a8d58fdd33 refactor(library): mark absurd_elim argument as implicit
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-26 18:27:39 -07:00
Leonardo de Moura
9bea23111f feat(library/logic/connectives/basic): add not_not_em theorem
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-26 18:07:09 -07:00
Leonardo de Moura
0099a7b224 refactor(library/logic/connectives/eq): simplify eq_rec_on_id proof
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-26 18:07:09 -07:00
Leonardo de Moura
44c597724b fix(frontends/lean): fail if theorem type has metavariables after type elaboration (and before proof elaboration)
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-26 09:01:17 -07:00
Leonardo de Moura
99438f0ee0 chore(library): add 'universe polymorphism' to list of extra feat
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-25 23:00:50 -07:00
Jeremy Avigad
5eedca08ea refactor(library): set up and document standard/classical/hott imports 2014-08-25 22:57:55 -07:00
Jeremy Avigad
413517b86d fix(library): correct markdown directories, revise defaults for logic and data 2014-08-25 22:57:55 -07:00
Leonardo de Moura
9715d06f4a feat(library): minor cleanup, replace 'refl _' with 'rfl', define equivalence relation for sets
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-25 22:54:44 -07:00
Leonardo de Moura
3903be34a4 feat(frontends/lean): process theorem statement independently of proof, thus we have the same behavior in sequential and parallel compilation modes, closes #84
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-25 21:26:17 -07:00
Leonardo de Moura
7cb2ca62f4 refactor(Makefile): do not use full path on makefile rules
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-23 18:28:34 -07:00
Leonardo de Moura
06da0ebaaf refactor(library): rename Makefile.common to Makefile
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-23 18:10:39 -07:00
Leonardo de Moura
dbaf81e16d refactor(library): remove unnecessary 'standard' subdirectory
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-23 18:08:09 -07:00
Jeremy Avigad
505b93b7cb refactor(lean/examples/constable.lean): move to library/standard/logic/examples/nuprl_examples.lean 2014-08-23 17:55:00 -07:00
Jeremy Avigad
d0f0e58a85 refactor(library/standard/data/int): split basic.lean into basic.lean and order.lean 2014-08-23 17:53:02 -07:00
Jeremy Avigad
47a1c00a6d refactor(library/standard): collect notation in general_notation 2014-08-23 17:53:02 -07:00
Jeremy Avigad
ad969b4695 feat(library/standard/logic): add identities 2014-08-23 17:53:02 -07:00
Leonardo de Moura
df60ab4ada fix(frontends/lean/calc): allow calc_subst to be defined for multiple operators, allow calc cmds to be organized into namespaces, fixes #65
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-23 16:45:04 -07:00
Leonardo de Moura
e602c4ba49 feat(frontends/lean): change multicomment to /- ... -/
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-22 17:55:13 -07:00
Leonardo de Moura
a5f0593df1 feat(*): change inductive datatype syntax
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-22 15:46:10 -07:00
Leonardo de Moura
fdd37fb1f3 chore(library/standard/data/sum): remove hints, they are not needed after the fix
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-21 21:44:02 -07:00
Jeremy Avigad
1fdc483ab9 fix(library/standard/data/int): remove misnamed file 2014-08-21 21:41:28 -07:00
Jeremy Avigad
02fba6e949 feat(library/standard/hott/fibrant.lean): add fibrant to library 2014-08-21 21:41:28 -07:00
Jeremy Avigad
05d0089381 feat(library/standard/sum.lean): add properties of sum 2014-08-21 21:41:28 -07:00
Jeremy Avigad
3afad10a72 feat(library/standard): add decidability of le for int 2014-08-21 21:41:28 -07:00
Leonardo de Moura
c4cc837e34 refactor(library/standard): define abbreviations using '@'
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-21 18:39:38 -07:00
Leonardo de Moura
07bc0727e2 feat(frontends/lean): 'let [inline]' is the default
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-21 18:24:22 -07:00
Leonardo de Moura
0df87bae24 chore(library/standard/data/nat/div): remove TODO
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-21 17:58:03 -07:00
Leonardo de Moura
ab404beb01 chore(library/standard/data/nat/order): remove unnecessary 'proofs'
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-20 21:51:41 -07:00
Leonardo de Moura
38f46b1290 feat(library/standard/data/nat/order): add le_decidable, lt_decidable, ge_decidable, gt_decidable
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-20 21:47:37 -07:00
Leonardo de Moura
129bb5fa09 chore(library/standard/data/int/basic): remove TODO's that were addressed by recent improvements
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-20 19:04:48 -07:00
Jeremy Avigad
d78c26977b feat(library/standard/data/nat/div): port div 2014-08-20 18:04:31 -07:00
Jeremy Avigad
6264fb52d6 fix(lean/library/standard): fix tests, more cleanup 2014-08-20 18:04:31 -07:00
Jeremy Avigad
148d475421 feat(library/standard): port int, and reorganize a lot 2014-08-20 18:03:24 -07:00
Jeremy Avigad
ad26c7c93c feat(library/standard/data/quotient): import quotient from lean 0.1 2014-08-20 18:03:24 -07:00
Leonardo de Moura
be5d034b6e chore(library/standard): remove workarounds
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-20 16:46:19 -07:00
Leonardo de Moura
9588336c15 refactor(kernel/type_checker): remove "global" constraint buffer from type_checker, and use constraint_seq instead
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-20 16:46:19 -07:00
Soonho Kong
76d310da8b chore(library/.gitignore): add TAGS 2014-08-15 20:55:38 -07:00
Soonho Kong
009e9fb3e6 feat(library/Makefile.common): add tags target 2014-08-15 20:52:29 -07:00
Leonardo de Moura
670bfe24f5 chore(build): remove hott library directory, and move hott tests
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-15 13:30:56 -07:00
Jeremy Avigad
5b7fb1f61a feat(library/standard/classes): add nonempty 2014-08-15 13:06:27 -07:00
Jeremy Avigad
39c1683546 feat(library/standard/logic): add class nonempty 2014-08-15 12:58:58 -07:00
Jeremy Avigad
2d69303344 feat(library/standard): add sigma types and subtypes, make inhabited constructive 2014-08-15 12:58:58 -07:00
Jeremy Avigad
a1645c5ce5 feat(library/standard/hott/path.lean): add theorems and clean up file 2014-08-15 12:58:58 -07:00
Jeremy Avigad
7d7655c3f1 refactor(library/standard): integrate hott with standard library 2014-08-15 12:58:58 -07:00
Jeremy Avigad
218c9dfc81 feat(library/hott): begin porting Coq HoTT 2014-08-15 12:58:58 -07:00
Jeremy Avigad
0ea2d287e1 feat(library/standard): add classes for relations 2014-08-15 12:58:58 -07:00
Soonho Kong
caa47b9a70 fix(library): add LEAN_VERSION_FILE to Makefile.common 2014-08-14 18:21:58 -07:00
Leonardo de Moura
2225a2acc5 feat(library/Makefile.common): generate .ilean files
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-14 18:05:48 -07:00
Leonardo de Moura
e1c97d1fc4 fix(library): remove LEAN_VERSION_FILE from Makefile.common, it breaks the build on Linux
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-14 18:05:48 -07:00
Soonho Kong
6f2c14be23 feat(library/Makefile.common): add dependency on bin/version
This is related with issue #43.

[skip ci]
2014-08-14 15:46:13 -07:00
Soonho Kong
87632622ee chore(library): add .gitignore
[skip ci]
2014-08-14 15:31:57 -07:00
Leonardo de Moura
60ab6d3bd8 feat(frontends/lean): remove feature that in declarations such as (A B : Type), forced A and B to be in the same universe
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-12 17:40:30 -07:00
Leonardo de Moura
f319d084d4 feat(library/Makefile.common): use new --cache/-c option at Makefile.common
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-10 11:20:08 -07:00
Leonardo de Moura
f6ba6da4b5 fix(library/standard): add missing 'end' of namespace
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-07 17:52:51 -07:00
Leonardo de Moura
1a67e69678 feat(library/scoped_ext): force user to end a scope with an identifier matching the one used in beginning of scope, closes #30
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-07 16:59:08 -07:00
Soonho Kong
e0bc5915fb fix(library/standard): remove long comments introduced by b2c2d1d 2014-08-07 11:59:59 -07:00
Soonho Kong
8d4c7b4b2c fix(library/hott/Makefile): specify LEAN_OPTIONS "--hott" 2014-08-07 09:59:15 -07:00
Leonardo de Moura
59f6cb5962 fix(build): delete incorrect/old .d and .olean files, detect errors when generating .d files.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-04 13:58:48 -07:00
Leonardo de Moura
d5bb7d45ec fix(library/unifier): constraint priority in the unifier, and remove hack from if.lean
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-04 13:58:47 -07:00
Leonardo de Moura
47d49643b0 feat(library/standard/logic/connectives/if): add more general if_congr theorem
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-04 13:58:47 -07:00
Soonho Kong
d8ae285f93 fix(library/Makefile.common): clean remove olean/d files recursively
[skip ci]
2014-08-04 11:47:24 -07:00
Leonardo de Moura
94efd51fc5 chore(library/standard/logic/connectives/if): cleanup
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-03 23:11:52 -07:00
Leonardo de Moura
c3f57cdb1c feat(library/standard/logic/classes): add 'by_contradiction' theorem for decidable propositions
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-03 22:58:12 -07:00
Leonardo de Moura
ae2e0fd3dc feat(library/standard/logic/connectives/if): add 'if-then-else' congruence theorem
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-03 21:41:01 -07:00
Leonardo de Moura
f3cb5f2f84 feat(library/standard/logic/connectives/quantifiers): add some theorems for simplifier
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-03 20:03:49 -07:00
Leonardo de Moura
aeebd942f2 refactor(library/standard): use relative paths in some files in the standard library
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-02 20:04:27 -07:00
Leonardo de Moura
4b030c5d5f feat(library/module): relative module path
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-02 19:47:55 -07:00
Leonardo de Moura
700c911cf7 chore(library/standard/logic/class/decidable): add missing 'end'
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-02 17:00:01 -07:00
Leonardo de Moura
148836d14b feat(library/standard/data/option): add basic theorems for option types
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-02 16:59:01 -07:00
Jeremy Avigad
b832b2e33e refactor(library/standard/data/nat): stylistic changes 2014-08-01 21:22:54 -07:00
Jeremy Avigad
b5db9a4797 feat(library/standard/data/nat): port most recent nat to lean 0.2 2014-08-01 21:22:53 -07:00
Jeremy Avigad
4b05e70762 feat(library/standard/logic/axioms): add import default 2014-08-01 21:22:53 -07:00
Jeremy Avigad
77931f2af8 feat(library/standard): add markdown documentation 2014-08-01 21:22:53 -07:00
Soonho Kong
3cb9b4c265 fix(library/Makefile.common): make OSX-compatible 2014-08-01 10:21:40 -07:00
Leonardo de Moura
d27c85e30c fix(library/Makefile.common): avoid error message when .d files do not exist
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-01 10:11:01 -07:00
Leonardo de Moura
f75beb8087 fix(library/standard/data/list/basic): remove 'sorry'
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-01 09:15:30 -07:00
Jeremy Avigad
b2c2d1dd44 refactor(library/standard): organize files into a hierarchy 2014-08-01 09:11:51 -07:00
Jeremy Avigad
fbaf8b7e77 refactor(library/standard): begin reorganization into hierarchy 2014-08-01 09:11:51 -07:00
Jeremy Avigad
df84c4c2ca refactor(library/standard): clean up logic, reorder arguments to elim rules 2014-08-01 09:11:51 -07:00
Jeremy Avigad
c89c96b913 feat(library/standard/list.lean): add facts about lists 2014-08-01 09:11:51 -07:00
Jeremy Avigad
e846c8c76b index on master: 9dc1baa feat(library/standard/congruence.lean): finish congruence classes for propositional logic 2014-08-01 09:11:51 -07:00
Jeremy Avigad
5847743573 feat(library/standard/congruence.lean): finish congruence classes for propositional logic 2014-08-01 09:11:51 -07:00
Jeremy Avigad
8ea5dad4c0 feat(library/standard/congruence.lean): add class to infer that a function is a congruence with respect to two relations 2014-08-01 09:11:51 -07:00
Jeremy Avigad
09d5d074ec feat(library/standard/list.lean): begin to port lists from lean 0.1 2014-08-01 09:11:51 -07:00
Leonardo de Moura
b279c94037 feat(build): cread .d (dependency) files for .lean files
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-01 09:08:16 -07:00
Leonardo de Moura
105c29b51e refactor(library/standard): use new coding style, rename bool.b0 and bool.b1 to bool.ff and bool.tt
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-28 19:59:38 -07:00
Leonardo de Moura
8ad6d7a98b doc(doc/lean): update Lean tutorial to Lean 0.2, and use org-mode
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-28 10:52:09 -07:00
Leonardo de Moura
864fdd37da refactor(library/aliases): aliases are from name to names
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-27 21:01:59 -07:00
Leonardo de Moura
5555d620cf feat(library/standard): add or_inl and or_inr as short-hands for the commonly used 'or_intro_left _' and 'or_intro_right _'
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-27 17:25:57 -07:00
Leonardo de Moura
99a1966fd6 refactor(library/standard/set): use the same style for mem_inter and mem_union
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-27 13:32:59 -07:00
Leonardo de Moura
88130f339e feat(library/standard): add basic set theory that does not rely on classical axioms
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-27 13:18:33 -07:00
Leonardo de Moura
3a77226b92 feat(library/standard/bool): add bor_to_or theorem
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-27 13:17:55 -07:00
Leonardo de Moura
25f7929ea3 feat(library/standard/bool): add band_assoc and bor_assoc theorems
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-27 12:50:57 -07:00
Leonardo de Moura
d9ee994281 feat(library/hott): copy basic files to hott library
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-26 19:13:04 -07:00
Leonardo de Moura
abe1dbd7e0 refactor(library/standard): cleanup notation
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-25 11:36:28 -07:00
Leonardo de Moura
a450ad5a95 feat(frontends/lean/inductive_cmd): improve notation for declaring 'empty' inductive datatypes
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-25 11:24:01 -07:00
Leonardo de Moura
a5b9a7b296 fix(frontends/lean/decl_cmds): support for section declarations with implicit parameters, they must be tagged with '@' when creating aliases
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-25 11:10:45 -07:00
Leonardo de Moura
62483b793f feat(library/standard): add notation for symm, trans and subst
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-24 22:49:12 -07:00
Leonardo de Moura
ebf34f2fe9 refactor(library/standard): mark 'not' as transparent
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-24 22:14:15 -07:00
Leonardo de Moura
d84a4bea5f chore(library/standard): port (an older version of) Floris's nat library to Lean 0.2
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-24 20:31:28 -07:00
Leonardo de Moura
fd0deb4555 feat(library/standard): add basic properties of binary functions
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-24 17:48:30 -07:00
Leonardo de Moura
bfdf187ce7 refactor(library/standard): rename rec to rec_on
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-24 17:01:51 -07:00
Leonardo de Moura
5529ef1056 feat(library/standard): add function 'helper' module
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-24 16:29:39 -07:00
Leonardo de Moura
5296275c41 feat(library/standard/logic): add imp_or theorems
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-24 12:29:23 -07:00
Leonardo de Moura
08174f904b feat(library/standard/logic): mark 'not equal' as an abbreviation
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-24 12:01:09 -07:00
Leonardo de Moura
8adf6e25ef refactor(library/standard/unit): make unit type similar to the one in the hott library
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-22 09:56:05 -07:00
Leonardo de Moura
c5cbe1cc2c refactor(library/standard): rename bool_decidable to prop_decidable
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-22 09:53:05 -07:00
Leonardo de Moura
b522ea6f2d refactor(library/standard): rename bit to bool
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-22 09:49:54 -07:00
Leonardo de Moura
5eaf04518b refactor(*): rename Bool to Prop
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-22 09:43:18 -07:00
Leonardo de Moura
b7838f5db7 feat(library/standard/cast): add dcongr2 theorem
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-22 05:58:58 -07:00
Leonardo de Moura
1e595e8027 feat(library/standard/decidable): decidable is proof irrelevant
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-22 03:54:28 -07:00
Leonardo de Moura
c0f862d88a feat(library/standard): add Diaconescu's theorem
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-20 21:15:48 -07:00
Leonardo de Moura
13804f75f9 feat(library/standard/logic): iff is refl, trans, and symm
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-20 21:10:30 -07:00
Leonardo de Moura
29b6d1081c feat(library/standard/bool_decidable): cleanup bool_decidable, and remove the artificial dependency to bit
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-21 02:42:11 +01:00
Leonardo de Moura
293ed333c7 feat(library/standard/if): cleanup 'if-then-else' theorems
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-21 02:40:43 +01:00
Leonardo de Moura
5e8c128b00 feat(library/standard): add more decidable instances
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-20 01:10:49 +01:00
Leonardo de Moura
c37b5afe93 feat(library/standard): add decidable class
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-20 00:19:32 +01:00
Leonardo de Moura
4a0e701f6d feat(library/standard/bit): add theorems and notation
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-20 00:19:32 +01:00
Leonardo de Moura
8b70ffb0a4 feat(library/standard): add equivalence inductive predicate
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-20 00:19:31 +01:00
Leonardo de Moura
e817260c6d feat(library/standard): add or_comm, and_comm, ... theorems, cleanup notation
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-19 09:29:04 +01:00
Leonardo de Moura
ae2ce356b4 feat(library/hott): use new 'parameters' command
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-17 20:49:53 +01:00
Leonardo de Moura
58da037410 feat(library/hott): add more definitions and theorems from the HoTT book
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-17 20:24:00 +01:00
Leonardo de Moura
dfe48e6abe feat(library/hott): add more hott definitions
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-15 22:42:38 +01:00
Leonardo de Moura
f7317a7139 feat(build): compile HoTT library when building
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-15 21:56:36 +01:00
Leonardo de Moura
359bfe93d5 feat(library/hott): add basic HoTT definitions and theorems
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-15 21:46:33 +01:00
Leonardo de Moura
f942c6f64c feat(library/standard/classical): add Peirce's law
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-13 03:05:34 +01:00
Leonardo de Moura
e3f364e1ee feat(library/standard): add well-founded induction theorem
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-13 02:48:40 +01:00
Leonardo de Moura
638bdd5e12 feat(library/standard): add forall and exists theorems
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-13 02:48:00 +01:00
Leonardo de Moura
9cb238534d feat(library/standard): add hilbert's choice operator
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-13 01:39:35 +01:00
Leonardo de Moura
ea2fffc260 feat(library/standard): add inhabited_exists theorem
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-13 00:24:58 +01:00
Leonardo de Moura
0bd943574e fix(library/standard): make sure file can be compiled when processing theorems in parallel
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-12 23:55:50 +01:00
Leonardo de Moura
ae2f019c23 refactor(library/standard): reorganize cast and piext theorems
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-12 20:24:36 +01:00
Leonardo de Moura
bd82f5e81c chore(library/standard/piext): cleanup hcongr proof
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-12 19:08:53 +01:00
Leonardo de Moura
319b1fb8d1 feat(library/standard): add piext axiom, and theorems that follow from it
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-12 09:44:46 +01:00
Leonardo de Moura
cd806bfabb refactor(library/standard): move cast and heq to separate file
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-12 07:08:12 +01:00
Leonardo de Moura
1d273fcfdd chore(frontends/lean): rename 'obtains' to 'obtain'
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-12 06:35:24 +01:00
Leonardo de Moura
24540056c5 feat(library/standard): add basic heq theorems
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-12 06:21:00 +01:00
Leonardo de Moura
cf34f75ab5 feat(frontends/lean): add 'obtains' expression
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-11 04:08:51 +01:00
Leonardo de Moura
a3be63af73 feat(frontends/lean): add tactic_hint command
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-08 15:08:13 -07:00
Leonardo de Moura
08465f049a feat(frontends/lean): remove [class] annotation and 'class' command, they are redundant, we only need [instance] and 'instance'
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-07 16:09:30 -07:00
Leonardo de Moura
c16951aba6 fix(library/aliases): aliasing behavior
The new test '../../tests/lean/run/alias3.lean' demonstrates the issue being fixed.

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-07 15:40:55 -07:00
Leonardo de Moura
d30f387e72 feat(library/standard): add namespace 'pair'
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-07 14:48:19 -07:00
Leonardo de Moura
59755289e4 feat(library/unifier): case split on constraints of the form (f ...) =?= (f ...), where f can be unfolded, and there are metavariables in the arguments
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-05 15:52:40 -07:00
Leonardo de Moura
a52c9f4e2b feat(library/unifier): add option 'unifier.unfold_opaque', remove option 'unifier.use_exceptions' (the user should not be able to change this)
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-05 09:43:16 -07:00
Leonardo de Moura
efabd2280c feat(library/unifier): allow unifier to unfold opaque definitions of the current module
It is not clear whether this is a good idea or not. In some cases, it seems to do more harm than good.

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-05 00:46:03 -07:00
Leonardo de Moura
9e1d425a45 feat(library/standard): add 'classical' module
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-04 22:50:30 -07:00
Leonardo de Moura
00e1a7db23 feat(frontends/lean/elaborator): add class instance elaboration
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-04 15:45:50 -07:00
Leonardo de Moura
079672f6f9 feat(frontends/lean): add 'class' and 'instances' infrastructure
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-04 14:28:09 -07:00
Leonardo de Moura
a97f82be1a fix(library/standard): orelse notation, avoid conflict with inductive datatype declaration
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-04 10:10:05 -07:00
Leonardo de Moura
e0501104e2 feat(library/tactic): add 'fixpoint' tactic
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-04 01:30:28 -07:00
Leonardo de Moura
ce282a549a feat(frontends/lean): add 'prefix' notation declaration command
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-03 21:37:56 -07:00
Leonardo de Moura
6d773a2ba4 fix(library/standard): not notation
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-03 21:29:15 -07:00
Leonardo de Moura
855ffcba34 feat(library/standard): add pairs
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-03 20:43:16 -07:00
Leonardo de Moura
9ec4f23522 fix(library/standard): congr1 and congr2 theorem definition, we should allow A and B to inhabit different universes
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-03 16:25:14 -07:00
Leonardo de Moura
7d27368708 refactor(library/standard): use inductive datatype to define inhabited
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-03 15:05:19 -07:00
Leonardo de Moura
abbd054b51 feat(library/tactic): add eassumption tactic, and remove redundant 'subgoals' from apply tactic
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-03 13:04:46 -07:00
Leonardo de Moura
528d51bc57 feat(library/standard): add congr theorem
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-03 09:44:36 -07:00
Leonardo de Moura
0ff145e59b feat(library/tactic): add apply tactic
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-03 09:20:01 -07:00
Leonardo de Moura
6b8b5f3dd8 feat(library/tactic): expose more builtin tactics, cleanup expr_to_tactic procedure
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-03 08:06:28 -07:00
Leonardo de Moura
60c637fb9d feat(library/tactic): add 'exact' tactic
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-02 18:37:32 -07:00
Leonardo de Moura
37b5b7c4c2 feat(library/tactic): rename 'exact' to 'assumption', 'exact' is a different tactic
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-02 18:10:42 -07:00
Leonardo de Moura
0f27856e4a feat(library/tactic): new apply tactic
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-02 13:14:50 -07:00
Leonardo de Moura
6ab46396d8 feat(library/tactic): expose 'trace' tactic
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-02 10:52:45 -07:00
Leonardo de Moura
e1d909455c refactor(library/tactic): add namespace 'tactic', improve expr_to_tactic failure error message
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-02 10:45:09 -07:00
Leonardo de Moura
9f9f93645b feat(library/standard): add bit, char, and string types
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-02 08:36:05 -07:00
Leonardo de Moura
0198dfc7c5 feat(frontends/lean): parse numerals as expressions of type 'num.num'
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-02 08:09:33 -07:00
Leonardo de Moura
7593ee1468 refactor(library/standard): remove parameter from 'tactic' inductive type
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-02 08:09:24 -07:00
Leonardo de Moura
b2b76b078f feat(frontends/lean): remove build_tactic_cmds, and use expressions for representing tactics
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-01 20:43:53 -07:00
Leonardo de Moura
cbac21ec7f feat(library/tactic): add trick for 'embedding' tactics inside Lean expressions
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-01 19:05:22 -07:00
Leonardo de Moura
5b69f88664 feat(frontends/lean/notation_cmd): make the notation for setting precedence uniform
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-01 16:55:41 -07:00
Leonardo de Moura
d4b29cd132 feat(library/standard/logic): add exists unique
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-30 18:22:28 -07:00
Leonardo de Moura
eff59211ce feat(library/standard): add more basic theorems
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-30 18:01:31 -07:00
Leonardo de Moura
af230e73c6 feat(library/standard): define heq, and configure 'calc' for '='
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-30 14:35:57 -07:00
Leonardo de Moura
e3f9b21c30 fix(kernel/inductive): bug in inductive datatype computational rule, we *must* first instantiate universe variables, *and then* the arguments
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-30 14:15:16 -07:00
Leonardo de Moura
6e6f778ecf fix(kernel/converter): missing case for local constants
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-30 12:57:25 -07:00
Leonardo de Moura
2ea1e68f25 feat(library/standard): add equal_f theorem
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-30 12:00:47 -07:00
Leonardo de Moura
c5828dcf6c feat(library/standard): add function extensionality axiom
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-30 11:53:04 -07:00
Leonardo de Moura
15e4b18d62 chore(library/standard): add copyright to library files
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-30 11:44:47 -07:00
Leonardo de Moura
3650ffdd4f feat(library/standard): add iff_mp_right and iff_mp_left
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-30 00:29:42 -07:00
Leonardo de Moura
6b538c5fc8 feat(library/standard): add 'iff' and 'cast'
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-29 22:56:56 -07:00
Leonardo de Moura
e1d807a077 feat(library/standard): add inhabited, and files option and unit
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-29 19:30:38 -07:00
Leonardo de Moura
5a7e198583 feat(build): add Makefile for libraries
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-28 18:41:53 -07:00
Leonardo de Moura
193ce35419 refactor(frontends/lean/inductive_cmd): redesign inductive datatype elaboration, use the new elaborator, and use simpler algorithm to infer the resulting universe
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-28 15:33:56 -07:00
Leonardo de Moura
0adacb5191 feat(kernel): add infer implicit, and use it to infer implicit arguments of inductive datatype eliminators, and tag whether parameters should be implicit or not in introduction rules in the module inductive_cmd
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-28 13:57:36 -07:00
Leonardo de Moura
0e015974ca fix(library/unifier): bug in process_flex_rigid, also cleanup the code and break it into different cases
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-28 11:19:56 -07:00
Leonardo de Moura
47ff300d1a fix(frontends/lean): '@' explicit mark
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-28 07:30:36 -07:00
Leonardo de Moura
1019cd60ef feat(library/logic): add basic definitions
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-28 00:29:42 -07:00
Leonardo de Moura
79d32b768d feat(shell): add '--hott' command line option
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-16 15:50:27 -07:00