Leonardo de Moura
f60721bfbd
feat: add some low level helper APIs ( #4778 )
2024-07-17 20:12:05 +00:00
Joe Hendrix
0963f3476c
chore: extend GetElem with getElem! and getElem? ( #3694 )
...
This makes changes to the `GetElem` class so that it does not lead to
unnecessary overhead in container like `RBMap`.
The changes are to:
1. Make `getElem?` and `getElem!` part of the `GetElem` class so they
can be overridden in instances.
2. Introduce a `LawfulGetElem` class that contains correctness theorems
for `getElem?` and `getElem!` using the original definitions.
3. Reorganize definitions (e.g, by moving `GetElem` out of
`Init.Prelude`) so that the `GetElem` changes are feasible.
4. Provide `LawfulGetElem` instances to complement all existing
`GetElem` instances in Lean core.
To reduce the size of the PR, this doesn't do the work of providing new
`GetElem` instances for `RBMap`, `HashMap` etc. That will be done in a
separate PR (#3688 ) that depends on this.
---------
Co-authored-by: Mac Malone <tydeu@hatpress.net>
2024-03-28 01:42:00 +00:00
Sebastian Ullrich
2f35651308
perf: leak environments not freed before process exit
2023-11-14 17:33:04 +01:00
Sebastian Ullrich
62dc8d7308
feat: Runtime.markMultiThreaded/Persistent
2023-11-14 17:33:04 +01:00
Mario Carneiro
583e023314
chore: snake-case attributes (part 2)
2022-10-19 09:28:08 -07:00
Leonardo de Moura
81abf49196
chore: avoid many copies of the panic message "index out of bounds"
2022-10-13 18:42:52 -07:00
Sebastian Ullrich
af7f5aa2a0
feat: dbgStackTrace
2022-08-26 20:52:51 -07:00
E.W.Ayers
f52a1bd37c
doc: JSON-RPC
2022-08-26 20:49:57 -07:00
E.W.Ayers
5611620d3a
dov: explanation of why pointers aren't sound.
2022-08-26 20:49:57 -07:00
Leonardo de Moura
16d6f13eed
chore: fix warnings
2022-08-04 16:05:09 -07:00
Leonardo de Moura
5df588cbbf
chore: remove unnecessary annotations
2022-08-02 05:42:53 -07:00
Leonardo de Moura
0156b59ef1
chore: enforce naming convention
2022-08-01 09:58:11 -07:00
Mario Carneiro
f6211b1a74
chore: convert doc/mod comments from /- to /--//-! ( #1354 )
2022-07-22 12:05:31 -07:00
Gabriel Ebner
eda3eae18e
perf: implement Expr.update* in Lean
2022-07-19 05:55:13 -07:00
Leonardo de Moura
881589fc46
chore: remove parser workarounds
2022-07-09 16:42:39 -07:00
Leonardo de Moura
e4b358a01e
refactor: prepare to elaborate a[i] notation using typeclasses
2022-07-09 15:24:22 -07:00
Sebastian Ullrich
897a5de6ac
chore: revert some questionable signature changes
2022-06-07 16:37:45 -07:00
Sebastian Ullrich
ae7b895f7a
refactor: unname some unused variables
2022-06-07 16:37:45 -07:00
Leonardo de Moura
a821dcbff2
chore: enforce naming convention for theorems
...
see issue #402
fix: `ElabTerm.lean`
2021-08-07 12:48:38 -07:00
Leonardo de Moura
f4a7ffd8c8
chore: fix codebase and tests
2021-06-29 17:14:52 -07:00
Leonardo de Moura
cca3bad0bb
feat: add Prelude.lean
...
`Prelude.lean` has no dependencies, and
at the end of `Prelude`, the `syntax` and `macro` commands are operational.
2020-11-10 18:08:18 -08:00
Leonardo de Moura
7f364feeb5
chore: add Classical.lean, Equivalence, and cleanup
2020-11-10 14:55:34 -08:00
Leonardo de Moura
10c32fcf94
chore: HasToString => ToString
2020-10-27 16:11:48 -07:00
Leonardo de Moura
7e244686e9
chore: remove old notation
2020-10-26 09:16:51 -07:00
Leonardo de Moura
13c2a8ff51
chore: remove #lang lean4 header
2020-10-25 09:54:07 -07:00
Leonardo de Moura
7030dc91f2
chore: move to new frontend
2020-10-23 12:50:03 -07:00
Leonardo de Moura
749e2063cf
feat: add interpolated string for toString
2020-10-09 14:38:24 -07:00
Leonardo de Moura
ba4fdce508
feat: expand helper macros
2020-09-10 14:25:07 -07:00
Sebastian Ullrich
0f7f49aa06
feat: dbgTraceVal
2020-08-06 09:26:48 -07:00
Leonardo de Moura
33a10130cf
chore: fix stdlib
2020-05-12 15:02:03 -07:00
Leonardo de Moura
6ad0c2cc18
feat: simplify unsafeCast
2020-03-14 13:10:56 -07:00
Leonardo de Moura
b379bca28b
chore: rename PtrEqResult.yes ==> PtrEqResult.yesEqual
2020-03-02 08:29:49 -08:00
Leonardo de Moura
0f8b59eed7
fix: typo Prop => Type
2020-02-29 11:22:17 -08:00
Leonardo de Moura
684554e979
feat: add PtrEqResult
2020-02-29 11:00:50 -08:00
Leonardo de Moura
94cfcbbefe
chore: withPtrEqSubsingleton ==> withPtrEqResult
2020-02-29 10:12:06 -08:00
Leonardo de Moura
d511ddfa9e
feat: add SemiDeciable and withPtrEqSubsingleton
2020-02-29 09:50:31 -08:00
Leonardo de Moura
cca90b5f9f
chore: simplify withPtrEqDecEq
2020-02-27 11:45:02 -08:00
Leonardo de Moura
1c8baa0198
feat: add withPtrEqDecEq (version of withPtrEq for implementing decidable equality)
...
cc @dselsam
2020-02-15 16:12:09 -08:00
Leonardo de Moura
3ebb4e76ee
feat: more general withPtrEq
2020-02-15 15:53:30 -08:00
Leonardo de Moura
eacff1a448
feat: implement withPtrEq and withPtrAddr
2020-02-04 17:48:11 -08:00
Leonardo de Moura
81e363b13e
feat: add withPtrEq and withPtrAddr
2020-01-29 04:31:10 -08:00
Sebastian Ullrich
3b37737c8a
fix: leaks
2019-12-22 15:09:19 -08:00
Leonardo de Moura
74f48414f1
feat: add option --exitOnPanic (short version -e)
...
Lean does not exit on panic anymore.
The old behavior (`std::exit(1)`) produces a horrible debugging
experience for the elaborator since all trace messages are lost.
The new command line option restores the old behavior.
cc @Kha @dselsam
2019-12-19 09:24:37 -08:00
Leonardo de Moura
c445199747
chore: library/Init ==> src/Init
...
cc @Kha @dselsam @cipher1024
2019-11-22 06:06:05 -08:00