Leonardo de Moura
1465b58369
chore(library): remove arith_instance
...
It was used by norm_num. We don't need it anymore.
2018-04-12 16:43:10 -07:00
Leonardo de Moura
e1322491c5
chore(*): remove discr_tree
2018-04-10 16:31:55 -07:00
Leonardo de Moura
ce0467638e
chore(*): remove unification hints
2018-04-10 16:29:04 -07:00
Leonardo de Moura
10ddfdafbd
chore(*): remove VM monitor
2018-04-10 16:08:47 -07:00
Leonardo de Moura
1b1495aea4
chore(*): remove norm_num
2018-04-10 15:59:29 -07:00
Leonardo de Moura
b14d69b1d7
chore(*): remove converter, ac_tactics, hole_commands, rbtree/rbmap proofs, bitvec
2018-04-10 12:25:51 -07:00
Leonardo de Moura
a2f0bf7c1b
chore(*): disable SMT tactic framework and backward chaining
2018-04-10 12:05:51 -07:00
Leonardo de Moura
d36b859c65
chore(library/delayed_abstraction): add missing 'virtual'
2018-04-09 17:07:57 -07:00
Leonardo de Moura
c08a3bc557
refactor(library/typed_expr): move typed_expr to frontends/lean
2018-04-09 15:25:40 -07:00
Leonardo de Moura
bcaa0b2ad3
refactor(library/typed_expr): do not use macros for implementing typed_expr
...
Remark: in Lean4, we will not have macro_defs.
2018-04-09 15:16:46 -07:00
Leonardo de Moura
8dd53cd94f
chore(*): rename expr_struct_* to expr_*
...
We don't need to modifier `_struct` anymore since we don't use the
pointer equality based hashtables anymore.
2018-04-09 12:55:48 -07:00
Leonardo de Moura
faf8e025e7
chore(kernel): remove m_hash_alloc field from expressions
...
This field was originally added to create hashtables based on pointer
equality. We don't use them anymore, and the caches based on
m_hash_alloc can be implemented using m_hash without any performance
impact. This commit also fixes two places where `expr_set` was used
instead of `expr_struct_set`.
This commit is also important for the Lean4 plans where `expr` will
be implemented in Lean, and fields like `m_hash_alloc` would require us
to track state.
2018-04-09 10:05:56 -07:00
Sebastian Ullrich
17affbd45d
chore(library/util): don't hide commit hash for nightlies
2018-04-02 10:44:43 +02:00
Leonardo de Moura
66e7873c22
fix(library/type_context): elim_delayed_abstraction must check whether metavariable is already assigned
...
fixes #1952
2018-03-29 15:53:17 -07:00
Leonardo de Moura
8e8232605a
chore(library/compiler/inliner): fix weird include
2018-03-29 13:08:43 -07:00
Sebastian Ullrich
3fefe94757
refactor(library/init/core,library/init/unit): make unit an abbreviation of punit.{0}
2018-03-27 10:33:04 -07:00
Leonardo de Moura
efa9d7e110
perf(library/type_context): performance issue when proving equation lemmas
2018-03-26 12:57:19 -07:00
Sebastian Ullrich
0c0646f03b
chore(leanpkg/lean_version): recognize nightlies as releases separate from master
2018-03-20 15:14:45 -07:00
Sebastian Ullrich
1c6861528b
refactor(init/category): move monad laws into separate type classes defined after the tactic framework
2018-03-20 14:58:35 -07:00
Sebastian Ullrich
fbe6b70295
perf(library/module_mgr): fix module_info reference cycle
2018-03-08 10:06:20 -08:00
Leonardo de Moura
2e66449feb
fix(library/tactic/tactic_state): build
2018-03-08 09:58:07 -08:00
Leonardo de Moura
169cd87dbe
feat(library/system/io): add io.run_tactic
...
@nunoplopes @aqjune
I had to add a new primitive to allow you to execute a tactic from the
`main` function. The `main` function is in the `io` monad. The new
primitive has type:
```
meta constant io.run_tactic {α : Type} (a : tactic α) : io α
```
I also added a new test that shows how to use it.
The test displays all declarations that have the `nat` prefix.
cc @kha
2018-03-07 12:15:26 -08:00
Leonardo de Moura
3e81f88887
feat(library): implement new cache API for fun_info
2018-03-05 15:46:42 -08:00
Leonardo de Moura
eddc64d154
chore(library/abstract_context_cache): remove unnecessary argument
2018-03-05 14:40:47 -08:00
Leonardo de Moura
a5ace58fb3
feat(library): add elab_context
2018-03-05 13:11:55 -08:00
Leonardo de Moura
bdea7d420d
chore(*): type_context ==> type_context_old
2018-03-05 12:38:24 -08:00
Leonardo de Moura
f873def910
refactor(library/type_context): move unification_hints to cache object
2018-03-05 12:17:09 -08:00
Sebastian Ullrich
48147646bc
refactor(library): mk_result/get_result_* ~> mk_success/get_success_*
2018-03-01 14:56:01 +01:00
Sebastian Ullrich
e1fc2bdbea
refactor(library): encapsulate tactic's Lean implementation better
2018-03-01 14:56:01 +01:00
Nuno Lopes
39270fd46f
fix(tactic): build on MSVC
2018-02-28 10:38:50 -08:00
Sebastian Ullrich
1abf8738fc
feat(frontends/lean/structure_cmd): allow implicitness infer annotation and parameters in field declaration
2018-02-28 12:49:22 +01:00
Sebastian Ullrich
f3ca420b64
feat(frontends/lean/elaborator): hide opt/auto param types when elaborating structure field values
2018-02-28 12:49:22 +01:00
Sebastian Ullrich
cf8dd9e75e
feat(fronteds/lean/builtin_exprs): do notation: use overloadable bind instead of has_bind.bind
2018-02-28 12:49:22 +01:00
Leonardo de Moura
b72d465835
refactor(library/init/meta): remove tactic_state.mk_empty
...
The tactic_state object will contain a name_generator for creating fresh
names. `tactic_state.mk_empty` is bad because it does not have sufficient
information to create this name_generator.
Moreover `tactic_state.mk_empty` was only being used to convert
`tactic A` into a `parser A`.
We implement this primitive now in C++. In C++, we will be able
to use the parser name generator to initialize a fresh `tactic_state`.
2018-02-27 14:45:47 -08:00
Leonardo de Moura
3895fd8511
chore(library): use type_context to update metavar_context
2018-02-27 12:23:26 -08:00
Sebastian Ullrich
5279f92dae
fix(library/tactic/simp_lemmas): avoid rewrite failure with more robust code
...
The old code assumed `emetas` to be descendingly ordered by tmp idx, which is
not true for rfl lemmas.
2018-02-27 10:59:51 -08:00
Nuno Lopes
0eebde1b8b
fix(process): fix inherited io on windows (handles were being incorrectly closed)
...
This also unifies the win/linux versions a bit more
2018-02-27 10:55:42 -08:00
Nuno Lopes
ce66af8f5b
fix(process): order of parameters of process class was wrong
2018-02-27 10:55:42 -08:00
Nuno Lopes
9e42e434b5
chore(io): remove a few unneeded ref count bumps
2018-02-27 10:55:38 -08:00
Nuno Lopes
ea6a4be124
chore(library): match stdio enum with Lean values
2018-02-27 10:43:09 -08:00
Nuno Lopes
c67062644a
fix(io_proc): fix crash on Windows/VS when invoking external processes
...
This commit also removes a couple of unused functions
2018-02-27 10:43:09 -08:00
Leonardo de Moura
ec141d1671
chore(library/tactic/change_tactic): use type_context instead of metavar_context
2018-02-27 10:41:11 -08:00
Leonardo de Moura
6bf20a980d
doc(library/tactic/tactic_state): plan for getting rid of remaining occurrences of mk_fresh_name and mk_tagged_fresh_name
2018-02-27 10:34:55 -08:00
Leonardo de Moura
a962efdcd1
fix(library/tactic/cases_tactic): fixes #1836
2018-02-26 15:32:03 -08:00
Leonardo de Moura
421f2c2ae2
fix(library/tactic/subst_tactic): subst was creating type incorrect motive when using dependent elimination
...
This commit fix a bug reported at comment
https://github.com/leanprover/lean/issues/1827#issuecomment-368258713
Remark: the original problem reported at issue #1827 has nothing to do
with this bug.
2018-02-26 14:02:10 -08:00
Leonardo de Moura
e53ef3c335
fix(library/type_context): remove unsafe type_context::operator=(type_context &&)
...
This commit also implements a custom `type_context(type_context &&)`
constructor that enforces correct usage.
2018-02-26 12:28:22 -08:00
Leonardo de Moura
5692baaaf8
chore(library/metavar_context): remove m_ngen field
...
It was a bad idea to try to store the name_generator here.
We copy/restore metavar_context objects in a few places.
These operations would trigger the regeneration of previously generated
fresh names, and would violate the assumptions made at persistent_context_cache.
We should have a name_generator at type_context instead.
2018-02-23 17:43:48 -08:00
Leonardo de Moura
7954b56cd8
fix(library/tactic/revert_tactic): missing catch
2018-02-23 12:26:18 -08:00
Leonardo de Moura
6c3d90e20e
fix(library/type_context): type_context was not checking if to_revert dependencies were frozen
2018-02-23 11:59:18 -08:00
Leonardo de Moura
24e7a5a339
feat(library/tactic): add frozen_local_instances tactic for retrieving list of frozen local instances
2018-02-23 11:39:38 -08:00