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