Skip to content
This repository was archived by the owner on Jan 5, 2025. It is now read-only.

Commit ade9c55

Browse files
feat: arrays (#159)
Closes #91
1 parent ffb9054 commit ade9c55

File tree

9 files changed

+809
-13
lines changed

9 files changed

+809
-13
lines changed

Manual.lean

Lines changed: 148 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ file := some "the-index"
153153

154154
:::progress
155155
```namespace
156-
String Char Nat Lean.Elab.Tactic
156+
String Char Nat Lean.Elab.Tactic Array Subarray
157157
```
158158
```exceptions
159159
String.revFindAux String.extract.go₂ String.substrEq.loop String.casesOn
@@ -223,6 +223,153 @@ Nat.le.below.refl
223223
Nat.le.below.casesOn
224224
```
225225

226+
```exceptions
227+
Array.get?_size
228+
Array.forIn'.loop
229+
Array.mapM.map
230+
Array.findIdx?.loop
231+
Array.get_extract_loop_lt
232+
Array.foldrM_eq_foldrM_data
233+
Array.get?_push
234+
Array.appendList_data
235+
Array.insertAt.loop
236+
Array.reverse.loop
237+
Array.foldrM_eq_reverse_foldlM_data
238+
Array.isPrefixOfAux
239+
Array.takeWhile.go
240+
Array.isPrefixOfAux
241+
Array.size_eq_length_data
242+
Array.qpartition.loop
243+
Array.insertionSort.swapLoop
244+
Array.foldl_data_eq_bind
245+
Array.foldl_toList_eq_bind
246+
Array.foldrMUnsafe
247+
Array.get_swap_left
248+
Array.get_extract_loop_ge_aux
249+
Array.data_swap
250+
Array.get_extract_loop_lt_aux
251+
Array.get?_swap
252+
Array.get_swap'
253+
Array.mapM_eq_mapM_data
254+
Array.anyM.loop
255+
Array.getElem_eq_data_getElem
256+
Array.get_swap_right
257+
Array.get_extract_loop_ge
258+
Array.foldrM.fold
259+
Array.foldlM.loop
260+
Array.take.loop
261+
Array.mapMUnsafe
262+
Array.binSearchAux
263+
Array.eq_push_pop_back_of_size_ne_zero
264+
Array.get?_push_eq
265+
Array.append_data
266+
Array.indexOfAux
267+
Array.reverse_toList
268+
Array.ofFn.go
269+
Array.get?_eq_data_get?
270+
Array.filterMap_data
271+
Array.empty_data
272+
Array.foldrMUnsafe.fold
273+
Array.toListImpl
274+
Array.filter_data
275+
Array.get_swap_of_ne
276+
Array.get_append_right
277+
Array.getElem?_eq_toList_getElem?
278+
Array.foldl_eq_foldl_data
279+
Array.sequenceMap.loop
280+
Array.toList_eq
281+
Array.findSomeRevM?.find
282+
Array.data_range
283+
Array.forIn'Unsafe.loop
284+
Array.foldlM_eq_foldlM_data
285+
Array.getElem_eq_toList_getElem
286+
Array.getElem_mem_data
287+
Array.get_extract
288+
Array.extract.loop
289+
Array.foldlMUnsafe.fold
290+
Array.data_set
291+
Array.forIn'Unsafe
292+
Array.mapMUnsafe.map
293+
Array.mapM'.go
294+
Array.pop_data
295+
Array.appendCore.loop
296+
Array.get?_len_le
297+
Array.back_push
298+
Array.all_def
299+
Array.get_push_lt
300+
Array.foldl_data_eq_map
301+
Array.get?_eq_toList_get?
302+
Array.isEqvAux
303+
Array.getElem?_mem
304+
Array.getElem_fin_eq_toList_get
305+
Array.getElem?_eq_data_get?
306+
Array.foldr_eq_foldr_data
307+
Array.data_length
308+
Array.get_push
309+
Array.push_data
310+
Array.toArray_data
311+
Array.get_append_left
312+
Array.insertionSort.traverse
313+
Array.getElem_fin_eq_data_get
314+
Array.toListLitAux
315+
Array.map_data
316+
Array.get?_push_lt
317+
Array.get_extract_aux
318+
Array.foldlMUnsafe
319+
Array.qsort.sort
320+
Array.any_def
321+
Array.anyMUnsafe
322+
Array.data_toArray
323+
Array.mem_data
324+
Array.get_swap
325+
Array.mapFinIdxM.map
326+
Array.data_pop
327+
Array.anyMUnsafe.any
328+
Array.mkArray0
329+
Array.mkArray1
330+
Array.mkArray2
331+
Array.mkArray3
332+
Array.mkArray4
333+
Array.mkArray5
334+
Array.mkArray6
335+
Array.mkArray7
336+
Array.mkArray8
337+
Array.mkEmpty
338+
Array.get_push_eq
339+
Array.appendCore
340+
Array.modifyMUnsafe
341+
Array.mapSepElems
342+
Array.mapSepElemsM
343+
Array.toArrayLit
344+
Array.getSepElems
345+
Array.zipWithAux
346+
Array.casesOn
347+
Array.rec
348+
Array.recOn
349+
Array.noConfusion
350+
Array.noConfusionType
351+
Array.tacticArray_get_dec
352+
Array.back_eq_back?
353+
Array.mkArray_data
354+
Array.getLit
355+
```
356+
357+
```exceptions
358+
Array.qpartition
359+
```
360+
361+
```exceptions
362+
Subarray.forInUnsafe.loop
363+
Subarray.as
364+
Subarray.casesOn
365+
Subarray.recOn
366+
Subarray.rec
367+
Subarray.noConfusion
368+
Subarray.noConfusionType
369+
Subarray.forInUnsafe
370+
Subarray.findSomeRevM?.find
371+
```
372+
226373
```exceptions
227374
Lean.Elab.Tactic.evalUnfold.go
228375
Lean.Elab.Tactic.dsimpLocation.go

Manual/BasicTypes.lean

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import VersoManual
99
import Manual.Meta
1010
import Manual.BasicTypes.Nat
1111
import Manual.BasicTypes.String
12+
import Manual.BasicTypes.Array
1213

1314
open Manual.FFIDocType
1415

@@ -142,17 +143,8 @@ tag := "List"
142143
* Constructor/pattern syntax
143144
:::
144145

145-
# Arrays
146-
%%%
147-
tag := "Array"
148-
%%%
149146

150-
::: planned 91
151-
Description and API reference for {name}`Thunk`:
152-
* Logical model as wrapper around a function from {lean}`Unit`
153-
* Run-time realization as a lazy computation
154-
* API reference
155-
:::
147+
{include 0 Manual.BasicTypes.Array}
156148

157149

158150
# Lazy Computations

0 commit comments

Comments
 (0)