Commit graph

26741 commits

Author SHA1 Message Date
Leonardo de Moura
0351c96831 feat: better error message for induction tactic on mutually inductives 2021-09-21 06:56:17 -07:00
Sebastian Ullrich
15109b5f23 chore: remove obsolete file 2021-09-21 15:54:16 +02:00
Leonardo de Moura
2cbf0ba8e9 test: add "parameters" that are fixed in all equations 2021-09-20 12:58:22 -07:00
Leonardo de Moura
06a741be5c feat: ensure equational theorem conditions occur after the main variables 2021-09-20 11:41:33 -07:00
Leonardo de Moura
5fe40fbccf refactor: add sortFVarIds to Meta/Basic.lean 2021-09-20 11:32:53 -07:00
Leonardo de Moura
41a58459d7 test: equational theorem generation 2021-09-20 11:12:42 -07:00
Sebastian Ullrich
0a6778d05f chore: silence clang warning when exporting Lean function declared in lean.h 2021-09-20 18:41:46 +02:00
Sebastian Ullrich
6eca75ddbd fix: include exported declarations in defining file 2021-09-20 18:41:46 +02:00
Sebastian Ullrich
b13d3e6ca5 fix: dllexport functions not already annotated in header 2021-09-20 18:41:46 +02:00
Sebastian Ullrich
60ffdd094c fix: annotate lean.h functions with LEAN_SHARED 2021-09-20 18:41:46 +02:00
Sebastian Ullrich
da516f5aa7 fix: write .c output file in binary mode for reproducibility 2021-09-20 18:41:46 +02:00
Sebastian Ullrich
23c3dc335b chore: avoid cmake -E env
It was calling into WSL bash on my machine...
2021-09-20 18:41:46 +02:00
Sebastian Ullrich
0fcc2a0fff chore: remove --export-all 2021-09-20 18:41:46 +02:00
Sebastian Ullrich
f5aa8ea4f5 chore: update stage0 2021-09-20 18:41:46 +02:00
Sebastian Ullrich
35ffae6f54 feat: Windows: explicitly export Lean functions only 2021-09-20 18:41:46 +02:00
Leonardo de Moura
1868cea536 fix: "stuck at universe contraint" issues 2021-09-20 07:22:14 -07:00
Leonardo de Moura
11cdc65820 chore: update stage0 2021-09-20 07:14:24 -07:00
Leonardo de Moura
9e980b2a78 fix: bug at decAux?
We are getting a few "stuck at universe constraint" errors after the
fix. We may need to add some kind of approximation in the future.
2021-09-20 07:12:57 -07:00
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
2395bb3b35 chore: update stage0 2021-09-19 15:19:12 -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
fe55205105 test: equational theorem test 2021-09-19 09:34:08 -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
0795243a5e chore: update stage0 2021-09-17 14:26:24 -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