Commit graph

3138 commits

Author SHA1 Message Date
Leonardo de Moura
93f3c98780 test: add partial/unsafe tests 2021-01-01 18:46:12 -08:00
Leonardo de Moura
e517d72bee feat: simpForall 2021-01-01 17:24:56 -08:00
Leonardo de Moura
244b72befd feat: simpArrow 2021-01-01 17:15:15 -08:00
Leonardo de Moura
15c052d44a feat: basic simpLet 2021-01-01 15:54:29 -08:00
Leonardo de Moura
493d089878 feat: add support for simp { contextual := true } 2021-01-01 15:39:41 -08:00
Leonardo de Moura
e742dd1348 feat: allow user to set Simp.Config at simp 2021-01-01 15:12:18 -08:00
Leonardo de Moura
ac394e4fdf fix: simp at hypotheses and using hypotheses 2021-01-01 12:05:38 -08:00
Leonardo de Moura
ce09e795b9 feat: finalizeProof at rewrite step 2021-01-01 11:33:34 -08:00
Leonardo de Moura
3a369938c8 feat: simpLambda 2021-01-01 09:52:01 -08:00
Leonardo de Moura
b756562d4a feat: simp beta/proj/recursor/matcher 2021-01-01 08:29:21 -08:00
Leonardo de Moura
90428cc09b feat: expand let-decls at decide! 2020-12-31 09:47:05 -08:00
Leonardo de Moura
a32c45a515 feat: simp infrastructure 2020-12-30 18:00:04 -08:00
Leonardo de Moura
34f6f8ef5d feat: pre/post simp lemmas 2020-12-30 13:46:14 -08:00
Leonardo de Moura
03cc69f1db feat: track permutation simp lemmas 2020-12-30 13:46:14 -08:00
Leonardo de Moura
eba3983658 feat: use binrel! gadget to define >, <, ... notations
It has better support for applying coercions.
2020-12-29 16:53:10 -08:00
Leonardo de Moura
51e2db9850 feat: elaborate binrel! macro 2020-12-29 16:37:43 -08:00
Leonardo de Moura
479da7b914 feat: elaborate noindex! annotation 2020-12-28 17:49:54 -08:00
Leonardo de Moura
7165d50c93 feat: simp lemmas of the form not p 2020-12-28 17:03:32 -08:00
Leonardo de Moura
5a772e58d3 test: simp extension 2020-12-28 16:52:15 -08:00
Leonardo de Moura
4f4c8f45cd chore: fix tests 2020-12-28 16:27:38 -08:00
Leonardo de Moura
19a3f8e5e5 chore: fix typo 2020-12-28 09:01:23 -08:00
Sebastian Ullrich
837d6a1529 chore: fix test 2020-12-26 21:12:51 +01:00
Leonardo de Moura
4450b8567d fix: sigma notation precedence 2020-12-26 09:35:40 -08:00
Leonardo de Moura
edb51b8977 test: implicit lambdas in action 2020-12-23 10:24:00 -08:00
Leonardo de Moura
e74ba14f4c feat: modify structSimpleBinder parser
@Kha It felt odd that we can write
```
   map f x := ...
```
in instances, but we had to write
```
   map (f x) := ...
```
when setting the field default value in a class.
2020-12-23 08:23:14 -08:00
Leonardo de Moura
7720b843bb feat: allow users to use binders when setting default value for parent fields 2020-12-23 08:12:29 -08:00
Leonardo de Moura
800b4af15d test: indentation 2020-12-22 14:53:03 -08:00
Leonardo de Moura
839017fdae feat: add macro tactical solve 2020-12-22 14:36:20 -08:00
Leonardo de Moura
832c7412d6 feat: add first tactical
@Kha It has a few advantages over `<or>` (`<|>`).
- It is not an infix operator.
- It takes tactic sequences instead of tactics as arguments

For example, we can write
```
  first
    | apply h1; assumption
    | exact y; exact h3; assumption
```
or
```
first apply h1; assumption | exact y; exact h3; assumption
```
instead of
```
(apply h1; assumption) <|> (exact y; exact h3; assumption)
```
2020-12-22 14:10:07 -08:00
Leonardo de Moura
69d83ecb86 chore: make sure term and tactic parsers have disjoint infix operators 2020-12-22 14:10:07 -08:00
Leonardo de Moura
18aee9de30 fix: precedence issues at tactic DSL 2020-12-22 14:10:06 -08:00
Leonardo de Moura
289ed6485d feat: eval allGoals 2020-12-22 09:52:54 -08:00
Leonardo de Moura
f638269a71 fix: name resolution at syntax command
This commit also cleans up `toParserDescr`+`toParserDescrAux`.
2020-12-22 08:40:00 -08:00
Leonardo de Moura
1d5df4f28b test: matrix notation example
- Heterogeneous `*` for matrix and scalar multiplication
- Homogeneous `+` for matrix addition
- Whitespace sensitive `x[i, j]` notation
2020-12-21 16:40:52 -08:00
Leonardo de Moura
4fc06bfcca feat: add optional (priority := <prio>) to instance command 2020-12-21 10:02:12 -08:00
Leonardo de Moura
43284cc5fa feat: improve notation for setting parser names and priorities 2020-12-21 09:11:12 -08:00
Sebastian Ullrich
756d7643f0 chore: rename syntaxMaxDepth option for consistency and discoverability
/cc @leodemoura
2020-12-21 16:25:01 +01:00
Leonardo de Moura
340cade575 fix: bug at specialize.cpp 2020-12-20 17:48:46 -08:00
Sebastian Ullrich
90f747e346 fix: don't change antiquotations semantics in do if 2020-12-20 17:51:37 +01:00
Sebastian Ullrich
eeb0cad29e feat: if let
/cc @leodemoura
2020-12-20 16:46:03 +01:00
Leonardo de Moura
91f0e29285 feat: parallel for 2020-12-19 20:01:04 -08:00
Leonardo de Moura
230a5aca7e test: mutual deriving BEq test 2020-12-18 12:36:16 -08:00
Leonardo de Moura
92f0afa424 chore: fix tests 2020-12-18 11:21:30 -08:00
Leonardo de Moura
15335efae2 refactor: move Format to Init package
We are going to use it to define `Repr` class.
2020-12-18 11:21:30 -08:00
Leonardo de Moura
995e11b64e chore: cleanup 2020-12-17 18:05:53 -08:00
Leonardo de Moura
dee3c2c8d8 feat: improve deriving DecidableEq 2020-12-17 17:30:23 -08:00
Leonardo de Moura
c428e4feaa fix: bug at injection 2020-12-17 17:30:23 -08:00
Leonardo de Moura
87b6385bea feat: add deriving DecidableEq 2020-12-17 17:30:23 -08:00
Leonardo de Moura
a4901f131b feat: mark propDecidable as a scoped instance 2020-12-16 10:45:49 -08:00
Leonardo de Moura
8b51f6279e chore: fix tests 2020-12-16 10:45:27 -08:00