Basic properties of Lists #
length #
mem #
drop #
isEmpty #
append #
concat #
map #
zipWith #
zip #
join #
bind #
set-theoretic notation of Lists #
bounded quantifiers over Lists #
List subset #
Equations
- List.instTransListMemInstMembershipListSubsetInstHasSubsetList = { trans := ⋯ }
Equations
- List.instTransListSubsetInstHasSubsetList = { trans := ⋯ }
replicate #
getLast #
sublists #
Equations
- List.instTransListSublist = { trans := ⋯ }
Equations
- List.instTransListSublistSubsetInstHasSubsetList = { trans := ⋯ }
Equations
- List.instTransListSubsetSublistInstHasSubsetList = { trans := ⋯ }
Equations
- List.instTransListMemInstMembershipListSublist = { trans := ⋯ }
Equations
- List.instDecidableSublist l₁ l₂ = decidable_of_iff (List.isSublist l₁ l₂ = true) ⋯
head #
tail #
next? #
getLast #
dropLast #
NB: dropLast
is the specification for Array.pop
, so theorems about List.dropLast
are often used for theorems about Array.pop
.
nth element #
If one has get l i hi
in a formula and h : l = l'
, one can not rw h
in the formula as
hi
gives i < l.length
and not i < l'.length
. The theorem get_of_eq
can be used to make
such a rewrite, with rw (get_of_eq h)
.
take #
Taking the first n
elements in l₁ ++ l₂
is the same as appending the first n
elements
of l₁
to the first n - l₁.length
elements of l₂
.
The i
-th element of a list coincides with the i
-th element of any of its prefixes of
length > i
. Version designed to rewrite from the big list to the small list.
The i
-th element of a list coincides with the i
-th element of any of its prefixes of
length > i
. Version designed to rewrite from the small list to the big list.
drop #
Dropping the elements up to n
in l₁ ++ l₂
is the same as dropping the elements up to n
in l₁
, dropping the elements up to n - l₁.length
in l₂
, and appending them.
The i + j
-th element of a list coincides with the j
-th element of the list obtained by
dropping the first i
elements. Version designed to rewrite from the big list to the small list.
The i + j
-th element of a list coincides with the j
-th element of the list obtained by
dropping the first i
elements. Version designed to rewrite from the small list to the big list.
modify nth #
set #
remove nth #
tail #
all / any #
reverse #
insert #
eraseP #
erase #
filter and partition #
filterMap #
find? #
findSome? #
findIdx #
findIdx? #
pairwise #
replaceF #
disjoint #
foldl / foldr #
union #
inter #
product #
leftpad #
The length of the List returned by List.leftpad n a l
is equal
to the larger of n
and l.length