Mario Carneiro
e41cd310e9
fix: String.splitOn bug ( #3832 )
...
Fixes #3829 . As reported on Zulip (both
[recently](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/current.20definition.20of.20.60String.2EsplitOn.60.20is.20incorrect/near/430930535 )
and [a year
ago](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/should.20we.20redefine.20.60String.2EsplitOnAux.60.3F/near/365899332 )),
`String.splitOn` has a bug when dealing with separators of more than one
character (which are luckily rare). The code change here is very small,
replacing a `i` with `i - j`, but it makes termination more complex so
that's where the rest of the line count goes.
2024-04-04 09:30:53 +00:00
Scott Morrison
94d6286e5a
chore: reorganising to reduce imports ( #3790 )
...
[Before](https://github.com/leanprover/lean4/files/14772220/oi.pdf ) and
[after](https://github.com/leanprover/lean4/files/14772226/oi2.pdf ).
This gets `ByteArray`, `String.Extra`, `ToString.Macro` and `RCases` out
of the imports of `omega`. I'd hoped to get `Array.Subarray` too, but
it's tangled up in the list literal syntax. Further progress could come
from make `split` use available `Decidable` instances, so we could pull
out `Classical` (and possibly some of `PropLemmas`).
2024-03-27 11:15:01 +00:00
Joachim Breitner
23d3ac4760
refactor: reduced unsed imports ( #3464 )
2024-02-22 18:12:57 +00:00
Joe Hendrix
29244f32f6
chore: upstream solve_by_elim ( #3408 )
...
This upstreams the solve_by_elim tactic from Std.
It is a key tactic needed by library_search.
2024-02-21 01:16:04 +00:00
Adrien Champion
a898aa18f3
chore: add documentation for the String.iterator API ( #3300 )
...
Adds documentation to the `String.Iterator` API, mentored by
@eric-wieser and @david-christiansen
---------
Co-authored-by: David Thrane Christiansen <david@davidchristiansen.dk>
2024-02-20 13:31:27 +00:00
Scott Morrison
904239ae61
feat: upstream some Syntax/Position helper functions used in code actions in Std ( #3260 )
...
Co-authored-by: David Thrane Christiansen <david@davidchristiansen.dk>
2024-02-09 10:50:19 +00:00
Joachim Breitner
368ead54b2
refactor: termination_by changes in stdlib
2024-01-10 17:27:35 +01:00
int-y1
ce4ae37c19
chore: fix more typos in comments
2023-10-08 14:37:34 -07:00
Joachim Breitner
b2d668c340
perf: Use flat ByteArrays in Trie ( #2529 )
2023-09-20 13:22:37 +02:00
Bulhwi Cha
367b38701f
refactor: simplify String.splitOnAux ( #2271 )
2023-07-19 11:50:27 +00:00
Mario Carneiro
bc841809c2
chore: remove intermediate
2023-06-05 15:50:11 -07:00
Mario Carneiro
2ae78f3c45
fix: tail-recursive String.foldr
2023-06-05 15:50:11 -07:00
Mario Carneiro
e68554b854
fix: use empty string instead of mk
2023-06-05 15:50:11 -07:00
Mario Carneiro
fd72fdf8f8
fix: incorrect utf8 in splitAux
2023-06-05 15:50:11 -07:00
Mario Carneiro
aa60791db3
feat: remove partial in Init.Data.String.Basic
2023-06-05 15:50:11 -07:00
Bulhwi Cha
8d0504b3b7
doc: add docstring to String.next'
2023-05-28 17:32:08 -07:00
Mario Carneiro
7f84bf07ba
fix: bug in reference implementation of String.get?
2023-05-15 08:35:20 -07:00
Mario Carneiro
c9e84a6ad6
fix: remove private from string defs
2023-05-05 12:09:38 -07:00
Leonardo de Moura
3e33fcc4f8
chore: use lean_string_utf8_next_fast
2022-11-09 12:06:37 -08:00
Leonardo de Moura
92c03c0050
perf: prepare do add String.next'
2022-11-09 12:00:31 -08:00
Leonardo de Moura
20eeb4202f
perf: fast String.get' without runtime bounds check
...
TODO: naming convention `String.get'` should be called `String.get`,
and we should rename the old `String.get`
2022-11-09 12:00:30 -08:00
Leonardo de Moura
5b1aac7b8f
fix: avoid nontermination on non-utf8 input
...
This is not a perfect solution, but ensures the non-termination does
not happen. The changes also make it easier to prove termination in
the future.
TODO: validate UTF8 input?
closes #1690
2022-10-06 17:45:21 -07:00
E.W.Ayers
4ea4365354
doc: various String docstrings
2022-08-26 20:49:57 -07:00
Leonardo de Moura
eafd2a88ce
chore: simplify Prelude.lean and Core.lean using elabAsElim
2022-07-29 18:13:56 -07:00
Leonardo de Moura
c341d8432f
feat: remove leading spaces from docstrings
2022-07-18 22:18:15 -04:00
Leonardo de Moura
1caff852fb
chore: remove getOp functions
2022-07-09 16:09:28 -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
e8935d996b
chore: String.get?, String.getOp?, and remove String.getOp
2022-07-02 09:59:04 -07:00
Sebastian Ullrich
5a0c3b8d80
fix: String.isNat
2022-06-25 18:42:08 +02:00
Leonardo de Moura
02c4e548df
feat: replace constant with opaque
2022-06-14 17:02:59 -07:00
Leonardo de Moura
041827bed5
chore: unused variables
2022-06-07 17:54:10 -07:00
Sebastian Ullrich
ae7b895f7a
refactor: unname some unused variables
2022-06-07 16:37:45 -07:00
Leonardo de Moura
cae59c6916
chore: remove staging workarounds
2022-04-26 08:23:43 -07:00
Leonardo de Moura
6af1da450e
feat: disable only eta for classes during TC resolution
...
closes #1123
2022-04-26 08:20:39 -07:00
Leonardo de Moura
e3dcce5320
chore: remove temporary workarounds
2022-04-09 12:13:37 -07:00
Leonardo de Moura
628e33bf8a
feat: activate new rfl tactic implementation
2022-04-09 12:01:56 -07:00
Leonardo de Moura
87bb299f08
feat: add Iterator.atEnd
2022-03-20 11:40:46 -07:00
Leonardo de Moura
3862e7867b
refactor: make String.Pos opaque
...
TODO: this refactoring exposed bugs in `FuzzyMatching` and `Lake`
closes #410
2022-03-20 10:47:13 -07:00
Leonardo de Moura
4b374d4441
fix: Nat/Div.lean, add decreasing_with combinator, and rename decreasing_tactic_trivial
2022-03-19 09:40:10 -07:00
Leonardo de Moura
9722aeaf32
feat: use String.Iterator.sizeOf_next_lt in the builtin decreasing_tactic
2022-03-19 09:04:40 -07:00
Leonardo de Moura
9727387129
feat: helper theorem for proving termination of simple String traversal functions
2022-03-19 07:37:59 -07:00
Leonardo de Moura
64bd82dddd
feat: custom SizeOf instance for String.Iterator
2022-03-19 07:21:17 -07:00
Leonardo de Moura
c6dae18787
chore: add helper theorems
2022-03-14 16:24:05 -07:00
Leonardo de Moura
40f608bfbd
chore: cleanup String.extract reference implementation
2022-03-14 16:23:13 -07:00
Leonardo de Moura
bac91b9b5b
chore: remove arbitrary
2022-01-15 12:14:27 -08:00
Gabriel Ebner
45bcef5dab
refactor: server: use String.firstDiffPos to find changes
...
This is necessary so that we do not reprocess the whole file if
incremental sync is disabled.
2021-12-14 11:55:34 -08:00
Sebastian Ullrich
978e94272c
feat: String.replace
2021-11-18 09:42:35 +01:00
Wojciech Nawrocki
bc8027cdc6
perf: speed up String.intercalate
2021-08-24 08:57:41 -07:00
Wojciech Nawrocki
caa8f7f7b2
chore: expose Substring.prev/next
2021-07-19 09:55:37 +02:00
Wojciech Nawrocki
b2d712a766
fix: Substring.splitOn
2021-07-19 09:55:37 +02:00