Daniel Fabian
63d58c2f64
refactor: use Except instead of Option in the JSON code.
2021-06-07 12:10:10 +02:00
Daniel Fabian
825218cd4a
feat: use Except instead of Option in the JSON deriving handlers.
2021-06-07 12:10:10 +02: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
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
Sebastian Ullrich
b82b90a687
feat: KeyedDeclAttribute: expose declaration names
2021-06-06 15:32:58 +02:00
Daniel Fabian
4b7cb058d3
feat: Add support for inductive types to FromJson and ToJson handlers.
2021-06-05 13:53:10 +02:00
Daniel Fabian
06d1d3ae07
fix: Use UInt64 in deriving handler for Hashable.
2021-06-03 06:38:44 -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
96b5574f21
fix: use withoutProofIrrelevance at getFixedPrefix
2021-05-27 13:42:22 -07:00
Sebastian Ullrich
e918e39ed0
feat: have: remove unnecessary whitespace check and allow name- and type-less have
2021-05-25 14:25:14 +02:00
Leonardo de Moura
8b4cdcfddd
chore: fix mutable variable shadowing
2021-05-22 19:24:41 -07:00
Leonardo de Moura
b91e22af2b
fix: fixes #241
2021-05-22 19:10:07 -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
Sebastian Ullrich
93327e2324
fix: tactic state on {/·
2021-05-21 17:13:33 -07:00
Leonardo de Moura
73797841ba
feat: add findDiscrRefinementPath
...
The new method is going to be used to improve the discriminant
refinement procedure.
2021-05-20 21:54:48 -07:00
Leonardo de Moura
ed0b008f41
feat: add helper method Term.commitIfNoErrors?
2021-05-20 20:11:12 -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
9f3ddb0c43
fix: do not store solved goals in info tree
2021-05-20 15:17:54 -07:00
Sebastian Ullrich
a02c6fd3eb
chore: adapt stdlib & tests
2021-05-20 15:17:36 -07:00
Sebastian Ullrich
5b6051b15e
feat: revise have syntax
2021-05-20 15:17:36 -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
7c3101a51c
chore: produce more efficient/pp-able array code from quotations
2021-05-19 09:52:35 +02:00
Leonardo de Moura
b0f0a59729
refactor: elabDiscrs
...
Elaborate discriminants forward and infer match-type backwards.
2021-05-18 19:59:11 -07:00
Leonardo de Moura
8f5c39e2b8
chore: fix typo
2021-05-18 19:35:55 -07:00
Leonardo de Moura
96ed029308
refactor: use StateRefT at elabDiscrs
2021-05-18 19:29:25 -07:00
Leonardo de Moura
7cabbc814d
chore: cleanup before extending match
2021-05-18 18:29:23 -07:00
Leonardo de Moura
3b7bcdc449
feat: add endPos field to SourceInfo.original
...
We need an update stage0 before we use it.
2021-05-17 14:32:58 -07:00
Sebastian Ullrich
eb93894683
fix: do not abort elaboration on unclosed parenthesis
2021-05-17 22:29:06 +02:00
Leonardo de Moura
53b2ceea51
fix: missing withoutModifyingState at elabSimpConfig
2021-05-16 13:07:13 -07:00
Leonardo de Moura
50cf4216ac
feat: closes #440
2021-05-15 20:54:54 -07:00
Leonardo de Moura
37c1608ec3
feat: improve error handling in tactic blocks
2021-05-15 20:18:48 -07:00
Leonardo de Moura
dbe0d2d706
feat: automatically generate injectivity theorems
2021-05-14 18:05:04 -07:00
Leonardo de Moura
bf583f6065
chore: add placeholders for mkInjectiveTheorems
...
We can activate them yet since the method is failing when there are
heterogeous equalities in the injectivity theorem type.
2021-05-13 22:36:45 -07:00
Leonardo de Moura
6a45799244
feat: elaborate bootstrapping helper command gen_injective_theorems%
2021-05-13 22:27:05 -07:00
Leonardo de Moura
4db3ccaddb
feat: type ascription should disable implicit lambdas
2021-05-12 19:29:36 -07:00
Leonardo de Moura
c9db8619f1
fix: fixes #456
2021-05-11 21:07:21 -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
7d39a0d56c
chore: prepare to change first syntax
2021-05-10 17:05:31 -07:00
Leonardo de Moura
0e1f645b07
fix: fixes #450
2021-05-10 13:55:06 -07:00
Leonardo de Moura
e49dfccc2a
chore: remove dead variable
2021-05-10 13:41:55 -07:00
Leonardo de Moura
2a676b6dfb
fix: fixes #449
2021-05-10 13:10:59 -07:00
Leonardo de Moura
89373bd64f
fix: fixes #447
2021-05-08 19:04:12 -07:00
Sebastian Ullrich
05b12e2b61
chore: undo workaround
2021-05-07 16:09:42 +02:00
Sebastian Ullrich
088774536e
fix: syntax match: do not discard other patterns after splices
2021-05-07 16:08:10 +02:00
Leonardo de Moura
475f5fecaa
feat: improve error recovery at Tactic.elabTerm
2021-05-06 20:44:36 -07:00