Gabriel Ebner
8e7e58fc38
feat: synchronous operations for Channel
2022-09-05 08:52:46 -07:00
Gabriel Ebner
c4d421b3de
feat: Channel
2022-09-05 08:52:46 -07:00
Gabriel Ebner
f7bae54b09
chore: resurrect Std.Queue
2022-09-05 08:52:46 -07:00
Mario Carneiro
ce3c0c0e6b
feat: add TR versions of Nat.{fold, any, all, repeat}
2022-08-31 17:52:59 -07:00
Leonardo de Moura
b6f0bdc542
chore: add Array.mapMono
2022-08-30 11:45:05 -07:00
Leonardo de Moura
4f5a014170
feat: add Array.mapMonoM
2022-08-28 08:55:35 -07:00
E.W.Ayers
4ea4365354
doc: various String docstrings
2022-08-26 20:49:57 -07:00
E.W.Ayers
3aeb3db3b5
doc: Char/Basic.lean
2022-08-26 20:49:57 -07:00
E.W.Ayers
152d441a4c
doc: note that Float.beq is not refl
2022-08-26 20:49:57 -07:00
Fynn Schmitt-Ulms
064ab16791
feat: Float.abs function ( #1514 )
2022-08-25 18:45:46 -07:00
pcpthm
bc9c14a080
fix: remove duplicate OfNat Int instance
2022-08-25 11:57:13 -07:00
E.W.Ayers
d543867241
doc: fix typos
2022-08-16 08:31:58 -07:00
E.W.Ayers
ff5b02622c
doc: Format
2022-08-16 08:31:58 -07:00
E.W.Ayers
2e99e8c22d
feat: Float ↔ Json
2022-08-16 08:01:23 -07:00
Mario Carneiro
9de477ecf9
feat: add more float functions
2022-08-12 13:12:59 -07:00
Leonardo de Moura
fdaae20594
chore: remove workaround
2022-08-04 21:29:31 -07:00
Leonardo de Moura
55bb8e905a
chore: binderIdent normalization
...
fixes #1411
2022-08-04 21:10:02 -07:00
Leonardo de Moura
e9bcc779fe
feat: add Array.mapM'
2022-08-03 11:18:19 -07:00
Leonardo de Moura
5df588cbbf
chore: remove unnecessary annotations
2022-08-02 05:42:53 -07:00
Leonardo de Moura
8781203372
chore: rename misleading function
...
`charToHex` is an auxiliary function used at `Char.quoteCore` for
converting ASCII control characters into `\x` notation.
Its name was misleading.
Closes #1404
2022-08-01 13:21:03 -07:00
Leonardo de Moura
0156b59ef1
chore: enforce naming convention
2022-08-01 09:58:11 -07:00
Mario Carneiro
25aea1b723
doc: document all the tactics
2022-08-01 08:08:03 -07:00
Leonardo de Moura
eafd2a88ce
chore: simplify Prelude.lean and Core.lean using elabAsElim
2022-07-29 18:13:56 -07:00
Sebastian Ullrich
f1f0f60768
fix: linter warnings
2022-07-29 10:31:19 -07:00
Leonardo de Moura
c46ef56ac7
perf: avoid blowup at deriving Repr
...
The fix is not perfect. I just avoided inlining in some builtin `Repr` instances.
The actual problem is at `ElimDeadBranches.lean`.
Closes #1365
2022-07-24 13:10:04 -07:00
Mario Carneiro
f6211b1a74
chore: convert doc/mod comments from /- to /--//-! ( #1354 )
2022-07-22 12:05:31 -07:00
Henrik Böving
8932878274
feat: Functor instance for List
2022-07-21 08:08:48 -07:00
Leonardo de Moura
c341d8432f
feat: remove leading spaces from docstrings
2022-07-18 22:18:15 -04:00
Gabriel Ebner
c100f45b77
feat: add simp lemmas and instances for LawfulBEq
2022-07-11 14:19:41 -07:00
Leonardo de Moura
2fcd406f99
chore: remove sorry
2022-07-10 20:04:06 -07:00
Leonardo de Moura
ee0735760a
feat: add instance : GetElem (List α) Nat α fun as i => i < as.length
2022-07-10 17:38:59 -07:00
Leonardo de Moura
475c7e18cd
chore: missing GetElem instances
2022-07-10 14:53:22 -07:00
Leonardo de Moura
4173a863d8
chore: cleanup
2022-07-10 09:43:12 -07:00
Leonardo de Moura
2f1b80721e
chore: avoid a[i]' h notation
2022-07-10 07:20:07 -07:00
Leonardo de Moura
aa52eebcdc
feat: add instance GetElem (Array α) USize α fun xs i => LT.lt i.toNat xs.size where
2022-07-09 16:18:29 -07:00
Leonardo de Moura
1caff852fb
chore: remove getOp functions
2022-07-09 16:09:28 -07:00
Leonardo de Moura
36ebccb822
chore: fix tests
2022-07-09 15:59:44 -07:00
Leonardo de Moura
e4b358a01e
refactor: prepare to elaborate a[i] notation using typeclasses
2022-07-09 15:24:22 -07:00
Leonardo de Moura
4c707d3b3c
feat: use binop% to elaborate %-applications
...
Motivation: make sure the behavior is consistent with other arithmetic
operators.
This commit also removes the instance
```
instance : HMod (Fin n) Nat (Fin n) where
hMod := Fin.modn
```
because we have a coercion from `Fin n` to `Nat`.
Thus, given `a : Fin n` and `b : Nat`, `a % b` is ambiguous.
2022-07-09 14:38:35 -07:00
Leonardo de Moura
757171db1f
feat: add String.get! and s[i]! notation for String
2022-07-03 14:59:44 -07:00
Leonardo de Moura
5e3a3a6c21
chore: remove notation a[i,h] for a[⟨i, h⟩]
2022-07-03 06:24:26 -07:00
Leonardo de Moura
54c60d4c2d
feat: a[i] and a[i]! notation for Subarrays
2022-07-02 15:54:34 -07:00
Leonardo de Moura
a2456c3a0f
feat: add notation a[i, h] for a[⟨i, h⟩]
2022-07-02 15:50:49 -07:00
Leonardo de Moura
3f3cd22366
feat: add Array.getOp! and Array.getOp?
...
Add warning when `Array.getOp` is used. TODO: replace `Array.getOp`
with safe version
2022-07-02 10:06:05 -07:00
Leonardo de Moura
e8935d996b
chore: String.get?, String.getOp?, and remove String.getOp
2022-07-02 09:59:04 -07:00
Leonardo de Moura
5294a39ec4
feat: add Float.ceil, Float.floor, and Float.round
2022-07-01 06:27:30 -07:00
Leonardo de Moura
34dc2572f3
fix: make sure OfScientific Float instance is never unfolded during type class resolution
...
This commit fixes issue reported at
https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/deterministic.20timeout/near/287654818
Type class resolution was diverging when trying to synthesize
```lean
HSub (optParam Float 0.0) (optParam Float 1.0) ?m.472
```
and Lean was diverging while unfolding
```lean
instance : OfScientific Float where
ofScientific m s e :=
if s then
let s := 64 - m.log2 -- ensure we have 64 bits of mantissa left after division
let m := (m <<< (3 * e + s)) / 5^e
Float.ofBinaryScientific m (-4 * e - s)
else
Float.ofBinaryScientific (m * 5^e) e
```
was being unfolded.
Anothe potential solution for the problem above is to erase the
`optParam` annotations before performing type class resolution.
2022-06-27 17:40:34 -07:00
Sebastian Ullrich
f90e4ae30c
feat: more TSyntax API & coercions
2022-06-27 22:37:02 +02:00
Leonardo de Moura
6ebae968a7
feat: use IO.getRandomBytes to initialize random seed
...
See https://github.com/leanprover/lean4-samples/pull/2
2022-06-27 13:01:20 -07:00
Sebastian Ullrich
5a0c3b8d80
fix: String.isNat
2022-06-25 18:42:08 +02:00