Guillaume Allais
381441d849
[ base ] maximum is an upper bound
2022-06-14 16:07:37 +01:00
Thomas E. Hansen
268a3520f3
[ base ] Port most of List.Quantifiers to List1
...
This doesn't include `Interleaving` and `Split`.
2022-06-09 09:05:10 +02:00
Thomas E. Hansen
5da3bc7d7c
[ base ] Port List.Elem to List1
2022-06-09 09:05:10 +02:00
Denis Buzdalov
a766c628e9
[ base ] Add mapping functions to Data.Vect.Quantifiers
2022-05-27 09:03:28 +01:00
Denis Buzdalov
73608cb264
[ cleanup ] Clean up DecEq
implementations with biinjective functions
2022-05-20 11:50:46 +01:00
Denis Buzdalov
d3fa76052b
[ new ] Introduce a Biinjective
interface
2022-05-20 11:50:46 +01:00
Denis Buzdalov
a3542ad0cd
[ cleanup ] Make existing equality proofs a bit cleaner
2022-05-20 11:50:46 +01:00
Denis Buzdalov
4032ef2b85
[ base ] Implement equalities for inclusive-or type (These
)
2022-05-19 13:37:28 +01:00
Zoe Stafford
71351a6c88
Merge pull request #2476 from Z-snails/bits64-popcount
...
Fix `FiniteBits` for `Bits64`
2022-05-14 14:05:37 +01:00
Zoe Stafford
8a0d75dc6d
Fix FiniteBits
for Bits64
2022-05-14 13:12:16 +01:00
Joel Berkeley
bf87b623ef
add scanr
; scanr1
; unsnoc
for Vect
( #2471 )
...
* add `scanr` and `scanr1` for `Vect`
* add tests
* tests
* docstring
* typos
* add unsnoc
* simplify unsnoc
* docstring
* typos
2022-05-12 17:54:34 +01:00
Zoe Stafford
68bcacf3ec
[base] add missing node ffi functions ( #2427 )
2022-04-22 15:45:52 +01:00
Thomas E. Hansen
a644a85a57
[ base ] public export
quantifier functions
2022-04-04 13:24:12 +02:00
Thomas E. Hansen
dc02e4d822
[ refactor ] Put Vect quantifiers in their own namespaces
...
This makes the code in `Data.Vect.Quantifiers` consistent with the files
`Data.List.Quantifiers` and `Data.SnocList.Quantifiers`.
2022-04-04 13:24:12 +02:00
Denis Buzdalov
e8d3d788c1
[ base ] Add some more properties, functions and interface implementations ( #2361 )
2022-03-23 13:33:13 +00:00
Ohad Kammar
d08b827f49
Implement standard List operations for SnocLists ( #2364 )
...
Co-authored-by: Ohad Kammar <ohad.kammar@ed.ac.uk>
2022-03-23 11:14:30 +00:00
Denis Buzdalov
fc38afc144
[ base ] Some properties of List
and SnocList
( #2359 )
2022-03-18 08:40:37 +00:00
Joel Berkeley
fc45f7d888
[ base ] add insertAt
for List
( #2336 )
2022-03-17 18:23:47 +00:00
G. Allais
a973396567
[ base ] quantifiers for Snoclists ( #2349 )
2022-03-16 15:30:16 +00:00
G. Allais
fd02bf8b3e
[ fix #2303 ] remove quadratic unwords ( #2345 )
2022-03-07 18:34:06 +00:00
Robert Wright
6b367010ce
Inline SnocList foldl utility function
...
The scoping of the utility function meant that Idris treats `foldl f z (xs :< x)` and `f (foldl f z xs) x` as two different terms, making proving things about it difficult.
2022-03-07 11:46:43 +00:00
Joel Berkeley
0ab0ecb199
add replaceAt
for List
( #2335 )
2022-03-03 23:40:18 +00:00
G. Allais
1011cc6162
[ papers ] Tychonoff (Part I) ( #2332 )
2022-02-24 11:12:53 +00:00
Jan de Muijnck-Hughes
4ba3bb6670
[ fix ] Literate things ( #2312 )
...
Co-authored-by: G. Allais <guillaume.allais@ens-lyon.org>
2022-02-18 11:29:52 +00:00
CodingCellist
c5d96a10e7
[ base ] Split a list according to a decidable property ( #2302 )
2022-02-11 11:21:20 +00:00
Joel Berkeley
5abc01453d
add deleteAt for List ( #2317 )
2022-02-11 09:28:36 +00:00
Mathew Polzin
8208ed2590
[ new ] A couple of nearly trivial proofs about list length. ( #2311 )
2022-02-07 17:51:04 +00:00
Nick Drozd
2c9bf24d2f
[ libs ] Strengthen some totality checks ( #2304 )
2022-02-03 18:41:51 +00:00
Robert Wright
1776efa8a5
Allow Type-level String operations
2022-02-03 16:10:47 +00:00
madman-bob
0ee9632e45
[ refactor ] Abstract Prelude.elem to work with all Foldables ( #2294 )
2022-02-01 21:34:29 +00:00
Denis Buzdalov
b17e65fc82
[ base ] Generalise existing min-max semigroups and add monoid for Fin
( #2298 )
2022-02-01 21:24:49 +00:00
G. Allais
ec5afa5065
[ libs ] move propaganda out of contrib ( #2213 )
2022-01-25 12:25:55 +00:00
James Cook
e82600c4d6
[ opt ] transform rule making List.length tail-recursive. ( #2100 )
2022-01-24 16:12:29 +00:00
Robert Wright
d85016b64d
Add Fin modular arithmetic Num instance
2022-01-20 10:13:20 +00:00
Stefan Höck
ca5b1ba094
[ totality ] Data.String.words should be total ( #2262 )
2022-01-20 09:58:50 +00:00
Robert Wright
76d1936fad
Add Singleton type
2022-01-19 14:22:40 +00:00
Mathew Polzin
1b4811b1ed
[cleanup] Unhide string module ( #2230 )
...
* unhide string lines/unlines functions and clean up a bit.
* skip the extra newline now that unlines adds one at the end.
2022-01-06 10:34:15 +00:00
Denis Buzdalov
a09c5082c5
[ base ] Use Fin n
as index in Bits
( #2192 )
2021-12-16 18:26:52 +00:00
Balazs Komuves
3463adbc48
[ fix #2032 ] Slow typechecking on Int
operation when Data.Fin.fromInteger
is in scope ( #2189 )
2021-12-13 13:47:53 +00:00
André Videla
10b9685e4b
Injective interface and its implementations ( #2114 )
...
Co-authored-by: Nick Drozd <nicholasdrozd@gmail.com>
2021-11-26 10:55:17 +00:00
G. Allais
059f74ad0b
[ fix #1861 ] rewrite_impl is linear ( #2150 )
2021-11-25 17:07:05 +00:00
Nick Drozd
9e0676597d
Cut relation implicit args
2021-11-25 00:26:57 +00:00
Guillaume ALLAIS
a91fdae426
[ base ] generalise Data.List type signatures
2021-11-24 19:58:35 +00:00
Mathew Polzin
1576a578a0
[ cleanup ] Remove unused imports ( #2123 )
...
* contrib library unused import removal
* remove a few unused imports.
* another round of unused import removal
* another round of unused import deletion.
* another round of unused import deletion.
2021-11-18 16:47:36 +00:00
Thomas Dziedzic
c31cd9513f
make Data.List1.length public
2021-11-18 16:42:49 +00:00
Thomas Dziedzic
88f8f3df8e
implement Data.List1.length
2021-11-18 08:38:00 +00:00
Mathew Polzin
d2ce85ea05
Merge pull request #2096 from madman-bob/system-run
...
Add the `System` `run` function
2021-11-10 08:58:39 -08:00
Robert Wright
921bc24a2a
Add List singleton function
2021-11-05 16:08:54 +00:00
Robert Wright
ac716c1dc7
Add SnocList factConcat transformation
2021-11-05 11:59:17 +00:00
G. Allais
668c221474
[ re #2032 ] faster version of fromInteger ( #2090 )
2021-11-02 17:43:01 +00:00
Bertalan Kis
babf346a77
[base] add IsRight and IsLeft proofs to Data.Either
2021-11-01 11:50:05 +00:00
CodingCellist
20fe83de9a
[ doc ] Completely document the Data.List
module ( #2061 )
2021-10-26 17:16:06 +01:00
Denis Buzdalov
c340e0e713
[ cleanup ] Move left autos that are most likely to be passed explicitly
2021-10-25 13:17:03 +01:00
Mathew Polzin
f078d5f5dc
clean up some deprecations ( #2057 )
...
* deprecate Data.Nat.Order.decideLTE
* Add properties for LTE/GTE that produce the difference.
* remove deprecated function now that it is available in the base library.
* remove two deprecated lines.
* remove module deprecated since v0.4.0
* fix prelude reference to renamed primitive.
* finish removing Data.Num.Implementations
* remove deprecated dirEntry function.
* remove deprecated fastAppend. Update CHANGELOG.
* replace fastAppend in test case
* replace fastAppend uses in compiler.
* remove new properties that weren't actually very new.
2021-10-24 12:06:57 +01:00
Guillaume ALLAIS
2ee06e9db0
[ fix #2034 ] Productive cantor for Colist1
2021-10-21 16:01:02 +01:00
Denis Buzdalov
7833829c43
[ base ] Add couple of properties of either
function with mappings
2021-10-18 20:11:38 +01:00
Guillaume Allais
2ce4831010
[ base ] swap for these
2021-10-17 16:57:04 +01:00
Zoe Stafford
d4263441b7
[ new ] Some optimisations mainly involving Nat and Fin ( #1817 )
...
Co-authored-by: Guillaume ALLAIS <guillaume.allais@ens-lyon.org>
2021-10-07 19:21:32 +01:00
James Cook
971afa9f5d
Add a transform rule making (++) for List tail-recursive. ( #1888 )
2021-09-16 15:35:29 +01:00
Jan de Muijnck-Hughes
155989110b
[ base ] Indexing Vectors. ( #1892 )
2021-09-09 10:45:11 +01:00
Denis Buzdalov
d62e45d8d8
[ contrib ] Make sorted map be able to store dependently typed values
2021-09-02 10:57:19 +01:00
Mathew Polzin
ef91cc01c7
Add list difference to base Data.List module.
2021-08-31 13:21:43 +01:00
Joel Berkeley
078db21edf
Return a Vect from Stream take ( #1812 )
...
Co-authored-by: Guillaume ALLAIS <guillaume.allais@ens-lyon.org>
2021-08-30 16:00:20 +01:00
madman-bob
3e1f6aba56
Add copyFile to System.File ( #1797 )
...
Co-authored-by: Stiopa Koltsov <stepan.koltsov@gmail.com>
2021-08-30 15:31:37 +01:00
Denis Buzdalov
dd7d77d416
[ visibility ] Make Monad
of Vect
to the visible from outside
2021-08-13 18:59:54 +01:00
Denis Buzdalov
c29dc73c62
[ base ] Add semigroup and monoid instances for Vect
2021-08-13 18:59:54 +01:00
Denis Buzdalov
23bb381f0f
[ cleanup ] Small code cleanup, less mutual block and one \case
use
2021-08-12 12:38:06 +01:00
G. Allais
21c6f4fb79
[ breaking ] remove parsing of dangling binders ( #1711 )
...
* [ breaking ] remove parsing of dangling binders
It used to be the case that
```
ID : Type -> Type
ID a = a
test : ID (a : Type) -> a -> a
test = \ a, x => x
```
and
```
head : List $ a -> Maybe a
head [] = Nothing
head (x :: _) = Just x
```
were accepted but these are now rejected because:
* `ID (a : Type) -> a -> a` is parsed as `(ID (a : Type)) -> a -> a`
* `List $ a -> Maybe a` is parsed as `List (a -> Maybe a)`
Similarly if you want to use a lambda / rewrite / let expression as
part of the last argument of an application, the use of `$` or parens
is now mandatory.
This should hopefully allow us to make progress on #1703
2021-08-10 19:24:32 +01:00
Zoe Stafford
1669fc351b
Refactor %builtin
( #1803 )
...
* Stub for future 'identity' optimisation
I plan to add this later, but I'm using for now for
NaturalToInteger and IntegerToNatural
* Refactor `%builtin`
fixes #1799
- automatically optimise all Natural shaped things
- NaturalToInteger and IntegerToNatural now use
new `Identity` flag (internal use only for now)
which signals the function is identity at runtime
* Use NaturalToInteger and IntegerToNatural for Nat and Fin
Also define show fin in terms of finToInteger, for speed
* Fix name handling for %builtin
* [ tests ] fixes + #1799
* remove %builtin from libs
Add back after next version
* Use resolved names where convenient
2021-08-03 14:19:17 +01:00
Guillaume ALLAIS
31ffb4e5c7
[ cleanup ] various public export & cleanup
...
Turns out that `Smaller` and `LT` won't unify because
1. the instance Sized Nat is not publicly exported
2. Smaller, and LT are stuck until fully applied
The given changes make that go away.
2021-07-27 09:06:20 +01:00
Guillaume ALLAIS
13ef8ba707
[ fix #1782 ] remove the case-specific code
...
I can't make sense of this code, it seems to try to convert the
case function corresponding to `let (a, b) = f n in ...` into a
different case function where `f n` and `(a, b)` have been unified.
But if `f n` is a bona fide stuck computation, there's no chance of
this happening.
Just turning this off solves the #1782 and only breaks one function
in the whole of the idris2 repo (I would have expected our current
termination oracle to be too weak to detect it as valid anyway!)
and one in frex (which, again, should not have been seen as terminating).
Also fixes #1460
2021-07-26 17:03:16 +01:00
Mathew Polzin
5f34801200
Make drop and drop' public exported from the vect module.
2021-07-20 14:27:43 +01:00
Stepan Koltsov
ce44d3b50a
Change semantics of lines and unlines function to match Haskell and other languages ( #1585 )
...
* Add trailing newline on non-empty list in unlines
There are several reasons to do that:
* a line in a text file is something which ends with newline,
and the last line is not special
* `unlines []` should be different from `unlines [""]`
* `unlines (a ++ b) = unlines a ++ unlines b`
* Haskell does it
* Change lines function behaviour
2021-07-17 14:54:23 +01:00
Edwin Brady
66217b6fa6
Merge branch 'master' into refc-buffer
2021-07-16 09:44:40 +01:00
Edwin Brady
a880b9884c
Merge pull request #1670 from stepancheg/buffer-names
...
Add parameter names to Buffer builtins parameter names
2021-07-16 00:53:42 +01:00
Stiopa Koltsov
c80a502627
Return Bool from IOArray.writeArray
...
As suggested in #1677 .
Crashing on out-of-bounds might be more practical, but we can
reconsider it later.
2021-07-15 22:16:22 +01:00
Stiopa Koltsov
f81c37ea3a
Pass Buffer as char* when using C functions in RefC
...
To be able to use `C` functions for both Scheme and RefC: it was
not possible for `Buffer` before this PR.
As an example, `writeBufferData` and `readBufferData` functions are
removed: generic C backend implementations are used instead.
2021-07-13 23:04:36 +01:00
Nick Drozd
9cca3a7d35
Use Not instead of -> Void ( #1667 )
2021-07-13 15:32:01 +01:00
Johann Rudloff
d5abff4e46
[ fix #1260 ] Use blodwen-stringbytelen
instead of C's strlen
( #1261 )
2021-07-13 11:52:15 +01:00
Stiopa Koltsov
b4918d51ff
Add parameter names to Buffer builtins parameter names
...
Also rename `loc` -> `offset`.
2021-07-11 10:43:12 +01:00
Stefan Höck
599d0635e9
[ refactor ] JS backend overhaul ( #1609 )
2021-07-10 11:15:21 +01:00
Nick Drozd
61b9a3e4e5
Define and implement Relation interfaces ( #1472 )
...
Co-authored-by: Guillaume ALLAIS <guillaume.allais@ens-lyon.org>
2021-07-09 09:06:27 +01:00
Alissa Tung
2865a70a6e
[ base ] add List functions ( #1550 )
...
Co-authored-by: Guillaume ALLAIS <guillaume.allais@ens-lyon.org>
2021-07-01 08:00:12 +01:00
Nick Drozd
9cb20f3653
Clean up some assert_total instances ( #1644 )
2021-06-29 22:05:40 +01:00
kasiaMarek
6f9b926b1b
module Data.SnocList.Elem ( #1478 )
...
Co-authored-by: Guillaume ALLAIS <guillaume.allais@ens-lyon.org>
2021-06-28 20:34:39 +01:00
Stefan Höck
6ed266d306
[ new ] Missing integer type interfaces ( #1629 )
...
Co-authored-by: Guillaume ALLAIS <guillaume.allais@ens-lyon.org>
2021-06-28 20:00:10 +01:00
Fabián Heredia Montiel
d5167a0108
[ fix #1581 ] public export Range functions and implementations ( #1602 )
...
Since `[a..b]` uses `takeUntil`/`takeBefore` indirectly those too had to
be changed to `public export` clashing with `Data.Stream` definitions.
A small readability refactor was made with the `compare` function from
`EqOrd`.
2021-06-28 16:52:23 +01:00
Nick Drozd
63a6b16517
Cut unneeded type specifications
2021-06-28 16:22:27 +01:00
Kamiλ Shakirov
8e30b296c0
[ refactor ] Remove Data.Strings module ( #1607 )
2021-06-28 13:48:37 +01:00
Edwin Brady
a93def90a9
Merge github.com:idris-lang/Idris2 into prepare-040
2021-06-23 18:16:36 +01:00
Edwin Brady
5689786b26
Merge pull request #1598 from gallais/show-void
...
[ fix ] missing Show implementations in libs
2021-06-23 18:11:40 +01:00
Edwin Brady
7d3e3e0719
Check sizes of buffers and strings in TTCs
...
They need to be positive or we can't make the buffer, which causes a
segfault. This happened when loading old TTCs with a different format.
Fixes #1503
2021-06-23 18:08:27 +01:00
Guillaume ALLAIS
afd55951c2
[ fix ] missing Show (Fin n) in base
2021-06-23 16:46:25 +01:00
Edwin Brady
c1057a19af
Merge pull request #1489 from buzden/some-uninhabiteds
...
[ base ] Some lacking implementations for `Uninhabited`
2021-06-23 16:17:32 +01:00
G. Allais
49f8cefeff
[ cleanup ] Test.Golden ( #1526 )
2021-06-21 17:30:11 +01:00
CodingCellist
55f8bc3b90
Improve case-splitting formatting to not introduce new whitespace; add a bit of comments+docs. ( #1553 )
2021-06-17 16:48:59 +01:00
Nick Drozd
ec438760d9
Simplify some lambdas ( #1561 )
2021-06-16 15:22:30 +01:00
Denis Buzdalov
927c358bef
[ base ] Some lacking implementations for Uninhabited
were added
2021-06-15 15:07:54 +03:00
Nick Drozd
488b4709f4
Use map for some maybes ( #1548 )
2021-06-14 17:52:43 +01:00
Robert Wright
1875f62248
Remove freeBuffer function
...
Each backend is now responsible for freeing Buffers in the same way as other objects
2021-06-14 15:06:44 +01:00