Commit graph

664 commits

Author SHA1 Message Date
Gabriel Ebner
3cff5ceb99 perf: make trace[...] ... notation lazy 2021-06-23 00:07:27 -07:00
Sebastian Ullrich
eb1e285e26 chore: style 2021-06-21 10:17:26 -07:00
Sebastian Ullrich
380c6c285a perf: specialize some monad instances 2021-06-17 11:25:58 +02:00
Leonardo de Moura
a435f3d641 feat: reduce s.1 =?= v to s =?= ⟨v⟩ if structure has a single field
This feature was suggested by @dselsam at PR #521.
It closes #509
2021-06-11 11:23:19 -07:00
Gabriel Ebner
94e299a730 fix: instantiate mvars in rewrite tactic 2021-06-11 10:27:05 -07:00
Daniel Fabian
9200de01ef refactor: fix code review comments. 2021-06-06 06:40:09 -07:00
Daniel Fabian
968ae18f20 fix: deal with params for inductive predicates. 2021-06-06 06:40:09 -07:00
Daniel Fabian
4e53b3bdbf fix: use motive from brecOn in structural recursion for predicates. 2021-06-06 06:40:09 -07:00
Daniel Fabian
4e88fdc99a feat: add getMkMatcherInputInContext. 2021-06-06 06:40:09 -07:00
Daniel Fabian
822c551aa2 test: Add a bunch of test for structural recursion on predicates. 2021-06-06 06:40:09 -07:00
Daniel Fabian
ec6f7d9bd6 feat: Implement structural recursion for inductive predicates. 2021-06-06 06:40:09 -07:00
Leonardo de Moura
37da993032 chore: remove HashableUSize instances 2021-06-02 08:48:11 -07:00
Leonardo de Moura
43812444a7 chore: Hashable => HashableUSize 2021-06-02 07:24:26 -07:00
Leonardo de Moura
6a87bba9c0 chore: mixHash => mixUSizeHash 2021-06-02 07:05:42 -07:00
Leonardo de Moura
764ccc4fb4 chore: add default value for parameter 2021-05-31 18:52:00 -07:00
Leonardo de Moura
7303761569 feat: add modifyTarget 2021-05-31 18:17:07 -07:00
Leonardo de Moura
4062dee864 fix: fixes #498 2021-05-31 15:42:13 -07:00
Leonardo de Moura
a247249880 feat: add configuration option for disabling proof irrelevance at MetaM 2021-05-27 13:37:26 -07:00
Leonardo de Moura
8b4cdcfddd chore: fix mutable variable shadowing 2021-05-22 19:24:41 -07:00
Daniel Fabian
c426a816a1 refactor: Make the non-below version of a premise in the below type for inductive predicates implicit.
Since it is always fully implied by the below version thereof, it carries no real information and shouldn't be used in pattern matching.
2021-05-22 18:09:32 -07:00
Leonardo de Moura
28b055463f fix: fixes #471 2021-05-22 15:42:52 -07:00
Leonardo de Moura
edb203ca54 fix: fixes #481 2021-05-21 20:40:26 -07:00
Leonardo de Moura
795e3a8646 chore: use "theorem" instead of "lemma" in messages 2021-05-21 20:35:23 -07:00
Daniel Fabian
42bd44ab82 refactor: Capture environment modification in mkMatcher.
Doing this allows us to add the declaration in the backtracking case of structural recursion.
2021-05-20 15:20:16 -07:00
Sebastian Ullrich
7242c5c513 fix: rw: add all uninstantiated mvars as goals 2021-05-19 07:31:50 -07:00
Daniel Fabian
ab0ef229ac feat: add getBelowIndices. 2021-05-19 07:28:14 -07:00
Daniel Fabian
91ecbb5b5c feat: Add withMkMatcherInput.
This is the inverse function to `mkMatcher`, i.e. a way to turn a matcher into an input.
2021-05-19 07:28:14 -07:00
Daniel Fabian
cf030a1634 refactor: Add MkMatcherInput.
Since we are going to make `mkMatcher` reversible, it's quite useful to have the input be a `structure`. This way we make sure, that the inverse function always returns the same type as `mkMatcher` needs as input.
2021-05-19 07:28:14 -07:00
Sebastian Ullrich
23f0c1051c feat: improve ToString/Quote Name 2021-05-19 09:34:01 +02:00
Leonardo de Moura
62ee8cfcea feat: add MonadBacktrack instance for SimpM 2021-05-16 12:49:33 -07:00
Leonardo de Moura
ac90052139 feat: add option for controlling how deep we go when trying to discharge simp theorem hypotheses 2021-05-16 12:32:05 -07:00
Leonardo de Moura
4b69193442 feat: generalize withPPInaccessibleNames 2021-05-15 18:58:06 -07:00
Leonardo de Moura
051ac3aef3 fix: casesRec 2021-05-14 18:05:04 -07:00
Leonardo de Moura
0f43a338e6 feat: improve error message 2021-05-14 18:05:04 -07:00
Leonardo de Moura
05147fd352 fix: do not generate injectivity theorems for unsafe inductive datatypes 2021-05-14 18:05:04 -07:00
Leonardo de Moura
175311b2f0 feat: avoid trivial injectivity theorems 2021-05-14 18:05:04 -07:00
Leonardo de Moura
112bb0ed79 fix: injectivity theorem for constructors with dependent fields 2021-05-14 18:05:04 -07:00
Leonardo de Moura
2a7ec9dd8c feat: add splitAnd and applyRefl helper methods 2021-05-14 18:05:04 -07:00
Leonardo de Moura
77b9dbf9a9 feat: add casesRec 2021-05-14 18:05:04 -07:00
Leonardo de Moura
eb4df90c93 feat: add helper methods 2021-05-14 18:05:04 -07:00
Leonardo de Moura
f850820029 feat: add mkInjectiveTheorems 2021-05-13 22:09:50 -07:00
Leonardo de Moura
ea45d3bd40 fix: fixes #457 2021-05-12 20:45:54 -07:00
Leonardo de Moura
c9db8619f1 fix: fixes #456 2021-05-11 21:07:21 -07:00
Leonardo de Moura
0e1f645b07 fix: fixes #450 2021-05-10 13:55:06 -07:00
Leonardo de Moura
4675817a9e fix: projection of string literals 2021-05-07 14:38:21 -07:00
Leonardo de Moura
5fcd08326f fix: bug at reduceRec 2021-05-07 14:21:37 -07:00
Sebastian Ullrich
9ed8db4bc3 feat: add constructor tactic 2021-05-06 10:40:56 -07:00
Leonardo de Moura
b4a7d28cff fix: inconsistent inaccessible annotations 2021-05-05 10:45:38 -07:00
Leonardo de Moura
660c49840f fix: another instance of the binder cache issue
See issue #439
2021-05-05 10:45:38 -07:00
Leonardo de Moura
8102f407b6 fix: take binder information into account when caching results 2021-05-03 21:02:23 -07:00