Leonardo de Moura
7838ed386d
refactor(frontends/lean/pp,library/init/reserved_notation): pretty print "nat numerals" nicely even when namespace nat is not open
2015-11-08 14:04:56 -08:00
Leonardo de Moura
ce21996635
feat(library): define custom recursors for nat, and minimize the use of krewrite
2015-11-08 14:04:55 -08:00
Leonardo de Moura
26eb6fa849
feat(*): new numeral encoding
2015-11-08 14:04:55 -08:00
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