Commit graph

40 commits

Author SHA1 Message Date
Leonardo de Moura
1ad1080f11 refactor(library): keep only basic nat theorems
All theorems are proved without using the tactic framework.
Thus, we can define `fin/uint32/uint64` types and their operations
before we define the tactic framework.
2018-04-11 16:47:54 -07:00
Leonardo de Moura
28501a0e0e feat(library/init/data/string): string as a list of unicode scalar values, and iterator abstraction
TODO:
- Implement string primitives in the VM.
- Support for unicode char literals.
2017-10-23 10:55:26 -07:00
Leonardo de Moura
cfa34dc83e chore(library): remove workarounds for issue #1682 2017-06-19 16:09:12 -07:00
Leonardo de Moura
8b88f21c91 refactor(library): add has_to_string back (but it produces unquoted values)
See issue #1664
2017-06-18 18:30:10 -07:00
Leonardo de Moura
dc1a1c8540 refactor(library): has_to_string ==> has_repr
See issue #1664

This is just the first step to implement proposal described at issue #1664.
2017-06-18 18:29:19 -07:00
Leonardo de Moura
4eefc41b6e refactor(*): wrap string in a structure
We want to make sure string users do not depend on the string
implementation. This is the first step.

We need this refactoring *now* to make sure it will not be
super painful to address issue #1175
2017-06-07 17:30:49 -07:00
Sebastian Ullrich
c8c8c27654 feat(init/meta): add has_to_format instances and prefer direct has_to_tactic_format implementations 2017-04-11 17:07:28 -07:00
Leonardo de Moura
71685e4dd6 feat(frontends/lean): add support for t.<id> and t.<idx> when t is a composite term
Replace `^.` with `.` in the stdlib
2017-03-28 17:47:49 -07:00
Sebastian Ullrich
3ead6be9ca feat(init): add default value proofs to the monadic hierarchy 2017-03-27 13:42:08 -07:00
Jeremy Avigad
95f75bbbee refactor(library/init/data/subtype/basic): rename subtype constructor and projections 2017-03-08 19:31:27 -08:00
Leonardo de Moura
9a263a2766 chore(library/init): instances are reducible and are inlined by the compiler
So, these instances would create two copies of `p` after inlining
2017-03-07 10:58:09 -08:00
Leonardo de Moura
59c0cbd2e4 chore(library): test new '^.' notation in the standard library, and cleanup definitions using it 2017-03-05 21:21:50 -08:00
Sebastian Ullrich
d15591a2d8 feat(library,frontends/lean): expose parser to Lean and use for parsing tactic parameters 2017-02-17 13:45:56 +01:00
Leonardo de Moura
32e6442d0a feat(frontends/lean): no global universes in the frontend 2017-02-08 17:23:04 -08:00
Leonardo de Moura
bf9f7560f7 feat(frontends/lean): (Type u) can't be a proposition
(Type u)  is the old (Type (u+1))
(PType u) is the old (Type u)
Type*     is the old (Type (_+1))
PType*    is the old Type*

The stdlib can be compiled, but we still have > 70 broken tests

See discussion at #1341
2017-01-30 11:54:00 -08:00
Gabriel Ebner
6b15f6cef9 feat(library/tools/super): add super prover 2016-12-16 18:18:13 -08:00
Leonardo de Moura
c816b80855 chore(*): don't use upper case letter for type variables, and camelCase for declarations 2016-11-17 14:54:08 -08:00
Leonardo de Moura
7c6510f7de feat(library/init/meta/format): add 'format.indent' 2016-10-05 10:39:40 -07:00
Leonardo de Moura
572751c56e feat(frontends/lean): force user to use meta keyword on meta inductive/structure/class
Before this commit, we were inferring whether an
inductive/structure/class were meta or not. This was bad since the user
had no clue whether the type was trusted (non meta) or not.
Moreover, users could get confused by this behavior and assume the
kernel was allowing trusted code to rely on untrusted one.
2016-09-29 17:56:35 -07:00
Leonardo de Moura
5957022adb feat(frontends/lean): add 'class' keyword 2016-09-24 14:32:01 -07:00
Leonardo de Moura
03e4fd1038 feat(frontends/lean,library): cleanup instance cmd, and use 'meta instance' 2016-09-24 12:33:25 -07:00
Leonardo de Moura
148da46481 feat(frontends/lean): 'mutual' and 'meta' are now keywords 2016-09-24 10:44:40 -07:00
Leonardo de Moura
9991d61610 chore(library/init): cleanup 2016-09-23 14:53:17 -07:00
Leonardo de Moura
5e5285ee67 refactor(library): rename pr1/pr2 ==> fst/snd 2016-09-21 09:48:39 -07:00
Leonardo de Moura
24f1cb2726 chore(frontends/lean): new_elaborator is now the default 2016-09-19 16:34:06 -07:00
Leonardo de Moura
5e8f2add84 refactor(library/init): use universe variables 2016-09-17 12:25:02 -07:00
Leonardo de Moura
e99eb6d47e feat(frontends/lean): revising inaccessible terms syntax again :( 2016-08-19 13:57:12 -07:00
Daniel Selsam
a9b01991c2 feat(frontends/lean/inductive_cmd): new frontend for the inductive cmd
Conflicts:
	src/frontends/lean/CMakeLists.txt
	src/frontends/lean/structure_cmd.h
2016-08-17 07:34:03 -07:00
Sebastian Ullrich
fd2c42a8bf chore(library, tests): switch to new attribute declaration syntax
sed -Ei 's/^(\s*)((private |protected )?(noncomputable )?(abbreviation|definition|meta_definition|theorem|lemma|proposition|corollary)\s+\S+\s*)((\s*\[(\S+(\s+[0-9]+)*|priority.*)\])+)\s*/\1attribute \6\n\1\2/' library/**/*.lean tests/**/*.lean
sed -Ei 's/\s+$//' library/**/*.lean  # remove trailing whitespace
2016-08-12 15:36:12 -07:00
Leonardo de Moura
2ad5c2ab73 feat(library/init): add has_lift has_coe has_coe_to_fun type classes 2016-07-30 10:11:30 -07:00
Leonardo de Moura
de237fa6e4 chore(library/coercion): disable coercion attribute 2016-07-29 13:15:10 -07:00
Leonardo de Moura
7ddf1e817b chore(frontends/lean): coercions are disabled by default 2016-07-29 13:03:23 -07:00
Leonardo de Moura
3dccaa8e39 feat(library/init/string): add utf8_length 2016-07-19 14:22:37 -04:00
Leonardo de Moura
ea51e77b4b refactor(library): format concatentation as instance of has_append instead of has_add 2016-06-27 08:12:26 +01:00
Leonardo de Moura
583a55c7c3 refactor(library): move 'none', 'some', 'tt', 'ff' to top-level 2016-06-25 12:39:19 -07:00
Leonardo de Moura
61de427699 feat(library/init/meta/fun_info): expose fun_info 2016-06-22 14:00:00 -07:00
Leonardo de Moura
876793c21e feat(library/init/meta): add 'inhabited' instances 2016-06-09 13:19:49 -07:00
Leonardo de Moura
831a887bdb feat(library/init/meta/format): add trace_fmt 2016-06-09 10:51:49 -07:00
Leonardo de Moura
a90926a2d0 feat(library/vm/vm_environment): add rest of environment API 2016-06-07 17:51:04 -07:00
Leonardo de Moura
414bdc1abb refactor(library): move 'meta' to 'init' folder
Motivation: tactic framework should be always available.
2016-06-06 19:08:07 -07:00
Renamed from library/meta/format.lean (Browse further)