Leonardo de Moura
a8c3322ac8
doc: expand dependent pattern matching support for array literals
2020-03-13 06:39:13 -07:00
Leonardo de Moura
50acb88727
feat: add auxiliary function for matching array literals
2020-03-11 11:57:01 -07:00
Leonardo de Moura
9ad67b6535
chore: remove TODO's
2020-03-11 10:09:34 -07:00
Leonardo de Moura
923036a017
chore: indentation
2020-03-11 10:06:45 -07:00
Leonardo de Moura
357a708ed8
chore: avoid variable, enforce naming convention
...
Motivation: make it clear which definitions depend on `df : Def γ`.
2020-03-11 10:05:25 -07:00
Leonardo de Moura
ae4b18220d
chore: add a few comments
2020-03-11 10:00:52 -07:00
Leonardo de Moura
e08eda81d8
fix: builtin attribute description
2020-03-11 09:54:19 -07:00
Sebastian Ullrich
d460635e2f
refactor: factor out KeyedDeclsAttribute
2020-03-11 08:38:18 -07:00
Leonardo de Moura
970ee59fc6
feat: validate given alternatives
2020-03-09 15:39:48 -07:00
Leonardo de Moura
62cb4e7b55
fix: normalize
2020-03-09 15:10:56 -07:00
Leonardo de Moura
f6e534748f
fix: normalize
2020-03-09 15:10:41 -07:00
Leonardo de Moura
36a5738ba5
fix: cases does not need to provide all alternatives
2020-03-09 15:09:51 -07:00
Leonardo de Moura
7393013d8a
feat: use injection to complete cases
2020-03-09 14:48:11 -07:00
Leonardo de Moura
cfbfcf92d6
feat: convert heterogeneous equalities
2020-03-08 18:27:21 -07:00
Leonardo de Moura
7eb6381f68
feat: throw error if unnecessary identifiers are provided
2020-03-08 18:02:20 -07:00
Leonardo de Moura
7cf53b649b
fix: nat literals are constructor applications
2020-03-08 17:44:53 -07:00
Leonardo de Moura
21353d07d5
fix: unassigned universe metavariables should not block instantiation of delayed assignment
2020-03-08 17:31:07 -07:00
Leonardo de Moura
3b84507888
fix: expand show and have using let!
...
Motivation: expected elaboration order is preserved: first type, then
value, and then body.
Motivation: expected type is not lost when elaborating the body.
2020-03-08 16:14:11 -07:00
Leonardo de Moura
354bc450e6
feat: elaborate let!
2020-03-08 16:02:00 -07:00
Leonardo de Moura
d4d4e199bc
chore: remove dead code
2020-03-08 15:52:55 -07:00
Leonardo de Moura
de6fda9b37
feat: add let! notation
...
`let x := v; t` is elaborated into `(fun x => t) v`
2020-03-08 15:49:13 -07:00
Leonardo de Moura
783ca47d1f
fix: typo
2020-03-08 12:22:00 -07:00
Leonardo de Moura
502758b09c
fix: allow universe **level** metavariables
2020-03-08 11:33:35 -07:00
Leonardo de Moura
adce6df1a1
fead: add evalInjection
2020-03-08 11:31:43 -07:00
Leonardo de Moura
cbf7a661df
feat: add elabAsFVar
2020-03-08 11:31:18 -07:00
Leonardo de Moura
74908bb9c7
fix: typo
2020-03-08 11:31:05 -07:00
Leonardo de Moura
a708c5d134
feat: injection tactic notation
2020-03-08 10:34:39 -07:00
Leonardo de Moura
5ea1160e86
feat: add injection tactic
2020-03-08 10:34:31 -07:00
Leonardo de Moura
c493ac1e1e
feat: injectionCore tactic
2020-03-08 10:21:40 -07:00
Leonardo de Moura
5770edbffd
feat: workaround for the constant approximation issue
...
@Kha It seems to cover all the scenarios we discussed earlier today.
2020-03-06 16:47:02 -08:00
Leonardo de Moura
5ffde62343
fix: check runTactics
2020-03-06 15:39:53 -08:00
Leonardo de Moura
8db309a079
feat: remove hack
...
We can't solve
```
```
anymore, but the hack was unstable. For example, it is weird that the
one above could be solved, but the following failed.
```
```
The difference is that the types in the first example were atomic
`Unit` and `Bool`, but not in the second.
2020-03-06 13:43:19 -08:00
Leonardo de Moura
3c5d2d4269
refactor: cleanup
...
closes #112
Previous two commits contributed too.
2020-03-06 13:43:19 -08:00
Leonardo de Moura
bce4912505
fix: remove bad condition
...
Recall that `processAssignmentFOApprox` will unfold `v` if possible.
2020-03-06 13:43:19 -08:00
Leonardo de Moura
482e078b92
chore: minor cleanup
2020-03-06 13:43:19 -08:00
Leonardo de Moura
8b5d75a2dd
chore: missing space
2020-03-05 18:44:33 -08:00
Leonardo de Moura
35000ff4cd
feat: add mkNoConfusion
2020-03-05 18:44:33 -08:00
Leonardo de Moura
414f674bb6
feat: skip, subst and HEq => Eq transitions
2020-03-05 18:44:33 -08:00
Leonardo de Moura
d9fd9bb1b3
feat: add mkEqOfHEq
2020-03-05 18:44:33 -08:00
Leonardo de Moura
4eaee1147b
feat: unifyEqs skeleton
2020-03-05 18:44:33 -08:00
Leonardo de Moura
6fb526ee00
feat: add elimAuxIndices
2020-03-05 18:44:33 -08:00
Leonardo de Moura
8d7ed8a9b8
refactor: FVarSubst
2020-03-05 18:44:33 -08:00
Leonardo de Moura
2f60e82049
fix: isHeadBetaTarget
2020-03-05 18:44:33 -08:00
Leonardo de Moura
74c9d54362
feat: simple case
2020-03-05 18:44:33 -08:00
Leonardo de Moura
83383b505f
chore: auxiliary functions
2020-03-05 18:44:33 -08:00
Leonardo de Moura
b5ec4ef2bd
feat: add evalCases
2020-03-05 18:44:33 -08:00
Leonardo de Moura
9626ceda09
fix: eta expansion before lazy delta
2020-03-05 18:44:33 -08:00
Leonardo de Moura
4400c82c4d
feat: add cases tactic syntax
2020-03-04 19:00:37 -08:00
Leonardo de Moura
dfa392fa17
feat: add generalizeIndices
...
Helper tactic for `cases`
2020-03-04 16:27:01 -08:00
Leonardo de Moura
21ca370961
feat: add cases tactic skeleton
2020-03-02 17:55:56 -08:00