Commit graph

5709 commits

Author SHA1 Message Date
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