Commit graph

47 commits

Author SHA1 Message Date
Joe Hendrix
1118931516
feat: add bitwise operations to reduceNat? and kernel (#3134)
This adds bitwise operations to reduceNat? and the kernel. It
incorporates some basic test cases to validate the correct operations
are associated.
2024-01-11 18:12:45 +00:00
Joe Hendrix
903493799d
fix: reduceNat? match terms with free or meta variables (#3139)
This removes checks in `Lean.Meta.reduceNat?` that caused it to fail on
terms it could handle because they contain meta variables in arguments.
This lead to those operations being reduced using their equational
definitions and slow performance on large patterns:

```
set_option profiler true
set_option profiler.threshold 1

def testMod (x:Nat) :=
  match x with
  | 128 % 1024 => true
  | _ => false
-- elaboration took 3.02ms

def testMul (x:Nat) :=
  match x with
  | 128 * 1 => true
  | _ => false
-- type checking took 11.1ms
-- compilation of testMul.match_1 took 313ms
-- compilation of testMul took 65.7ms
-- elaboration took 58.9ms
```

Performance is slower on `testMul` than `testMod` because `whnf` ends up
evaluateing `128 * 1` using Peano arithmetic while `128 % 1024` is able
to avoid that treatment since `128 < 1024`.
2024-01-05 18:08:26 +00:00
int-y1
ce4ae37c19 chore: fix more typos in comments 2023-10-08 14:37:34 -07:00
Mario Carneiro
a2ef6bd19e fix: malformed/misaligned markdown code fences 2022-07-20 11:12:42 +02:00
Leonardo de Moura
272dd5533f chore: style use · instead of . for lambda dot notation
We are considering removing `.` as an alternative for `·` in the
lambda dot notation (e.g., `(·+·)`).
Reasons:
- `.` is not a perfect replacement for `·` (e.g., `(·.insert ·)`)
- `.` is too overloaded: `(f.x)` and `(f .x)` and `(f . x)`. We want to keep the first two.
2022-03-11 07:49:03 -08:00
Sebastian Ullrich
a3a8d76e96 chore: move pp_options.cpp to Lean 2021-01-27 14:16:12 +01:00
Sebastian Ullrich
8a02dfec4f feat: subsume variables under variable
/cc @leodemoura
2021-01-22 14:36:05 +01:00
Leonardo de Moura
898a08a0c1 chore: avoid Has prefix in type classes
closes #203
2020-10-27 18:29:19 -07:00
Leonardo de Moura
10c32fcf94 chore: HasToString => ToString 2020-10-27 16:11:48 -07:00
Leonardo de Moura
db9e390b4d chore: remove new_frontend from tests 2020-10-25 09:16:38 -07:00
Leonardo de Moura
3d166f6400 chore: fix syntax
This is a set of examples that exposes problems with the old frontend
elaborator. These issues have been fixed in the new frontend.
2020-05-21 09:57:35 -07:00
Daniel Selsam
13721cdfe9 doc: elabissue for structure same-name error msg 2020-02-18 10:52:44 -08:00
Leonardo de Moura
7d7cd1a7c9 doc: document issue
cc @dselsam
2020-02-18 10:52:12 -08:00
Daniel Selsam
94e45f7b81 doc: elabissue for '<id>_main already defined' msg 2020-02-18 10:49:40 -08:00
Leonardo de Moura
36ea3fbaf7 doc: document issue
cc @dselsam
2020-02-18 10:49:04 -08:00
Leonardo de Moura
6900577723 doc: document issue
AFAICT, it has been solved in the new frontend. See new test.

cc @dselsam
2020-02-18 10:41:12 -08:00
Daniel Selsam
1981bbbc7c doc: elabissue for two improvable error messages 2020-02-18 10:34:24 -08:00
Leonardo de Moura
81d8b75dff doc: Lean3 structure instance bugs 2020-02-17 20:12:06 -08:00
Leonardo de Moura
d37eb896ef doc: performance issue
cc @dselsam
2020-02-10 14:40:48 -08:00
Daniel Selsam
4f21242ffa doc: another elabissue for equation compiler perf 2020-02-10 12:40:58 -08:00
Leonardo de Moura
772fa06461 doc: add workarounds, and describe what we need in the new equation compiler
@dselsam The good news is that the problem is fixable.
I included a workaround `mergeCongr3` for avoiding the overhead in the current system.
2020-02-05 11:46:35 -08:00
Daniel Selsam
707a1a7e8c doc: elabissue for equation compiler perf 2020-02-05 10:41:44 -08:00
Leonardo de Moura
f04f51a295 test: pattern confusion example
cc @dselsam
2019-12-19 13:36:22 -08:00
Leonardo de Moura
5247c3719b doc: document private keyword elaboration issues 2019-12-05 08:55:21 -08:00
Leonardo de Moura
963063dfee chore: disable tests for type class resolution prototype 2019-12-03 14:50:14 -08:00
Leonardo de Moura
352e568b15 doc: zmod example 2019-11-18 12:45:53 -08:00
Leonardo de Moura
ed43f4a901 doc: document problems with the variable and variables commands 2019-11-13 20:25:04 -08:00
Leonardo de Moura
5d9f3f6fba chore: add ambiguity comment 2019-11-08 08:28:31 -08:00
Daniel Selsam
19ec5cda13 doc: typeclass loop issue and suggestions 2019-11-08 08:28:26 -08:00
Daniel Selsam
3b6755dea1 doc: namespace A.B vs namespace A namespace B 2019-11-06 10:16:33 -08:00
Daniel Selsam
7cddeaa0d3 doc: tc triggers nested tc, potentially with tmp metavar leak 2019-11-06 10:15:05 -08:00
Leonardo de Moura
f8c5face56 chore: update 2019-11-02 12:12:27 -07:00
Daniel Selsam
5d4be4fd3c doc: elabissue for simple namespace issue 2019-10-31 21:08:12 -07:00
Leonardo de Moura
1933d70aae doc: explain why elaborator fails and propose alternative elaboration strategies
cc @dselsam @kha @rwbarton
2019-10-31 08:50:01 -07:00
Daniel Selsam
6cb4442349 doc: elabissue for overloads + list coercion 2019-10-31 08:04:00 -07:00
Sebastian Ullrich
b6d96dc0f4 doc: elabissue for underapplied proj notation 2019-10-28 18:07:22 -07:00
Leonardo de Moura
a768aa0d1c doc: add comment describing why examples fail
cc @dselsam
2019-10-28 18:06:07 -07:00
Daniel Selsam
90455e201f doc: elabissue for weird elab error 2019-10-28 17:59:48 -07:00
Daniel Selsam
20caac5cdf doc: elabissue for variable universe bug 2019-10-28 17:59:23 -07:00
Daniel Selsam
d8a3dfb63d doc: elabissue for bind with existential types 2019-10-21 22:28:14 -07:00
Daniel Selsam
5ce34b0b3c doc: elabissues from reid visit 2019-10-21 22:27:58 -07:00
Leonardo de Moura
1f8370c67d test: issue reported by Reid 2019-10-19 13:26:47 -07:00
Leonardo de Moura
104b4a1ce2 test: document another elab issue 2019-10-15 09:41:07 -07:00
Leonardo de Moura
0c3c5bf82f tests: add more issues 2019-10-15 07:47:09 -07:00
Sebastian Ullrich
90fc2b7d39 test: elab feature request: implicit lambda insertion 2019-10-08 17:51:45 +02:00
Daniel Selsam
ba06fd335b test: add new elab issue from @joehendrix 2019-10-03 17:23:53 -07:00
Leonardo de Moura
1ecb234a9f test(elabissues): document some of the known problems 2019-09-21 10:17:26 -07:00