Gabriel Ebner
1524979dbf
feat(emacs,shell/server): add different region-of-interest options
2017-03-23 08:57:56 +01:00
Gabriel Ebner
2799375d24
chore(*): style
2017-03-23 08:57:56 +01:00
Gabriel Ebner
a6d2e11a91
refactor(util/task): remove needs_separate_thread option
2017-03-23 08:57:56 +01:00
Gabriel Ebner
bbe30e1bc5
feat(library/module): only report sorry once per declaration
2017-03-23 08:57:56 +01:00
Gabriel Ebner
45820531c4
refactor(util/task): remove switch to disable priority inversion
2017-03-23 08:57:56 +01:00
Gabriel Ebner
26ba9c23a7
refactor(util/task): add eager execution
2017-03-23 08:57:56 +01:00
Gabriel Ebner
3eba8d3ffc
refactor(util/task): do not propagate errors
2017-03-23 08:57:56 +01:00
Gabriel Ebner
1182d8e7f7
fix(library/module): has_sorry: check examples
2017-03-23 08:57:56 +01:00
Gabriel Ebner
2edefdcc12
fix(library/vm/vm_task): fix trace messages
2017-03-23 08:57:56 +01:00
Gabriel Ebner
aebd18f136
feat(shell/server): only compile region of interest
2017-03-23 08:57:56 +01:00
Gabriel Ebner
5f872912e0
refactor(shell/lean): set exit status 1 iff at least one error was reported
2017-03-23 08:57:56 +01:00
Gabriel Ebner
595cbb8fe9
refactor(*): task<T>, log_tree, cancellation_token
2017-03-23 08:57:52 +01:00
Leonardo de Moura
60dd85719c
feat(library/system/io): system.io without axioms
2017-03-22 23:36:05 -07:00
Leonardo de Moura
e6c5ba29d6
fix(library/message_builder): remove unnecessary field
...
see #1473
2017-03-22 08:23:29 -07:00
Sebastian Ullrich
da7e21696e
feat(init/meta/interactive): rw goal info on ,
2017-03-22 07:54:12 -07:00
Leonardo de Moura
c541f90d5b
fix(library/tactic/vm_monitor): compilation warning
2017-03-22 07:40:16 -07:00
Sebastian Ullrich
793f0baee8
feat(library/tactic/vm_monitor): use attribute for registering VM monitors
2017-03-22 07:34:27 -07:00
Rob Lewis
2e921dd533
fix(algebra): generalize theorem
2017-03-22 07:34:01 -07:00
Leonardo de Moura
a31de3b7bc
feat(library/unification_hint): improve unification_hint matcher
...
Improvements:
- Use heuristic match explicit arguments first and then match implicit.
- Skip annotations.
- Follow metavariable assigments.
- Use is_def_eq when pattern doest not contain matching variables.
2017-03-21 10:19:34 -07:00
Leonardo de Moura
aa68d72fa5
fix(library/equations_compiler/elim_match): skip nonvar + inaccessible
2017-03-21 08:08:36 -07:00
Leonardo de Moura
31b6dc222d
feat(library/init/meta/expr): add expr.is_annotation
2017-03-18 13:40:11 -07:00
Leonardo de Moura
3322adde1b
fix(library/tactic/subst_tactic): fixes #1467
2017-03-17 19:54:35 -07:00
Sebastian Ullrich
e0856284b0
feat(frontends/lean,emacs): tactic info before elaboration, fix many edge cases
2017-03-17 18:20:44 -07:00
Sebastian Ullrich
421a6d6f01
feat(frontends/lean/interactive,emacs): highlight current tactic parameter
2017-03-17 18:20:44 -07:00
Sebastian Ullrich
9137248707
fix(library/vm/vm_rb_map): assertion violation in destructor of vb_rb_map_ts_copy with nat keys or values
2017-03-17 18:05:11 -07:00
Leonardo de Moura
b803377d5e
fix(library/tactic/smt/congruence_closure): relation used to implement congruence tables was not transitive
2017-03-17 16:04:41 -07:00
Leonardo de Moura
8ff176717c
feat(library/tactic/smt/congruence_closure): add check_congr_keys assertions
2017-03-17 13:48:12 -07:00
Leonardo de Moura
37c69427b3
feat(library/tactic/smt/congruence_closure): make sure congruence closure module does not assign metavariables when using is_def_eq
2017-03-17 13:48:09 -07:00
Leonardo de Moura
71cd9baf7d
feat(library/type_context): add nd_is_def_eq
2017-03-17 13:47:11 -07:00
Leonardo de Moura
00e836025c
fix(library/type_context): is_def_eq_proof_irrel was not symmetric
2017-03-16 15:28:18 -07:00
Leonardo de Moura
65bc3ca1eb
feat(library/type_context): allow nested tmp modes
...
TODO: The tmp_type_context class is obsolete after this change.
We should remove it.
2017-03-16 12:58:11 -07:00
Leonardo de Moura
22f391c0e1
feat(frontends/lean/elaborator): tolerate orphan bounded variables
...
The pretty printer is used to display ill-formed expressions,
and it uses type_context.
2017-03-16 10:22:52 -07:00
Daniel Selsam
cddf5f081d
fix(library/tactic/kabstract.cpp): only use replace_fn cache if replacing all occs
2017-03-15 19:40:52 -07:00
Leonardo de Moura
36770119b6
feat(library): do not generate C.destruct (for structures), and C.induction_on (for structures and inductive datatypes)
2017-03-15 14:45:13 -07:00
Daniel Selsam
7f56f23e70
chore(frontends/lean/inductive_cmds): allow sorrys
2017-03-15 14:06:56 -07:00
Sebastian Ullrich
e3b9190fe2
refactor(library/tactic/user_attribute): use attribute for registering attributes. naturally.
2017-03-15 14:06:34 -07:00
Leonardo de Moura
8d409d7c63
feat(library/unification_hint): unification hint validation
2017-03-12 16:42:16 -07:00
Leonardo de Moura
d1ace9e243
chore(library/unification_hint): add check
2017-03-12 12:19:12 -07:00
Leonardo de Moura
9bc378ea49
perf(library/unification_hint): improve performance
2017-03-12 12:07:51 -07:00
Daniel Selsam
06233c32c2
perf(constructions/injective): avoid unnecessary app-builder invocation
2017-03-12 09:53:18 -07:00
Daniel Selsam
cdc24bae77
feat(library/constructions/injective): do not include propositions
2017-03-11 18:12:43 -08:00
Leonardo de Moura
95c93e7211
feat(library/constructions/no_confusion): do not include propositions
2017-03-11 17:36:04 -08:00
Leonardo de Moura
740d42ea45
fix(library/tactic): we should preserve names when using the revert/do_something/intro idiom
2017-03-11 12:20:39 -08:00
Daniel Selsam
e72d516252
refactor(inductive_compiler): use subst to prove packs injective instead of constructors
2017-03-10 22:27:29 -08:00
Daniel Selsam
538ac8d187
feat(inductive_compiler): generate injectivity lemmas
2017-03-10 22:27:18 -08:00
Sebastian Ullrich
16558bf082
refactor(library,library): rename pre_monad to has_bind
2017-03-09 20:32:25 -08:00
Sebastian Ullrich
763097dbd2
refactor(library): revise the monadic hierarchy
2017-03-09 20:30:03 -08:00
Leonardo de Moura
b0a33259ee
fix(library/compiler/simp_inductive): array^.data should not be treated as a regular projection
2017-03-09 19:11:51 -08:00
Leonardo de Moura
6916a8ceca
fix(library/compiler/inliner): inliner was unfolding constants aggressively when trying to reduce projections
...
@digama0 After this commit, your example will also produce a
non-destructive update.
```lean
structure test :=
(data1 : array nat 3)
(data2 : array nat 3)
(sz: nat)
def test.write (s : test) (i : fin 3) (v : nat) :=
{s with data1 := s^.data1^.write i v, data2 := s^.data2^.write i v}
set_option trace.array.update true
(fin.of_nat 1) 10 in
(a^.data1^.read (fin.of_nat 1), a^.data2^.read (fin.of_nat 2)) -- destructive write
```
2017-03-09 18:52:27 -08:00
Leonardo de Moura
e875141322
feat(library/tactic/intro_tactic): make sure unused names are used if the user did not provide them
2017-03-09 16:03:18 -08:00