Sebastian Ullrich
585fba69e8
refactor: remove redundancy from common register_parser_alias case
...
/cc @leodemoura
2021-09-20 13:20:23 +02:00
Sebastian Ullrich
83c2e8bf75
feat: expose many(1)Indent as parser aliases
2021-09-20 13:20:23 +02:00
Leonardo de Moura
f2a418a7ae
chore: smartUnfolding cleanup
...
We remove dead code, update comments, and add new tests
See #445
2021-09-19 15:29:11 -07:00
Leonardo de Moura
5b0a1c2b2f
feat: smart unfolding support for nested match-expressions
...
See #445
2021-09-19 15:17:56 -07:00
Leonardo de Moura
35d9589401
feat: add MonadControl m (OptionT m)
2021-09-19 14:20:26 -07:00
Leonardo de Moura
82f3042fa4
fix: equational theorem generation for structural recursion
2021-09-19 08:48:40 -07:00
Leonardo de Moura
233a262c03
feat: improve whnfReducibleLHS?
2021-09-19 08:33:51 -07:00
Leonardo de Moura
35c7081377
feat: improve casesOnStuckLHS
2021-09-19 08:28:10 -07:00
Leonardo de Moura
c2d33a1a58
fix: bug at addSmartUnfoldingDef
...
The approach using `matcherBelowDep : NameSet` was not correct because
we "reuse" matcher-declarations. For example, in the definition
```
def f : Nat → Bool
| 0 => true
| n + 1 => (match n with
| 0 => true
| _ + 1 => true) && f n
```
we have to `match`-expressions but they can be compiled the same
matcher `f.match_1`. Thus, the set `matcherBelowDep` would contain
`f.match_1` since the first occurence refined the `Nat.below` argument
at `mkBRecOn`. Thus, `addSmartUnfoldingDef` was incorrectly assuming the second
`match` was refined too.
We fixed this issue by simulating `mkBRecOn` behavior.
fixes #445
2021-09-18 19:15:38 -07:00
Leonardo de Moura
e8cd32ff24
chore: add mkBelowName
2021-09-18 18:37:29 -07:00
Leonardo de Moura
2775298fef
feat: add applyMatchSplitter
...
It applies the match splitter without using simplification theorems
2021-09-18 16:30:47 -07:00
Leonardo de Moura
c795a75045
feat: modify approach for generating equational theorems
2021-09-18 15:58:31 -07:00
Leonardo de Moura
fe7b750bce
fix: fixes #679
2021-09-18 15:34:29 -07:00
Leonardo de Moura
fc1ec438b8
fix: Repr Name instance
2021-09-18 15:29:32 -07:00
Leonardo de Moura
1ce65672ba
chore: modify strategy for constructing equational theorems
2021-09-18 08:27:07 -07:00
Leonardo de Moura
07bd5ae2b8
chore: remove dead code
2021-09-18 07:36:14 -07:00
Leonardo de Moura
2a9ba9f795
fix: add support for hierachical names containing numerical parts
...
closes #677
2021-09-17 19:21:49 -07:00
Leonardo de Moura
d413aa1dc5
feat: generate proofs for structural (conditional) equality theorems
2021-09-17 18:57:39 -07:00
Leonardo de Moura
38090fa3c0
feat: improve casesOnStuckLHS
2021-09-17 18:48:45 -07:00
Leonardo de Moura
6fbb6c7215
feat: add delta?
2021-09-17 18:46:09 -07:00
Leonardo de Moura
1a0badac06
feat: generate conditional structural equation theorem types
...
TODO: proofs
2021-09-17 16:49:30 -07:00
Leonardo de Moura
6eff84a7bb
refactor: add generic mkBaseNameFor
2021-09-17 16:30:09 -07:00
Leonardo de Moura
70a4d2691f
chore: cleanup
2021-09-17 16:00:00 -07:00
Leonardo de Moura
06f554b94d
feat: add RBTree.toArray
2021-09-17 15:59:35 -07:00
Leonardo de Moura
da69b10056
chore: cleanup
2021-09-17 15:00:58 -07:00
Leonardo de Moura
6ffb3f91f0
feat: save information for generating structural equation theorems later
2021-09-17 14:20:28 -07:00
Leonardo de Moura
793d493df0
feat: equation theorem manager
2021-09-17 14:20:28 -07:00
Leonardo de Moura
42eba87325
feat: add simpMatchTarget
2021-09-17 14:20:28 -07:00
Leonardo de Moura
94ede53940
chore: use doc string
2021-09-17 14:20:28 -07:00
Leonardo de Moura
dc32a827b3
fix: missing instantiateMVars
2021-09-17 14:20:28 -07:00
Leonardo de Moura
633dc9829e
feat: add withOptions
2021-09-17 14:20:28 -07:00
Leonardo de Moura
d378df47d7
fix: fixes #633
2021-09-16 14:11:34 -07:00
Leonardo de Moura
a823ebdbe0
chore: make it clear how it is being parsed
...
We are planning to change the `<|>` precedence here.
2021-09-16 13:41:01 -07:00
Sebastian Ullrich
a7b044b80b
chore: CI: build macOS without nix-shell
...
GH Actions already comes with most dependencies and it seems to avoid an
issue with Zig libc++ compilation (because of OSX_DEPLOYMENT_TARGET?)
2021-09-16 21:33:56 +02:00
Leonardo de Moura
0a898965a3
chore: use snake_case for user-facing tactic names
2021-09-16 10:23:12 -07:00
Leonardo de Moura
c2a5e37c60
feat: simp discharger
2021-09-16 10:11:27 -07:00
Leonardo de Moura
fd8fb3cf9e
chore: prepare to change simp syntax
2021-09-16 07:41:04 -07:00
Sebastian Ullrich
130eac1b77
chore: reintroduce lean.cpp in separate commit so Git doesn't freak out
2021-09-16 07:03:37 -07:00
Sebastian Ullrich
b3bb2bac97
chore: move all C++ code into libleanshared, use C stub for main
...
Avoids any issues with cross-lib C++
2021-09-16 07:03:37 -07:00
Sebastian Ullrich
08c2c31fcd
feat: IO.FS.removeDir(All)
2021-09-16 07:01:37 -07:00
Sebastian Ullrich
cd7968ba6a
chore: IO.FS.removeFile: include path in error messages
2021-09-16 07:01:37 -07:00
Chris Lovett
d32b4ffb24
fix: make sure logs folder exists
2021-09-16 09:46:10 +02:00
Daniel Selsam
8d370f151f
fix: space before 'at' in location
2021-09-15 18:41:26 +02:00
Leonardo de Moura
6fb2a2b47b
chore: remove ≅ notation for HEq
...
We don't really needed it here.
2021-09-15 08:06:32 -07:00
Leonardo de Moura
ae8989a8c6
feat: add mkAppOptM' and mkAppM'
2021-09-15 06:35:40 -07:00
Daniel Selsam
a35cbb5844
fix: pp.analyze skip all omitted instances
2021-09-15 09:41:16 +02:00
Daniel Selsam
664737def8
feat: trust subtype.mk by default
2021-09-15 09:41:16 +02:00
Daniel Selsam
7cdcb56c1d
feat: pp.analyze extend max heuristic to imax
2021-09-15 09:41:16 +02:00
Daniel Selsam
4646b36459
feat: pp.analyze no explicit holes by default
2021-09-15 09:41:16 +02:00
Leonardo de Moura
cbe5241663
chore: cleanup
2021-09-14 19:20:32 -07:00