Johannes Hölzl
bb4920fcbc
feat(library/vm/vm_expr): export instantiate_univ_params
2017-02-17 20:08:18 -08:00
Sebastian Ullrich
e8fa54cc51
refactor(init/meta): move macro creation defs from expr to pexpr
2017-02-17 13:45:57 +01: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
edd5e97045
feat(frontends/lean/elaborator): coercion from (decidable) Prop to bool
...
This is a hard coded extra case. It is not an instance of has_coe.
Even if we change has_coe to accomodate this case, it will not be a
satisfactory solution because this coercion depends on the element and
not the type, and the element usually contains metavariables.
We should eventually write a tactic for synthesizing coercions.
2017-02-14 18:41:32 -08:00
Leonardo de Moura
5ca18b8d2e
feat(library/init/meta): add helper functions
2017-02-11 16:52:06 -08:00
Leonardo de Moura
c5dc8e651a
chore(library/init/meta): cleanup
2017-02-08 15:33:25 -08:00
Gabriel Ebner
95068e4e79
feat(library/sorry): make sorry a macro
2017-02-05 14:01:03 +01:00
Gabriel Ebner
952f444710
feat(init/meta/task): allow task creation from VM
2017-01-28 08:27:23 +01:00
Leonardo de Moura
b1d097e63a
feat(library/init/meta): add 'delta' tactic for applying delta reduction
...
closes #1331
2017-01-26 19:04:07 -08:00
Leonardo de Moura
0c4c41ae54
feat(library/init/meta): produce nicer error message for overloaded simp/ematch lemma
2017-01-07 14:13:46 -08:00
Leonardo de Moura
d333c444cd
test(tests/lean/run): add tactic examples
2017-01-06 18:48:03 -08:00
Leonardo de Moura
8eadaf51d8
feat(library/init/meta/smt): add helper tactics: get_facts, proof_for, refutation_for, add_lemmas_from_facts, ...
2017-01-05 12:59:11 -08:00
Gabriel Ebner
6b15f6cef9
feat(library/tools/super): add super prover
2016-12-16 18:18:13 -08:00
Daniel Selsam
f952dbc78e
fix(init/meta/expr.lean): is_app_of can return true for constants as well
2016-12-08 11:23:53 -08:00
Jared Roesch
e65d90ac79
feat(*): C++ code generator
...
in progress move of Lean.native to init
2016-12-05 16:11:41 -08:00
Leonardo de Moura
242ad1bd65
feat(library/init/meta/comp_value_tactics): add comp_val tactic for testing
2016-11-22 17:03:21 -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
a7af70da2e
feat(library/vm): add expr.copy_pos_info
2016-11-10 11:50:38 -08:00
Leonardo de Moura
0d74ad97a7
chore(library/init): definition => def
2016-10-06 16:04:12 -07:00
Gabriel Ebner
6883720cc7
fix(library/init/meta/expr): consistently compare expressions
2016-10-05 15:17:02 -07:00
Leonardo de Moura
990c414b86
feat(library/init/meta/converter): add 'congr' and 'depthfirst' conversionals
2016-10-05 15:05:22 -07:00
Leonardo de Moura
4a9a637ddf
feat(library/init/meta/converter): add 'funext' converter and 'conversion' tactic
2016-10-05 15:05:07 -07:00
Leonardo de Moura
89703ce669
feat(library/vm/vm_expr): expose replace
2016-10-01 09:23:40 -07:00
Leonardo de Moura
719481588a
feat(library/init/meta): add coercion from expr to (expr -> expr)
2016-10-01 09:03:43 -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
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
001e06abdc
chore(library/init): use 'instance'
2016-09-23 14:00:34 -07:00
Leonardo de Moura
90bfd84a07
feat(frontends/lean): Type is now (Type 1)
...
In the standard library, we should use explicit universe variables for
universe polymorphic definitions.
Users that want to declare universe polymorphic definitions but do not
want to provide universe level parameters should use
Type _
or
Type*
2016-09-17 14:30:54 -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
de237fa6e4
chore(library/coercion): disable coercion attribute
2016-07-29 13:15:10 -07:00
Daniel Selsam
1b7f70dde9
feat(simplifier): expose simp_lemmas data structure
2016-07-29 10:44:44 -07:00
Leonardo de Moura
212d222047
feat(frontends/lean): quoted names
2016-07-22 19:06:57 -07:00
Leonardo de Moura
1b55507971
refactor(library/init/meta): rename C++ intro to intro_core, and define smarter intro in C++
2016-07-21 16:54:23 -07:00
Leonardo de Moura
f0f927919d
feat(library/init/meta/expr): add get_app_args
2016-07-20 19:28:36 -04:00
Leonardo de Moura
6b30b89c89
feat(library/init/meta/tactic): add 'simp_at' tactics
2016-07-09 17:23:45 -07:00
Leonardo de Moura
9e1c4b5c99
feat(library/init/meta): add helper functions, improve contradiction tactic
2016-07-05 18:34:48 -07:00
Leonardo de Moura
4d32a8a4f8
feat(library/init/meta): add helper functions
2016-06-27 17:19:22 +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
94905a5511
feat(library/vm/vm_expr): add expr.hash
2016-06-23 12:45:31 -07:00
Leonardo de Moura
f0ec88c1d3
refactor(library/init/meta): free_var ==> local_const
...
Use the same names used in the C++ version
2016-06-22 14:48:09 -07:00
Leonardo de Moura
82a604e3f5
fet(library/init/meta/expr): add auxiliary functions for expr
2016-06-18 14:29:11 -07:00
Leonardo de Moura
b24795b2b1
feat(library/init/meta/expr): mark expr.app as a coercion
2016-06-17 08:50:06 -07:00
Leonardo de Moura
84e33f6ae2
feat(library/init/meta/contradiction_tactic): improve contradiction tactic
2016-06-16 18:32:08 -07:00
Leonardo de Moura
67aa755a94
feat(library/init/meta): add helper functions
2016-06-16 18:16:35 -07:00
Leonardo de Moura
876793c21e
feat(library/init/meta): add 'inhabited' instances
2016-06-09 13:19:49 -07:00