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
b91e22af2b
fix: fixes #241
2021-05-22 19:10:07 -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
af4485f40e
fix: fixes #482
2021-05-21 19:20:24 -07:00
Leonardo de Moura
8eceb07caf
feat: new discriminant refinement procedure
2021-05-21 18:08:11 -07:00
Mac Malone
a6dc9e4ef3
feat: class abbrev now supports a type spec (+ test)
2021-05-20 15:23:30 -07:00
Mac Malone
6c07536b33
feat: simplified, improved class abbrev (+ tests)
2021-05-20 15:23:29 -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
a02c6fd3eb
chore: adapt stdlib & tests
2021-05-20 15:17:36 -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
Leonardo de Moura
8bbe6cac02
chore: fix test
2021-05-17 14:47:24 -07:00
Leonardo de Moura
53b2ceea51
fix: missing withoutModifyingState at elabSimpConfig
2021-05-16 13:07:13 -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
a498a64490
chore: disable injectivity theorems generation for big structure tests
...
The test was producing a stack overflow in debug mode in CI.
2021-05-15 21:30:40 -07:00
Leonardo de Moura
5d305faee0
chore: increase threshold for Windows workaround in the previous commit
2021-05-15 21:15:37 -07:00
Leonardo de Moura
3b8b46b16c
test: closes #441
2021-05-15 20:37:48 -07:00
Leonardo de Moura
c7096f54a2
feat: injectivity theorems for types defined in the prelude
2021-05-14 18:32:26 -07:00
Leonardo de Moura
ea45d3bd40
fix: fixes #457
2021-05-12 20:45:54 -07:00
Leonardo de Moura
4db3ccaddb
feat: type ascription should disable implicit lambdas
2021-05-12 19:29:36 -07:00
Leonardo de Moura
b52edf1259
fix: fixes #452
...
The new syntax is similar to `matchAlts` and uses `colGe`.
The first `|` is not optional anymore.
2021-05-10 17:28:10 -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
Leonardo de Moura
7fc6607611
feat: have ... := ... syntax closer to let
2021-05-06 15:38:57 -07:00
Sebastian Ullrich
e6132d37a5
fix: induction/cases: accept wildcard alternative even if some (but not all) cases have been excluded
2021-05-06 14:28:00 +02:00
Leonardo de Moura
164b26bf01
fix: make sure the resulting array size is equal to the number of binders
...
The following code relies on this property
```lean
for uid in scope.varUIds, x in xs do
sectionFVars := sectionFVars.insert uid x
```
2021-05-04 19:46:14 -07:00
Leonardo de Moura
56d5d6c564
chore: fix tests
2021-05-04 15:42:03 -07:00
Leonardo de Moura
1a0fc816b1
feat: rename inaccessible variable names at cases
2021-05-01 21:51:58 -07:00
Leonardo de Moura
a2e8bc0780
feat: use binop% to define arith operators
...
closes #382
2021-04-30 19:40:45 -07:00
Leonardo de Moura
adae6fdb40
fix: tolerate type incorrect terms
...
This bug was producing a type error when I was using `set_option trace.Elab true`
2021-04-29 21:34:15 -07:00
Leonardo de Moura
18085b9712
fix: improve match generalizing feature
2021-04-26 19:22:03 -07:00
Daniel Fabian
1f05f5bf11
chore: rename ProofBelow to below.
2021-04-26 20:33:21 +02:00
Leonardo de Moura
af391fe812
test: reflective inductive predicate
2021-04-25 20:35:13 -07:00
Daniel Fabian
eda4bdd337
test: extend inductive_pred.lean with tests using the new construction.
2021-04-25 20:02:22 -07:00
Leonardo de Moura
a6888f72dd
fix: instance + where + implicts issue
...
The following could not be elaborated.
```lean
instance : MulComm Bool where
mulComm := fun {a b} =>
match a, b with
| true, true => rfl
| true, false => rfl
| false, true => rfl
| false, false => rfl
```
2021-04-24 20:07:35 -07:00
Leonardo de Moura
74d613ab88
fix: safe instance for MethodsRef
2021-04-24 07:24:08 -07:00
Leonardo de Moura
964fd3f520
chore: fixes tests
...
closes #405
2021-04-22 20:22:43 -07:00
Leonardo de Moura
09d438ca1d
chore: enforce notation parameter naming convention
2021-04-19 18:54:09 -07:00
Leonardo de Moura
762cebbbfc
fix: match generalization bug
2021-04-19 18:37:25 -07:00
Leonardo de Moura
157ef80c5a
feat: match auto generalization
2021-04-16 21:48:38 -07:00
Leonardo de Moura
c1f45ecd48
fix: fixes #394
...
The bug was due to the auto-generalization feature.
2021-04-13 19:14:57 -07:00
Leonardo de Moura
adda3a9e02
fix: improve structural recursion
2021-04-13 10:31:43 -07:00
Leonardo de Moura
bf4b9b0ccd
fix: use noImplicitLambda% when defining tactic macros such as have, let, etc
...
Thus, we don't change the expected type when using them.
2021-04-12 23:01:47 -07:00
Leonardo de Moura
2f37d7e290
feat: elaborate noImplicitLambda% notation
2021-04-12 22:55:17 -07:00
Daniel Selsam
d35091da56
feat: parser alias for 'declVal'
2021-04-12 16:59:54 -07:00
Leonardo de Moura
217c0391bb
chore: example
2021-04-12 16:56:10 -07:00