Sebastian Ullrich
dd35db610b
feat: server: show final state after tactic combinator
...
No functional change yet because all our combinator have trailing
tactics whose info we prefer
2021-05-21 17:13:33 -07:00
Sebastian Ullrich
4d6c178a6a
refactor: server: actually detect EOF at goalsAt?
2021-05-21 17:13:33 -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
Leonardo de Moura
2646f134d5
chore: add MonadBacktrack instance for ExceptT
2021-05-20 19:24:28 -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
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
cd5dbc66ce
fix: isolate std streams for all commands in server mode
...
Fixes #475
2021-05-19 13:30:54 +02:00
Sebastian Ullrich
7c3101a51c
chore: produce more efficient/pp-able array code from quotations
2021-05-19 09:52:35 +02:00
Sebastian Ullrich
23f0c1051c
feat: improve ToString/Quote Name
2021-05-19 09:34:01 +02:00
Sebastian Ullrich
3dafe26c72
feat: delab Name.mkStr/Num
2021-05-19 09:21:52 +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
eae1f5412b
fix: bugs introduced in the previous commits
2021-05-17 15:00:51 -07:00
Leonardo de Moura
a3e09a983f
chore: remove leftovers
2021-05-17 14:47:04 -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
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
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
4b69193442
feat: generalize withPPInaccessibleNames
2021-05-15 18:58:06 -07:00
Leonardo de Moura
dbe0d2d706
feat: automatically generate injectivity theorems
2021-05-14 18:05:04 -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
Sebastian Ullrich
7ca2f70c2f
feat: Eq.rec delaborator
2021-05-14 18:36:59 +02:00
Sebastian Ullrich
3f9c015dd4
feat: pp.proofs & pp.proofs.withType
...
Resolves #210
2021-05-14 15:14:58 +02:00
Sebastian Ullrich
7ec262af66
feat: Eq.ndrec delaborator
2021-05-14 14:59:47 +02:00
Sebastian Ullrich
6a03e15a79
feat: watchdog: show message while worker is starting
2021-05-14 14:59:47 +02: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
71cd067e94
feat: add helper command
2021-05-13 22:10:35 -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