Commit graph

191 commits

Author SHA1 Message Date
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
Leonardo de Moura
27b4eb2058 fix(library/data): hf, int, nat, pnat 2015-11-08 14:04:54 -08:00
Leonardo de Moura
3369152559 fix(library/data,library/theories): fin, bag, finset, hf, list, ... 2015-11-08 14:04:54 -08:00
Leonardo de Moura
a618bd7d6c refactor(library): use type classes for encoding all arithmetic operations
Before this commit we were using overloading for concrete structures and
type classes for abstract ones.

This is the first of series of commits that implement this modification
2015-11-08 14:04:54 -08:00
Leonardo de Moura
e4f0f6a9b4 feat(library): numeral normalization skeleton 2015-10-08 12:49:12 -07:00
Floris van Doorn
115dedbd1c fix(hott): notation spacing and markdown files 2015-10-02 16:26:10 -07:00
Leonardo de Moura
ede23a3267 feat(hott,library): add additional spacing hints 2015-09-30 17:41:44 -07:00
Sebastian Ullrich
d1b5031dbd feat(library): add some spacing hints 2015-09-30 17:36:32 -07:00
Floris van Doorn
3c4c722afd feat(hott): port more from chapters 4 and 6 of the book 2015-09-28 09:09:21 -07:00
Leonardo de Moura
33f46fd137 feat(library/blast): parse blast tactic and invoke stub 2015-09-25 12:45:16 -07:00
Jeremy Avigad
135f5ff96b feat(library/init/quot.lean): declare calc subst rule for iff 2015-09-25 09:32:28 -07:00
Jeremy Avigad
840ef98829 refactor(library/init/nat): make \nat notation available at top level 2015-09-01 14:47:19 -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
Jeremy Avigad
209d7b07aa feat(library/data/set/basic): add a few theorems 2015-08-09 22:13:18 -04:00
Leonardo de Moura
276771e6ca feat(library/data/list/sort): add sort for lists
TODO: prove the result is sorted, prove that l1 ~ l2 -> sort R l1 = sort R l2
2015-08-09 14:23:09 -07: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
Floris van Doorn
e51ba09a27 feat(hott): add types.sum, greatly expand types.prod, minor changes in types.sigma and types.pi 2015-08-07 13:34:41 -07:00
Floris van Doorn
11b1f416f6 feat(nat): add unfold attributes to add, mul, sub and of_num in namespace nat_esimp in both libraries 2015-08-04 13:23:20 +02:00
Leonardo de Moura
88c659c54e feaf(library): make sure basic standard library can be compiled with option "--to_axiom"
We use this option to erase proofs when generating the javascript
version. The proofs are erased to minimize the size of the file that
must be downloaded by users
2015-07-29 16:11:23 -07:00
Leonardo de Moura
82836fe9e0 feat(library/init/logic): make sure standard library can be compiled when proofs are erased 2015-07-29 15:00:50 -07:00
Leonardo de Moura
308af87b69 feat(library): add 'noncomputable' keyword for the standard library 2015-07-28 21:56:35 -07:00
Mario Carneiro
066b0fcdf9 feat(library): clean up "sorry"s in library
Breaking changes: pnat was redefined to use subtype instead of a custom inductive type, which affects the notation for pnat 2 and 3
2015-07-24 12:21:33 -04:00
Leonardo de Moura
18dd7c13f9 feat(frontends/lean): add '[congr]' attribute 2015-07-22 17:21:47 -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
8ad6312764 feat(library/hlist): add helper eq.rec lemmas 2015-07-20 14:56:50 -07:00
Leonardo de Moura
d91627ebec refactor(library): move 'max/min' to 'data/nat' 2015-07-19 19:47:14 -07:00
Leonardo de Moura
ade60278d0 refactor(library): rename iff.mp' to iff.mpr 2015-07-18 08:52:58 -05:00
Leonardo de Moura
89f69630b6 feat(library): use sigma instead of exists (experimental) 2015-07-15 15:49:47 -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
267545ca0c feat(frontends/lean): parse 'with_options' tactical
see issue #492
2015-07-13 19:13:41 -04:00
Leonardo de Moura
6ab5cf214c feat(library,hott): add simp tactic reference 2015-07-13 18:01:40 -04:00
Leonardo de Moura
ebe6ec0017 feat(library): add '[rewrite]' annotation some some theorems 2015-07-13 16:39:53 -04: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
9f7c4aac69 feat(library): add helper lemmas for equivalent types 2015-07-06 12:17:57 -07:00
Leonardo de Moura
77d5657813 refactor(library/algebra/function): move function.lean to init folder
Motivation: this file defines basic things such as function composition.
In the HoTT library, it is located in the init folder.
2015-07-06 07:29:56 -07:00
Jeremy Avigad
70e551c6d6 feat(library/algebra/order,library/data/nat/order,library/*): instantiate nat to lattice, add theorems 2015-06-29 15:23:11 +10:00
Floris van Doorn
124c9d3d8a feat(hott): various cleanup and fixes, rename \~ to ~, expand types.pointed 2015-06-25 22:31:40 -04:00
Floris van Doorn
0b9c8e14a4 fix(*/init/nat): fix occurrences where both theorem and [unfold-c] were used 2015-06-25 22:31:40 -04:00
Leonardo de Moura
1b414d36e7 refactor(library/init): define prod as an inductive datatype
Motivation: prod is used internally in the definitional package.
If we define prod as a structure, then Lean will tag pr1 and pr2 as
projections. This creates problems when we add special support for
projections in the elaborator. The heuristics avoid some case-splits
that are currently performed, and without them some files break.
2015-06-25 17:59:06 -07:00
Floris van Doorn
fa1979c128 feat(datatypes): let the type of unit be the lowest non-Prop universe
The definitional package (brec_on and cases_on) now use poly_unit instead of unit

closes #698
2015-06-25 17:33:46 -07:00
Leonardo de Moura
a4c0699e81 feat(library/tactic/constructor_tactic): restore 'constructor' tactic old semantics, add 'fconstructor' tactic
See issue #676

Add new test demonstrating why it is useful to have the old semantics
for 'constructor'
2015-06-17 23:48:54 -07:00
Leonardo de Moura
d43e0891ae fix(library/init/logic): make sure library can be compiled using '--to_axiom' option 2015-06-16 13:10:08 -07:00
Leonardo de Moura
b80a391d63 fix(library/init/sigma): make sure file compiles even when '--to_axiom' is used 2015-06-16 12:52:08 -07:00
Jeremy Avigad
6b36076ab5 feat({library,hott}/init/nat): add sub_le_succ 2015-06-15 22:53:11 +10:00
Leonardo de Moura
4b91cfccff feat(frontends/lean/builtin_exprs): make notation ( e : T ) builtin
In the previous approach, the following (definitionally equal) term was being generated

       (fun (A : Type) (a : A), a) T e
2015-06-10 14:52:59 -07:00
Leonardo de Moura
17f2c240e1 refactor(library/init/wf): cleanup wf proofs using tactics
add dependent elimination for acc.
2015-06-06 16:58:24 -07:00
Leonardo de Moura
4d52d4c790 fix(library/init/quot): prove quot.exact 2015-06-05 08:04:55 -07:00
Floris van Doorn
dce257bccb fix(init/nat): remove exit 2015-06-04 20:23:44 -04:00
Floris van Doorn
7f5caab694 feat(nat): redefine le and lt in the standard library 2015-06-04 20:14:13 -04:00